mirror of
https://thingvellir.net/git/overte
synced 2025-03-27 23:52:03 +01:00
fix require by queueing content requests
This commit is contained in:
parent
db8846796f
commit
ba8d445444
2 changed files with 24 additions and 1 deletions
|
@ -219,6 +219,19 @@ ScriptEngine::ScriptEngine(Context context, const QString& scriptContents, const
|
|||
}
|
||||
logException(output);
|
||||
});
|
||||
|
||||
if (_type == Type::ENTITY_CLIENT || _type == Type::ENTITY_SERVER) {
|
||||
QObject::connect(this, &ScriptEngine::update, this, [this]() {
|
||||
// process pending entity script content
|
||||
if (_contentAvailableQueue.size()) {
|
||||
auto pending = _contentAvailableQueue.values().toStdList();
|
||||
_contentAvailableQueue.clear();
|
||||
for (auto& args : pending) {
|
||||
entityScriptContentAvailable(args.entityID, args.scriptOrURL, args.contents, args.isURL, args.success, args.status);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
QString ScriptEngine::getContext() const {
|
||||
|
@ -2181,7 +2194,7 @@ void ScriptEngine::loadEntityScript(const EntityItemID& entityID, const QString&
|
|||
qCDebug(scriptengine) << "loadEntityScript.contentAvailable" << status << QUrl(url).fileName() << entityID.toString();
|
||||
#endif
|
||||
if (!isStopping() && _entityScripts.contains(entityID)) {
|
||||
entityScriptContentAvailable(entityID, url, contents, isURL, success, status);
|
||||
_contentAvailableQueue[entityID] = { entityID, url, contents, isURL, success, status };
|
||||
} else {
|
||||
#ifdef DEBUG_ENTITY_STATES
|
||||
qCDebug(scriptengine) << "loadEntityScript.contentAvailable -- aborting";
|
||||
|
|
|
@ -71,6 +71,15 @@ public:
|
|||
//bool forceRedownload;
|
||||
};
|
||||
|
||||
struct EntityScriptContentAvailable {
|
||||
EntityItemID entityID;
|
||||
QString scriptOrURL;
|
||||
QString contents;
|
||||
bool isURL;
|
||||
bool success;
|
||||
QString status;
|
||||
};
|
||||
|
||||
typedef QList<CallbackData> CallbackList;
|
||||
typedef QHash<QString, CallbackList> RegisteredEventHandlers;
|
||||
|
||||
|
@ -762,6 +771,7 @@ protected:
|
|||
QHash<EntityItemID, EntityScriptDetails> _entityScripts;
|
||||
QHash<QString, EntityItemID> _occupiedScriptURLs;
|
||||
QList<DeferredLoadEntity> _deferredEntityLoads;
|
||||
QMap<EntityItemID, EntityScriptContentAvailable> _contentAvailableQueue;
|
||||
|
||||
bool _isThreaded { false };
|
||||
QScriptEngineDebugger* _debugger { nullptr };
|
||||
|
|
Loading…
Reference in a new issue