added requested changes

This commit is contained in:
luiscuenca 2018-05-02 11:09:17 -07:00
parent 2ac7fcadd2
commit 689fbd2da0
6 changed files with 29 additions and 31 deletions

View file

@ -1231,7 +1231,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
connect(scriptEngines, &ScriptEngines::scriptsReloading, scriptEngines, [this] { connect(scriptEngines, &ScriptEngines::scriptsReloading, scriptEngines, [this] {
getEntities()->reloadEntityScripts(); getEntities()->reloadEntityScripts();
loadAvatarScripts(getMyAvatar()->getSkeletonModel()->getFBXGeometry().scripts); loadAvatarScripts(getMyAvatar()->getScriptUrls());
}, Qt::QueuedConnection); }, Qt::QueuedConnection);
connect(scriptEngines, &ScriptEngines::scriptLoadError, connect(scriptEngines, &ScriptEngines::scriptLoadError,
@ -4728,16 +4728,14 @@ void Application::init() {
} }
void Application::loadAvatarScripts(const QVector<QString>& urls) { void Application::loadAvatarScripts(const QVector<QString>& urls) {
if (urls.size() > 0) { auto scriptEngines = DependencyManager::get<ScriptEngines>();
auto scriptEngines = DependencyManager::get<ScriptEngines>(); auto runningScripts = scriptEngines->getRunningScripts();
auto runningScripts = scriptEngines->getRunningScripts(); for (auto url : urls) {
for (auto url : urls) { int index = runningScripts.indexOf(url);
int index = runningScripts.indexOf(url); if (index < 0) {
if (index < 0) { auto scriptEnginePointer = scriptEngines->loadScript(url, false);
auto scriptEnginePointer = scriptEngines->loadScript(url, false); if (scriptEnginePointer) {
if (scriptEnginePointer) { scriptEnginePointer->setType(ScriptEngine::Type::AVATAR);
scriptEnginePointer->setType(ScriptEngine::Type::AVATAR);
}
} }
} }
} }
@ -4746,12 +4744,10 @@ void Application::loadAvatarScripts(const QVector<QString>& urls) {
void Application::unloadAvatarScripts() { void Application::unloadAvatarScripts() {
auto scriptEngines = DependencyManager::get<ScriptEngines>(); auto scriptEngines = DependencyManager::get<ScriptEngines>();
auto urls = scriptEngines->getRunningScripts(); auto urls = scriptEngines->getRunningScripts();
if (urls.size() > 0) { for (auto url : urls) {
for (auto url : urls) { auto scriptEngine = scriptEngines->getScriptEngine(url);
auto scriptEngine = scriptEngines->getScriptEngine(url); if (scriptEngine->getType() == ScriptEngine::Type::AVATAR) {
if (scriptEngine->getType() == ScriptEngine::Type::AVATAR) { scriptEngines->stopScript(url, false);
scriptEngines->stopScript(url, false);
}
} }
} }
} }

View file

@ -210,7 +210,6 @@ bool ModelPackager::zipModel() {
_mapping[TEXDIR_FIELD] = tempDir.relativeFilePath(texDir.path()); _mapping[TEXDIR_FIELD] = tempDir.relativeFilePath(texDir.path());
for (auto multi : _mapping.values(SCRIPT_FIELD)) { for (auto multi : _mapping.values(SCRIPT_FIELD)) {
multi.fromValue(tempDir.relativeFilePath(scriptDir.path()) + multi.toString()); multi.fromValue(tempDir.relativeFilePath(scriptDir.path()) + multi.toString());
} }
// Copy FST // Copy FST

View file

@ -2852,6 +2852,11 @@ void MyAvatar::setWalkSpeed(float value) {
_walkSpeed.set(value); _walkSpeed.set(value);
} }
QVector<QString> MyAvatar::getScriptUrls() {
QVector<QString> scripts = _skeletonModel->isLoaded() ? _skeletonModel->getFBXGeometry().scripts : QVector<QString>();
return scripts;
}
glm::vec3 MyAvatar::getPositionForAudio() { glm::vec3 MyAvatar::getPositionForAudio() {
glm::vec3 result; glm::vec3 result;
switch (_audioListenerMode) { switch (_audioListenerMode) {

View file

@ -594,6 +594,8 @@ public:
void setWalkSpeed(float value); void setWalkSpeed(float value);
float getWalkSpeed() const; float getWalkSpeed() const;
QVector<QString> getScriptUrls();
public slots: public slots:
void increaseSize(); void increaseSize();
void decreaseSize(); void decreaseSize();

View file

@ -193,17 +193,15 @@ QVector<QString> FSTReader::getScripts(const QUrl& url, const QVariantHash& mapp
QVector<QString> scriptPaths; QVector<QString> scriptPaths;
if (!fstMapping.value(SCRIPT_FIELD).isNull()) { if (!fstMapping.value(SCRIPT_FIELD).isNull()) {
auto scripts = fstMapping.values(SCRIPT_FIELD).toVector(); auto scripts = fstMapping.values(SCRIPT_FIELD).toVector();
if (scripts.size() > 0) { for (auto &script : scripts) {
for (auto &script : scripts) { QString scriptPath = script.toString();
QString scriptPath = script.toString(); if (QUrl(scriptPath).isRelative()) {
if (QUrl(scriptPath).isRelative()) { if (scriptPath.at(0) == '/') {
if (scriptPath.at(0) == '/') { scriptPath = scriptPath.right(scriptPath.length() - 1);
scriptPath = scriptPath.right(scriptPath.length() - 1);
}
scriptPath = url.resolved(QUrl(scriptPath)).toString();
} }
scriptPaths.push_back(scriptPath); scriptPath = url.resolved(QUrl(scriptPath)).toString();
} }
scriptPaths.push_back(scriptPath);
} }
} }
return scriptPaths; return scriptPaths;

View file

@ -221,10 +221,8 @@ void GeometryReader::run() {
// Add scripts to fbxgeometry // Add scripts to fbxgeometry
if (!_mapping.value(SCRIPT_FIELD).isNull()) { if (!_mapping.value(SCRIPT_FIELD).isNull()) {
QVariantList scripts = _mapping.values(SCRIPT_FIELD); QVariantList scripts = _mapping.values(SCRIPT_FIELD);
if (scripts.size() > 0) { for (auto &script : scripts) {
for (auto &script : scripts) { fbxGeometry->scripts.push_back(script.toString());
fbxGeometry->scripts.push_back(script.toString());
}
} }
} }