diff --git a/assignment-client/src/scripts/EntityScriptServer.cpp b/assignment-client/src/scripts/EntityScriptServer.cpp index f1a6c97831..514eb62380 100644 --- a/assignment-client/src/scripts/EntityScriptServer.cpp +++ b/assignment-client/src/scripts/EntityScriptServer.cpp @@ -301,10 +301,17 @@ void EntityScriptServer::run() { entityScriptingInterface->setEntityTree(_entityViewer.getTree()); - DependencyManager::set(_entityViewer.getTree()); + auto treePtr = _entityViewer.getTree(); + DependencyManager::set(treePtr); + if (!_entitySimulation) { + SimpleEntitySimulationPointer simpleSimulation { new SimpleEntitySimulation() }; + simpleSimulation->setEntityTree(treePtr); + treePtr->setSimulation(simpleSimulation); + _entitySimulation = simpleSimulation; + } - auto tree = _entityViewer.getTree().get(); + auto tree = treePtr.get(); connect(tree, &EntityTree::deletingEntity, this, &EntityScriptServer::deletingEntity, Qt::QueuedConnection); connect(tree, &EntityTree::addingEntity, this, &EntityScriptServer::addingEntity, Qt::QueuedConnection); connect(tree, &EntityTree::entityServerScriptChanging, this, &EntityScriptServer::entityServerScriptChanging, Qt::QueuedConnection); @@ -451,6 +458,7 @@ void EntityScriptServer::resetEntitiesScriptEngine() { connect(newEngine.data(), &ScriptEngine::update, this, [this] { _entityViewer.queryOctree(); + _entityViewer.getTree()->preUpdate(); _entityViewer.getTree()->update(); }); diff --git a/assignment-client/src/scripts/EntityScriptServer.h b/assignment-client/src/scripts/EntityScriptServer.h index 944fee36a3..b795339174 100644 --- a/assignment-client/src/scripts/EntityScriptServer.h +++ b/assignment-client/src/scripts/EntityScriptServer.h @@ -21,6 +21,7 @@ #include #include #include +#include #include #include "../entities/EntityTreeHeadlessViewer.h" @@ -75,6 +76,7 @@ private: static int _entitiesScriptEngineCount; ScriptEnginePointer _entitiesScriptEngine; + SimpleEntitySimulationPointer _entitySimulation; EntityEditPacketSender _entityEditSender; EntityTreeHeadlessViewer _entityViewer;