allow agent to create and get avatar entities from script

This commit is contained in:
Stephen Birarda 2018-08-09 19:01:52 -07:00
parent e6b419d283
commit a56e9b0860
3 changed files with 31 additions and 0 deletions

View file

@ -365,6 +365,8 @@ void Agent::executeScript() {
// setup an Avatar for the script to use
auto scriptedAvatar = DependencyManager::get<ScriptableAvatar>();
scriptedAvatar->setID(getSessionUUID());
connect(_scriptEngine.data(), SIGNAL(update(float)),
scriptedAvatar.data(), SLOT(update(float)), Qt::ConnectionType::QueuedConnection);
scriptedAvatar->setForceFaceTrackerConnected(true);
@ -606,6 +608,11 @@ void Agent::setIsAvatar(bool isAvatar) {
}
QMetaObject::invokeMethod(&_avatarAudioTimer, "stop");
_entityEditSender.setMyAvatar(nullptr);
} else {
auto scriptableAvatar = DependencyManager::get<ScriptableAvatar>();
_entityEditSender.setMyAvatar(scriptableAvatar.data());
}
}

View file

@ -269,6 +269,26 @@ QVector<AttachmentData> ScriptAvatarData::getAttachmentData() const {
// END
//
#if PR_BUILD || DEV_BUILD
//
// ENTITY PROPERTIES
// START
//
AvatarEntityMap ScriptAvatarData::getAvatarEntities() const {
AvatarEntityMap scriptEntityData;
if (AvatarSharedPointer sharedAvatarData = _avatarData.lock()) {
return sharedAvatarData->getAvatarEntityData();
}
return scriptEntityData;
}
//
// ENTITY PROPERTIES
// END
//
#endif
//
// AUDIO PROPERTIES

View file

@ -116,6 +116,10 @@ public:
Q_INVOKABLE QStringList getJointNames() const;
Q_INVOKABLE QVector<AttachmentData> getAttachmentData() const;
#if DEV_BUILD || PR_BUILD
Q_INVOKABLE AvatarEntityMap getAvatarEntities() const;
#endif
//
// AUDIO PROPERTIES
//