1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Load/update GDScript from disk on load if cache mode is CACHE_MODE_IGNORE

This commit is contained in:
Rindbee
2022-07-20 12:40:19 +08:00
parent f74491fdee
commit f1a4041f52
3 changed files with 12 additions and 6 deletions

View File

@@ -183,20 +183,26 @@ Ref<GDScript> GDScriptCache::get_shallow_script(const String &p_path, const Stri
return script;
}
Ref<GDScript> GDScriptCache::get_full_script(const String &p_path, Error &r_error, const String &p_owner) {
Ref<GDScript> GDScriptCache::get_full_script(const String &p_path, Error &r_error, const String &p_owner, bool p_update_from_disk) {
MutexLock lock(singleton->lock);
if (!p_owner.is_empty()) {
singleton->dependencies[p_owner].insert(p_path);
}
Ref<GDScript> script;
r_error = OK;
if (singleton->full_gdscript_cache.has(p_path)) {
return singleton->full_gdscript_cache[p_path];
script = Ref<GDScript>(singleton->full_gdscript_cache[p_path]);
if (!p_update_from_disk) {
return script;
}
}
Ref<GDScript> script = get_shallow_script(p_path);
ERR_FAIL_COND_V(script.is_null(), Ref<GDScript>());
if (script.is_null()) {
script = get_shallow_script(p_path);
ERR_FAIL_COND_V(script.is_null(), Ref<GDScript>());
}
r_error = script->load_source_code(p_path);