diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index 5fae58c5f4..02e525be3d 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -1194,3 +1194,9 @@ void EntityItem::updateLifetime(float value) { } } +void EntityItem::updateSimulatorID(QString value) { + if (_simulatorID != value) { + _simulatorID = value; + _dirtyFlags |= EntityItem::DIRTY_UPDATEABLE; + } +} diff --git a/libraries/entities/src/EntityItem.h b/libraries/entities/src/EntityItem.h index 8f7feb2ed8..8388985432 100644 --- a/libraries/entities/src/EntityItem.h +++ b/libraries/entities/src/EntityItem.h @@ -294,6 +294,7 @@ public: void updateCollisionsWillMove(bool value); void updateLifetime(float value); virtual void updateShapeType(ShapeType type) { /* do nothing */ } + void updateSimulatorID(QString value); uint32_t getDirtyFlags() const { return _dirtyFlags; } void clearDirtyFlags(uint32_t mask = 0xffff) { _dirtyFlags &= ~mask; } diff --git a/libraries/physics/src/EntityMotionState.cpp b/libraries/physics/src/EntityMotionState.cpp index c2206c90f7..de806bb857 100644 --- a/libraries/physics/src/EntityMotionState.cpp +++ b/libraries/physics/src/EntityMotionState.cpp @@ -193,11 +193,11 @@ bool EntityMotionState::shouldSendUpdate(uint32_t simulationFrame) { if (simulatorID.isEmpty() && _body->isActive()) { // The object is moving and nobody thinks they own the motion. set this Node as the simulator - _entity->setSimulatorID(myNodeID); + _entity->updateSimulatorID(myNodeID); simulatorID = myNodeID; } else if (simulatorID == myNodeID && !_body->isActive()) { // we are the simulator and the object has stopped. give up "simulator" status - _entity->setSimulatorID(""); + _entity->updateSimulatorID(""); simulatorID = ""; }