1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-22 15:06:45 +00:00

EditorFileSystem: Simplify resource loading logic on startup

This commit is contained in:
Haoyu Qiu
2025-07-03 21:51:30 +08:00
parent 53be3b78d1
commit 181f2a2d70

View File

@@ -3388,24 +3388,17 @@ Ref<Resource> EditorFileSystem::_load_resource_on_startup(ResourceFormatImporter
ERR_FAIL_V_MSG(Ref<Resource>(), vformat("Failed loading resource: %s. The file doesn't seem to exist.", p_path)); ERR_FAIL_V_MSG(Ref<Resource>(), vformat("Failed loading resource: %s. The file doesn't seem to exist.", p_path));
} }
Ref<Resource> res; // Fail silently. Hopefully the resource is not yet imported.
bool can_retry = true; Ref<Resource> res = p_importer->load_internal(p_path, r_error, p_use_sub_threads, r_progress, p_cache_mode, true);
bool retry = true; if (res.is_valid()) {
while (retry) { return res;
retry = false;
res = p_importer->load_internal(p_path, r_error, p_use_sub_threads, r_progress, p_cache_mode, can_retry);
if (res.is_null() && can_retry) {
can_retry = false;
Error err = singleton->_reimport_file(p_path, HashMap<StringName, Variant>(), "", nullptr, false);
if (err == OK) {
retry = true;
}
}
} }
return res; // Retry after importing the resource.
if (singleton->_reimport_file(p_path, HashMap<StringName, Variant>(), "", nullptr, false) != OK) {
return Ref<Resource>();
}
return p_importer->load_internal(p_path, r_error, p_use_sub_threads, r_progress, p_cache_mode, false);
} }
bool EditorFileSystem::_should_skip_directory(const String &p_path) { bool EditorFileSystem::_should_skip_directory(const String &p_path) {