History

Merge branch 'master' into scriptvec3

Sam Gondelman committed 8 years ago

Commit 7772e8a2 parents 7c8d080 243bd5e105 files · +4614 −1735Browse files

Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 105 files). Show all

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+15−1
@@ -219,6 +219,20 @@ ScriptEngine::ScriptEngine(Context context, const QString& scriptContents, const · 218 unmodified lines
219219 }
220220 logException(output);
221221 });
222+
223+ if (_type == Type::ENTITY_CLIENT || _type == Type::ENTITY_SERVER) {
224+ QObject::connect(this, &ScriptEngine::update, this, [this]() {
225+ // process pending entity script content
226+ if (!_contentAvailableQueue.empty()) {
227+ EntityScriptContentAvailableMap pending;
228+ std::swap(_contentAvailableQueue, pending);
229+ for (auto& pair : pending) {
230+ auto& args = pair.second;
231+ entityScriptContentAvailable(args.entityID, args.scriptOrURL, args.contents, args.isURL, args.success, args.status);
232+ }
233+ }
234+ });
235+ }
222236 }
223237
224238 QString ScriptEngine::getContext() const {
@@ -2181,7 +2195,7 @@ void ScriptEngine::loadEntityScript(const EntityItemID& entityID, const QString& · 1956 unmodified lines
21812195 qCDebug(scriptengine) << "loadEntityScript.contentAvailable" << status << QUrl(url).fileName() << entityID.toString();
21822196 #endif
21832197 if (!isStopping() && _entityScripts.contains(entityID)) {
2184− entityScriptContentAvailable(entityID, url, contents, isURL, success, status);
2198+ _contentAvailableQueue[entityID] = { entityID, url, contents, isURL, success, status };
21852199 } else {
21862200 #ifdef DEBUG_ENTITY_STATES
21872201 qCDebug(scriptengine) << "loadEntityScript.contentAvailable -- aborting";