mirror of
https://github.com/lubosz/overte.git
synced 2025-04-24 16:23:16 +02:00
trying to get child collision hulls to be in the right place after import
This commit is contained in:
parent
7220fe0ad8
commit
735e4b7d05
2 changed files with 8 additions and 4 deletions
|
@ -1639,14 +1639,14 @@ void EntityItem::updateParentID(const QUuid& value) {
|
|||
|
||||
// children are forced to be kinematic
|
||||
// may need to not collide with own avatar
|
||||
markDirtyFlags(Simulation::DIRTY_MOTION_TYPE | Simulation::DIRTY_COLLISION_GROUP | Simulation::DIRTY_POSITION);
|
||||
markDirtyFlags(Simulation::DIRTY_MOTION_TYPE | Simulation::DIRTY_COLLISION_GROUP | Simulation::DIRTY_TRANSFORM);
|
||||
tree->entityChanged(getThisPointer());
|
||||
forEachDescendant([&](SpatiallyNestablePointer object) {
|
||||
if (object->getNestableType() == NestableType::Entity) {
|
||||
EntityItemPointer entity = std::static_pointer_cast<EntityItem>(object);
|
||||
entity->markDirtyFlags(Simulation::DIRTY_MOTION_TYPE |
|
||||
Simulation::DIRTY_COLLISION_GROUP |
|
||||
Simulation::DIRTY_POSITION);
|
||||
Simulation::DIRTY_TRANSFORM);
|
||||
tree->entityChanged(entity);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -1253,14 +1253,14 @@ void EntityTree::fixupMissingParents() {
|
|||
// need to be moved.
|
||||
entity->markDirtyFlags(Simulation::DIRTY_MOTION_TYPE |
|
||||
Simulation::DIRTY_COLLISION_GROUP |
|
||||
Simulation::DIRTY_POSITION);
|
||||
Simulation::DIRTY_TRANSFORM);
|
||||
entityChanged(entity);
|
||||
entity->forEachDescendant([&](SpatiallyNestablePointer object) {
|
||||
if (object->getNestableType() == NestableType::Entity) {
|
||||
EntityItemPointer descendantEntity = std::static_pointer_cast<EntityItem>(object);
|
||||
descendantEntity->markDirtyFlags(Simulation::DIRTY_MOTION_TYPE |
|
||||
Simulation::DIRTY_COLLISION_GROUP |
|
||||
Simulation::DIRTY_POSITION);
|
||||
Simulation::DIRTY_TRANSFORM);
|
||||
entityChanged(descendantEntity);
|
||||
}
|
||||
});
|
||||
|
@ -1620,6 +1620,10 @@ QVector<EntityItemID> EntityTree::sendEntities(EntityEditPacketSender* packetSen
|
|||
EntityItemID newID = i.value();
|
||||
EntityItemPointer entity = localTree->findEntityByEntityItemID(newID);
|
||||
if (entity) {
|
||||
if (!entity->getParentID().isNull()) {
|
||||
QWriteLocker locker(&_missingParentLock);
|
||||
_missingParent.append(entity);
|
||||
}
|
||||
entity->forceQueryAACubeUpdate();
|
||||
moveOperator.addEntityToMoveList(entity, entity->getQueryAACube());
|
||||
i++;
|
||||
|
|
Loading…
Reference in a new issue