diff --git a/libraries/physics/src/EntityMotionState.cpp b/libraries/physics/src/EntityMotionState.cpp index 643d152d27..2a779d019a 100644 --- a/libraries/physics/src/EntityMotionState.cpp +++ b/libraries/physics/src/EntityMotionState.cpp @@ -200,7 +200,8 @@ bool EntityMotionState::shouldSendUpdate(uint32_t simulationFrame) { const QUuid& myNodeID = nodeList->getSessionUUID(); const QUuid& simulatorID = _entity->getSimulatorID(); - if (!simulatorID.isNull() && simulatorID != myNodeID) { + // if (!simulatorID.isNull() && simulatorID != myNodeID) { + if (simulatorID != myNodeID) { // some other Node owns the simulating of this, so don't broadcast the results of local simulation. return false; } diff --git a/libraries/physics/src/PhysicsEngine.cpp b/libraries/physics/src/PhysicsEngine.cpp index e4e9c547df..43a42e0bd4 100644 --- a/libraries/physics/src/PhysicsEngine.cpp +++ b/libraries/physics/src/PhysicsEngine.cpp @@ -407,14 +407,24 @@ void PhysicsEngine::computeCollisionEvents() { if (entityA->getSimulatorID() == myNodeID || entityA->getShouldClaimSimulationOwnership() || objectA == characterCollisionObject) { + + qDebug() << "collision claiming ownership" + << (entityA->getSimulatorID() == myNodeID) + << (entityA->getShouldClaimSimulationOwnership()) + << (objectA == characterCollisionObject); + entityB->setShouldClaimSimulationOwnership(true); - qDebug() << "collision claiming ownership"; } if (entityB->getSimulatorID() == myNodeID || entityB->getShouldClaimSimulationOwnership() || objectB == characterCollisionObject) { + + qDebug() << "collision claiming ownership" + << (entityB->getSimulatorID() == myNodeID) + << (entityB->getShouldClaimSimulationOwnership()) + << (objectB == characterCollisionObject); + entityA->setShouldClaimSimulationOwnership(true); - qDebug() << "collision claiming ownership"; } } }