diff --git a/assignment-client/src/Agent.cpp b/assignment-client/src/Agent.cpp index 07d15c9e26..3ff7eafd6b 100644 --- a/assignment-client/src/Agent.cpp +++ b/assignment-client/src/Agent.cpp @@ -469,7 +469,7 @@ void Agent::aboutToFinish() { } // our entity tree is going to go away so tell that to the EntityScriptingInterface - DependencyManager::get()->setEntityTree(NULL); + DependencyManager::get()->setEntityTree(nullptr); // cleanup the AssetClient thread QThread* assetThread = DependencyManager::get()->thread(); diff --git a/assignment-client/src/AssignmentClient.cpp b/assignment-client/src/AssignmentClient.cpp index 3bd38c4ae7..85a2c95b4d 100644 --- a/assignment-client/src/AssignmentClient.cpp +++ b/assignment-client/src/AssignmentClient.cpp @@ -60,7 +60,7 @@ AssignmentClient::AssignmentClient(Assignment::Type requestAssignmentType, QStri auto nodeList = DependencyManager::set(NodeType::Unassigned, listenPort); auto animationCache = DependencyManager::set(); - auto entityScriptingInterface = DependencyManager::set(); + auto entityScriptingInterface = DependencyManager::set(false); DependencyManager::registerInheritance(); auto actionFactory = DependencyManager::set(); diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index ab5edec527..f7d2bd9ada 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -348,7 +348,7 @@ bool setupEssentials(int& argc, char** argv) { DependencyManager::set(); DependencyManager::set(); DependencyManager::set(); - DependencyManager::set(); + DependencyManager::set(true); DependencyManager::set(); DependencyManager::set(); DependencyManager::set(); diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp index 8fd7be912e..6bfcc66f1e 100644 --- a/libraries/entities/src/EntityScriptingInterface.cpp +++ b/libraries/entities/src/EntityScriptingInterface.cpp @@ -25,8 +25,9 @@ #include "ZoneEntityItem.h" -EntityScriptingInterface::EntityScriptingInterface() : - _entityTree(NULL) +EntityScriptingInterface::EntityScriptingInterface(bool bidOnSimulationOwnership) : + _entityTree(NULL), + _bidOnSimulationOwnership(bidOnSimulationOwnership) { auto nodeList = DependencyManager::get(); connect(nodeList.data(), &NodeList::canAdjustLocksChanged, this, &EntityScriptingInterface::canAdjustLocksChanged); @@ -255,7 +256,7 @@ QUuid EntityScriptingInterface::editEntity(QUuid id, const EntityItemProperties& properties.setType(entity->getType()); bool hasTerseUpdateChanges = properties.hasTerseUpdateChanges(); bool hasPhysicsChanges = properties.hasMiscPhysicsChanges() || hasTerseUpdateChanges; - if (hasPhysicsChanges) { + if (_bidOnSimulationOwnership && hasPhysicsChanges) { auto nodeList = DependencyManager::get(); const QUuid myNodeID = nodeList->getSessionUUID(); diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h index 641da7518e..934a194360 100644 --- a/libraries/entities/src/EntityScriptingInterface.h +++ b/libraries/entities/src/EntityScriptingInterface.h @@ -58,7 +58,7 @@ void RayToEntityIntersectionResultFromScriptValue(const QScriptValue& object, Ra class EntityScriptingInterface : public OctreeScriptingInterface, public Dependency { Q_OBJECT public: - EntityScriptingInterface(); + EntityScriptingInterface(bool bidOnSimulationOwnership); EntityEditPacketSender* getEntityPacketSender() const { return (EntityEditPacketSender*)getPacketSender(); } virtual NodeType_t getServerNodeType() const { return NodeType::EntityServer; } @@ -204,7 +204,8 @@ private: bool precisionPicking, const QVector& entityIdsToInclude, const QVector& entityIdsToDiscard); EntityTreePointer _entityTree; - EntitiesScriptEngineProvider* _entitiesScriptEngine = nullptr; + EntitiesScriptEngineProvider* _entitiesScriptEngine { nullptr }; + bool _bidOnSimulationOwnership { false }; }; #endif // hifi_EntityScriptingInterface_h