History

Type registeration fixes for scripting engine

ksuprynowicz committed 4 years ago

Commit 0a3ec921 parent 50a6a6334 files · +266 −67Browse files

Showing the changes to libraries/entities/src/EntityScriptingInterface.cpp (1 of 34 files). Show all

Unified · Split

libraries/entities/src/EntityScriptingInterface.cpp+11−5
@@ -4,6 +4,7 @@ · 3 unmodified lines
44 //
55 // Created by Brad Hefta-Gaub on 12/6/13.
66 // Copyright 2013 High Fidelity, Inc.
7+// Copyright 2022 Overte e.V.
78 //
89 // Distributed under the Apache License, Version 2.0.
910 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -48,13 +49,9 @@ · 38 unmodified lines
4849 const QString GRABBABLE_USER_DATA = "{\"grabbableKey\":{\"grabbable\":true}}";
4950 const QString NOT_GRABBABLE_USER_DATA = "{\"grabbableKey\":{\"grabbable\":false}}";
5051
51−void staticEntityScriptInitializer(ScriptManager* manager) {
52+void staticEntityScriptTypesInitializer(ScriptManager* manager) {
5253 auto scriptEngine = manager->engine().get();
5354
54− auto entityScriptingInterface = DependencyManager::get<EntityScriptingInterface>();
55− entityScriptingInterface->init();
56− auto interfacePtr = entityScriptingInterface.data(); // using this when we don't want to leak a reference
57−
5855 registerMetaTypes(scriptEngine);
5956
6057 scriptRegisterMetaType(scriptEngine, EntityPropertyFlagsToScriptValue, EntityPropertyFlagsFromScriptValue);
@@ -62,6 +59,15 @@ void staticEntityScriptInitializer(ScriptManager* manager) { · 1 unmodified line
6259 scriptRegisterMetaType(scriptEngine, EntityPropertyInfoToScriptValue, EntityPropertyInfoFromScriptValue);
6360 scriptRegisterMetaType(scriptEngine, EntityItemIDtoScriptValue, EntityItemIDfromScriptValue);
6461 scriptRegisterMetaType(scriptEngine, RayToEntityIntersectionResultToScriptValue, RayToEntityIntersectionResultFromScriptValue);
62+}
63+STATIC_SCRIPT_TYPES_INITIALIZER(staticEntityScriptTypesInitializer);
64+
65+void staticEntityScriptInitializer(ScriptManager* manager) {
66+ auto scriptEngine = manager->engine().get();
67+
68+ auto entityScriptingInterface = DependencyManager::get<EntityScriptingInterface>();
69+ entityScriptingInterface->init();
70+ auto interfacePtr = entityScriptingInterface.data(); // using this when we don't want to leak a reference
6571
6672 scriptEngine->registerGlobalObject("Entities", entityScriptingInterface.data());
6773 scriptEngine->registerFunction("Entities", "getMultipleEntityProperties", EntityScriptingInterface::getMultipleEntityProperties);