mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 15:59:49 +02:00
Merge pull request #4982 from howard-stearns/unowned-object-sounds
Unowned object sounds
This commit is contained in:
commit
c32ff497e8
2 changed files with 12 additions and 0 deletions
|
@ -1107,6 +1107,17 @@ void EntityTreeRenderer::playEntityCollisionSound(const QUuid& myNodeID, EntityT
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
QUuid simulatorID = entity->getSimulatorID();
|
QUuid simulatorID = entity->getSimulatorID();
|
||||||
|
if (simulatorID.isNull()) {
|
||||||
|
// Can be null if it has never moved since being created or coming out of persistence.
|
||||||
|
// However, for there to be a collission, one of the two objects must be moving.
|
||||||
|
const EntityItemID& otherID = (id == collision.idA) ? collision.idB : collision.idA;
|
||||||
|
EntityItemPointer otherEntity = entityTree->findEntityByEntityItemID(otherID);
|
||||||
|
if (!otherEntity) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
simulatorID = otherEntity->getSimulatorID();
|
||||||
|
}
|
||||||
|
|
||||||
if (simulatorID.isNull() || (simulatorID != myNodeID)) {
|
if (simulatorID.isNull() || (simulatorID != myNodeID)) {
|
||||||
return; // Only one injector per simulation, please.
|
return; // Only one injector per simulation, please.
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,6 +83,7 @@ QUuid EntityScriptingInterface::addEntity(const EntityItemProperties& properties
|
||||||
entity->setLastBroadcast(usecTimestampNow());
|
entity->setLastBroadcast(usecTimestampNow());
|
||||||
// This Node is creating a new object. If it's in motion, set this Node as the simulator.
|
// This Node is creating a new object. If it's in motion, set this Node as the simulator.
|
||||||
bidForSimulationOwnership(propertiesWithSimID);
|
bidForSimulationOwnership(propertiesWithSimID);
|
||||||
|
entity->setSimulatorID(propertiesWithSimID.getSimulatorID()); // and make note of it now, so we can act on it right away.
|
||||||
} else {
|
} else {
|
||||||
qCDebug(entities) << "script failed to add new Entity to local Octree";
|
qCDebug(entities) << "script failed to add new Entity to local Octree";
|
||||||
success = false;
|
success = false;
|
||||||
|
|
Loading…
Reference in a new issue