mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 14:37:46 +02:00
local entities are always collisionless
This commit is contained in:
parent
079d1dcbd6
commit
8dbb2d806b
2 changed files with 16 additions and 2 deletions
|
@ -3977,7 +3977,13 @@ void EntityItemProperties::convertToCloneProperties(const EntityItemID& entityID
|
||||||
setParentJointIndex(-1);
|
setParentJointIndex(-1);
|
||||||
setLifetime(getCloneLifetime());
|
setLifetime(getCloneLifetime());
|
||||||
setDynamic(getCloneDynamic());
|
setDynamic(getCloneDynamic());
|
||||||
|
if (getEntityHost() != EntityHost::LOCAL_ENTITY) {
|
||||||
setEntityHost(getCloneAvatarEntity() ? EntityHost::AVATAR_ENTITY : EntityHost::DOMAIN_ENTITY);
|
setEntityHost(getCloneAvatarEntity() ? EntityHost::AVATAR_ENTITY : EntityHost::DOMAIN_ENTITY);
|
||||||
|
} else {
|
||||||
|
// Local Entities clone as local entities
|
||||||
|
setEntityHost(EntityHost::LOCAL_ENTITY);
|
||||||
|
setCollisionless(true);
|
||||||
|
}
|
||||||
setCreated(usecTimestampNow());
|
setCreated(usecTimestampNow());
|
||||||
setLastEdited(usecTimestampNow());
|
setLastEdited(usecTimestampNow());
|
||||||
setCloneable(ENTITY_ITEM_DEFAULT_CLONEABLE);
|
setCloneable(ENTITY_ITEM_DEFAULT_CLONEABLE);
|
||||||
|
|
|
@ -482,6 +482,10 @@ QUuid EntityScriptingInterface::addEntity(const EntityItemProperties& properties
|
||||||
propertiesWithSimID.setEntityHostFromString(entityHostString);
|
propertiesWithSimID.setEntityHostFromString(entityHostString);
|
||||||
if (propertiesWithSimID.getEntityHost() == EntityHost::AVATAR_ENTITY) {
|
if (propertiesWithSimID.getEntityHost() == EntityHost::AVATAR_ENTITY) {
|
||||||
propertiesWithSimID.setOwningAvatarID(sessionID);
|
propertiesWithSimID.setOwningAvatarID(sessionID);
|
||||||
|
} else if (propertiesWithSimID.getEntityHost() == EntityHost::LOCAL_ENTITY) {
|
||||||
|
// For now, local entities are always collisionless
|
||||||
|
// TODO: create a separate, local physics simulation that just handles local entities (and MyAvatar?)
|
||||||
|
propertiesWithSimID.setCollisionless(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
propertiesWithSimID.setLastEditedBy(sessionID);
|
propertiesWithSimID.setLastEditedBy(sessionID);
|
||||||
|
@ -834,7 +838,11 @@ QUuid EntityScriptingInterface::editEntity(QUuid id, const EntityItemProperties&
|
||||||
}
|
}
|
||||||
|
|
||||||
// set these to make EntityItemProperties::getScalesWithParent() work correctly
|
// set these to make EntityItemProperties::getScalesWithParent() work correctly
|
||||||
properties.setEntityHost(entity->getEntityHost());
|
EntityHost entityHost = entity->getEntityHost();
|
||||||
|
properties.setEntityHost(entityHost);
|
||||||
|
if (entityHost == EntityHost::LOCAL_ENTITY) {
|
||||||
|
properties.setCollisionless(true);
|
||||||
|
}
|
||||||
properties.setOwningAvatarID(entity->getOwningAvatarID());
|
properties.setOwningAvatarID(entity->getOwningAvatarID());
|
||||||
|
|
||||||
// make sure the properties has a type, so that the encode can know which properties to include
|
// make sure the properties has a type, so that the encode can know which properties to include
|
||||||
|
|
Loading…
Reference in a new issue