diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index ec40ffc653..b384e1086e 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1231,7 +1231,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo connect(scriptEngines, &ScriptEngines::scriptsReloading, scriptEngines, [this] { getEntities()->reloadEntityScripts(); - loadAvatarScripts(getMyAvatar()->getSkeletonModel()->getFBXGeometry().scripts); + loadAvatarScripts(getMyAvatar()->getScriptUrls()); }, Qt::QueuedConnection); connect(scriptEngines, &ScriptEngines::scriptLoadError, @@ -4728,16 +4728,14 @@ void Application::init() { } void Application::loadAvatarScripts(const QVector& urls) { - if (urls.size() > 0) { - auto scriptEngines = DependencyManager::get(); - auto runningScripts = scriptEngines->getRunningScripts(); - for (auto url : urls) { - int index = runningScripts.indexOf(url); - if (index < 0) { - auto scriptEnginePointer = scriptEngines->loadScript(url, false); - if (scriptEnginePointer) { - scriptEnginePointer->setType(ScriptEngine::Type::AVATAR); - } + auto scriptEngines = DependencyManager::get(); + auto runningScripts = scriptEngines->getRunningScripts(); + for (auto url : urls) { + int index = runningScripts.indexOf(url); + if (index < 0) { + auto scriptEnginePointer = scriptEngines->loadScript(url, false); + if (scriptEnginePointer) { + scriptEnginePointer->setType(ScriptEngine::Type::AVATAR); } } } @@ -4746,12 +4744,10 @@ void Application::loadAvatarScripts(const QVector& urls) { void Application::unloadAvatarScripts() { auto scriptEngines = DependencyManager::get(); auto urls = scriptEngines->getRunningScripts(); - if (urls.size() > 0) { - for (auto url : urls) { - auto scriptEngine = scriptEngines->getScriptEngine(url); - if (scriptEngine->getType() == ScriptEngine::Type::AVATAR) { - scriptEngines->stopScript(url, false); - } + for (auto url : urls) { + auto scriptEngine = scriptEngines->getScriptEngine(url); + if (scriptEngine->getType() == ScriptEngine::Type::AVATAR) { + scriptEngines->stopScript(url, false); } } } diff --git a/interface/src/ModelPackager.cpp b/interface/src/ModelPackager.cpp index 72b99ce5a3..0e34eebc80 100644 --- a/interface/src/ModelPackager.cpp +++ b/interface/src/ModelPackager.cpp @@ -210,7 +210,6 @@ bool ModelPackager::zipModel() { _mapping[TEXDIR_FIELD] = tempDir.relativeFilePath(texDir.path()); for (auto multi : _mapping.values(SCRIPT_FIELD)) { - multi.fromValue(tempDir.relativeFilePath(scriptDir.path()) + multi.toString()); } // Copy FST diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 85b2ece077..5ce056e9b7 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -2852,6 +2852,11 @@ void MyAvatar::setWalkSpeed(float value) { _walkSpeed.set(value); } +QVector MyAvatar::getScriptUrls() { + QVector scripts = _skeletonModel->isLoaded() ? _skeletonModel->getFBXGeometry().scripts : QVector(); + return scripts; +} + glm::vec3 MyAvatar::getPositionForAudio() { glm::vec3 result; switch (_audioListenerMode) { diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 2bcbd878a9..d605e1cc44 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -594,6 +594,8 @@ public: void setWalkSpeed(float value); float getWalkSpeed() const; + QVector getScriptUrls(); + public slots: void increaseSize(); void decreaseSize(); diff --git a/libraries/fbx/src/FSTReader.cpp b/libraries/fbx/src/FSTReader.cpp index fcbfca1e7d..d63a5b3cc4 100644 --- a/libraries/fbx/src/FSTReader.cpp +++ b/libraries/fbx/src/FSTReader.cpp @@ -193,17 +193,15 @@ QVector FSTReader::getScripts(const QUrl& url, const QVariantHash& mapp QVector scriptPaths; if (!fstMapping.value(SCRIPT_FIELD).isNull()) { auto scripts = fstMapping.values(SCRIPT_FIELD).toVector(); - if (scripts.size() > 0) { - for (auto &script : scripts) { - QString scriptPath = script.toString(); - if (QUrl(scriptPath).isRelative()) { - if (scriptPath.at(0) == '/') { - scriptPath = scriptPath.right(scriptPath.length() - 1); - } - scriptPath = url.resolved(QUrl(scriptPath)).toString(); + for (auto &script : scripts) { + QString scriptPath = script.toString(); + if (QUrl(scriptPath).isRelative()) { + if (scriptPath.at(0) == '/') { + scriptPath = scriptPath.right(scriptPath.length() - 1); } - scriptPaths.push_back(scriptPath); + scriptPath = url.resolved(QUrl(scriptPath)).toString(); } + scriptPaths.push_back(scriptPath); } } return scriptPaths; diff --git a/libraries/model-networking/src/model-networking/ModelCache.cpp b/libraries/model-networking/src/model-networking/ModelCache.cpp index e1086bc0c9..416920d43f 100644 --- a/libraries/model-networking/src/model-networking/ModelCache.cpp +++ b/libraries/model-networking/src/model-networking/ModelCache.cpp @@ -221,10 +221,8 @@ void GeometryReader::run() { // Add scripts to fbxgeometry if (!_mapping.value(SCRIPT_FIELD).isNull()) { QVariantList scripts = _mapping.values(SCRIPT_FIELD); - if (scripts.size() > 0) { - for (auto &script : scripts) { - fbxGeometry->scripts.push_back(script.toString()); - } + for (auto &script : scripts) { + fbxGeometry->scripts.push_back(script.toString()); } }