From 9ae19714b520d721c68cdd29bac0839fb7f9b3e5 Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Fri, 1 Jun 2018 16:36:44 -0700 Subject: [PATCH] also update queryAACube for children of worn entities --- interface/src/avatar/MyAvatar.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 0783094e10..f956bc90c3 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -654,8 +654,8 @@ void MyAvatar::simulate(float deltaTime) { if (success) { moveOperator.addEntityToMoveList(entity, newCube); } - // send an edit packet to update the entity-server about the queryAABox. If it's an - // avatar-entity, don't. + // send an edit packet to update the entity-server about the queryAABox + // unless it is client-only if (packetSender && !entity->getClientOnly()) { EntityItemProperties properties = entity->getProperties(); properties.setQueryAACubeDirty(); @@ -663,6 +663,17 @@ void MyAvatar::simulate(float deltaTime) { packetSender->queueEditEntityMessage(PacketType::EntityEdit, entityTree, entity->getID(), properties); entity->setLastBroadcast(usecTimestampNow()); + + entity->forEachDescendant([&](SpatiallyNestablePointer descendant) { + EntityItemPointer entityDescendant = std::static_pointer_cast(descendant); + if (!entityDescendant->getClientOnly() && descendant->updateQueryAACube()) { + EntityItemProperties descendantProperties; + descendantProperties.setQueryAACube(descendant->getQueryAACube()); + descendantProperties.setLastEdited(now); + packetSender->queueEditEntityMessage(PacketType::EntityEdit, entityTree, entityDescendant->getID(), descendantProperties); + entityDescendant->setLastBroadcast(now); // for debug/physics status icons + } + }); } } });