mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 04:06:41 +02:00
entity scripting call to get the nestable-type of an object, by id
This commit is contained in:
parent
51cb579773
commit
a7c684e007
2 changed files with 29 additions and 6 deletions
|
@ -466,9 +466,7 @@ QUuid EntityScriptingInterface::editEntity(QUuid id, const EntityItemProperties&
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (entityFound) {
|
if (!entityFound) {
|
||||||
queueEntityMessage(PacketType::EntityEdit, entityID, properties);
|
|
||||||
} else {
|
|
||||||
// attempt to get a name for the mystery ID
|
// attempt to get a name for the mystery ID
|
||||||
QString name = "unknown";
|
QString name = "unknown";
|
||||||
QSharedPointer<SpatialParentFinder> parentFinder = DependencyManager::get<SpatialParentFinder>();
|
QSharedPointer<SpatialParentFinder> parentFinder = DependencyManager::get<SpatialParentFinder>();
|
||||||
|
@ -478,13 +476,18 @@ QUuid EntityScriptingInterface::editEntity(QUuid id, const EntityItemProperties&
|
||||||
if (success) {
|
if (success) {
|
||||||
auto nestable = nestableWP.lock();
|
auto nestable = nestableWP.lock();
|
||||||
if (nestable) {
|
if (nestable) {
|
||||||
name = nestable->getName();
|
NestableType nestableType = nestable->getNestableType();
|
||||||
|
if (nestableType == NestableType::Overlay || nestableType == NestableType::Avatar) {
|
||||||
|
qCWarning(entities) << "attempted edit on non-entity: " << id << name;
|
||||||
|
return QUuid(); // null UUID to indicate failure
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
qCWarning(entities) << "attempted edit on unknown entity: " << id << name;
|
|
||||||
return QUuid(); // null UUID to indicate failure
|
|
||||||
}
|
}
|
||||||
|
// we queue edit packets even if we don't know about the entity. This is to allow AC agents
|
||||||
|
// to edit entities they know only by ID.
|
||||||
|
queueEntityMessage(PacketType::EntityEdit, entityID, properties);
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1535,6 +1538,24 @@ bool EntityScriptingInterface::isChildOfParent(QUuid childID, QUuid parentID) {
|
||||||
return isChild;
|
return isChild;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString EntityScriptingInterface::getNestableType(QUuid id) {
|
||||||
|
QSharedPointer<SpatialParentFinder> parentFinder = DependencyManager::get<SpatialParentFinder>();
|
||||||
|
if (!parentFinder) {
|
||||||
|
return "unknown";
|
||||||
|
}
|
||||||
|
bool success;
|
||||||
|
SpatiallyNestableWeakPointer objectWP = parentFinder->find(id, success);
|
||||||
|
if (!success) {
|
||||||
|
return "unknown";
|
||||||
|
}
|
||||||
|
SpatiallyNestablePointer object = objectWP.lock();
|
||||||
|
if (!object) {
|
||||||
|
return "unknown";
|
||||||
|
}
|
||||||
|
NestableType nestableType = object->getNestableType();
|
||||||
|
return SpatiallyNestable::nestableTypeToString(nestableType);
|
||||||
|
}
|
||||||
|
|
||||||
QVector<QUuid> EntityScriptingInterface::getChildrenIDsOfJoint(const QUuid& parentID, int jointIndex) {
|
QVector<QUuid> EntityScriptingInterface::getChildrenIDsOfJoint(const QUuid& parentID, int jointIndex) {
|
||||||
QVector<QUuid> result;
|
QVector<QUuid> result;
|
||||||
if (!_entityTree) {
|
if (!_entityTree) {
|
||||||
|
|
|
@ -304,6 +304,8 @@ public slots:
|
||||||
Q_INVOKABLE QVector<QUuid> getChildrenIDsOfJoint(const QUuid& parentID, int jointIndex);
|
Q_INVOKABLE QVector<QUuid> getChildrenIDsOfJoint(const QUuid& parentID, int jointIndex);
|
||||||
Q_INVOKABLE bool isChildOfParent(QUuid childID, QUuid parentID);
|
Q_INVOKABLE bool isChildOfParent(QUuid childID, QUuid parentID);
|
||||||
|
|
||||||
|
Q_INVOKABLE QString getNestableType(QUuid id);
|
||||||
|
|
||||||
Q_INVOKABLE QUuid getKeyboardFocusEntity() const;
|
Q_INVOKABLE QUuid getKeyboardFocusEntity() const;
|
||||||
Q_INVOKABLE void setKeyboardFocusEntity(QUuid id);
|
Q_INVOKABLE void setKeyboardFocusEntity(QUuid id);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue