From 83780296de1b2139aa4b07ce902112319bed1644 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 13 Oct 2015 12:12:57 -0700 Subject: [PATCH] don't send physical property updates if there's an action on the object --- libraries/entities/src/EntityItem.cpp | 8 ++++++++ libraries/entities/src/EntityItem.h | 1 + libraries/physics/src/EntityMotionState.cpp | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index a8f3adc12e..ad1708c7e7 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -1788,3 +1788,11 @@ QVariantMap EntityItem::getActionArguments(const QUuid& actionID) const { return result; } + +bool EntityItem::shouldSuppressEdits() const { + QHash::const_iterator i = _objectActions.begin(); + while (i != _objectActions.end()) { + // XXX + return true; + } +} diff --git a/libraries/entities/src/EntityItem.h b/libraries/entities/src/EntityItem.h index cddd9df312..59651bfaf0 100644 --- a/libraries/entities/src/EntityItem.h +++ b/libraries/entities/src/EntityItem.h @@ -424,6 +424,7 @@ public: QVariantMap getActionArguments(const QUuid& actionID) const; void deserializeActions(); void setActionDataDirty(bool value) const { _actionDataDirty = value; } + bool shouldSuppressEdits() const; protected: diff --git a/libraries/physics/src/EntityMotionState.cpp b/libraries/physics/src/EntityMotionState.cpp index 42bf9bd438..5cfdd4125f 100644 --- a/libraries/physics/src/EntityMotionState.cpp +++ b/libraries/physics/src/EntityMotionState.cpp @@ -291,6 +291,10 @@ bool EntityMotionState::remoteSimulationOutOfSync(uint32_t simulationStep) { return true; } + if (_entity->shouldSuppressEdits()) { + return false; + } + // Else we measure the error between current and extrapolated transform (according to expected behavior // of remote EntitySimulation) and return true if the error is significant.