mirror of
https://thingvellir.net/git/overte
synced 2025-03-27 23:52:03 +01:00
also update queryAACube for 'Held' things
This commit is contained in:
parent
9ae19714b5
commit
db3520b332
1 changed files with 4 additions and 8 deletions
|
@ -446,17 +446,13 @@ bool EntityMotionState::shouldSendUpdate(uint32_t simulationStep) {
|
|||
// this case is prevented by setting _ownershipState to UNOWNABLE in EntityMotionState::ctor
|
||||
assert(!(_entity->getClientOnly() && _entity->getOwningAvatarID() != Physics::getSessionUUID()));
|
||||
|
||||
// shouldSendUpdate() sould NOT be triggering updates to maintain the queryAACube of dynamic entities.
|
||||
// The server is supposed to predict the transform of such moving things. The client performs a "double prediction"
|
||||
// where it predicts what the the server is doing, and only sends updates whent the entity's true transform
|
||||
// differs significantly. That is what the remoteSimulationOutOfSync() logic is all about.
|
||||
if (_entity->dynamicDataNeedsTransmit() ||
|
||||
(!_entity->getDynamic() && _entity->queryAACubeNeedsUpdate())) {
|
||||
if (_entity->dynamicDataNeedsTransmit()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (_entity->shouldSuppressLocationEdits()) {
|
||||
return false;
|
||||
// "shouldSuppressLocationEdits" really means: "the entity has a 'Hold' action therefore
|
||||
// we don't need send an update unless the entity is not contained by its queryAACube"
|
||||
return _entity->queryAACubeNeedsUpdate();
|
||||
}
|
||||
|
||||
return remoteSimulationOutOfSync(simulationStep);
|
||||
|
|
Loading…
Reference in a new issue