Fix missing UID handling for binary formats

This commit is contained in:
kobewi 2023-06-16 13:40:10 +02:00
parent 598378513b
commit 313c0c7f5d

View File

@ -920,8 +920,11 @@ void ResourceLoaderBinary::get_dependencies(Ref<FileAccess> p_f, List<String> *p
for (int i = 0; i < external_resources.size(); i++) {
String dep;
String fallback_path;
if (external_resources[i].uid != ResourceUID::INVALID_ID) {
dep = ResourceUID::get_singleton()->id_to_text(external_resources[i].uid);
fallback_path = external_resources[i].path; // Used by Dependency Editor, in case uid path fails.
} else {
dep = external_resources[i].path;
}
@ -929,6 +932,12 @@ void ResourceLoaderBinary::get_dependencies(Ref<FileAccess> p_f, List<String> *p
if (p_add_types && !external_resources[i].type.is_empty()) {
dep += "::" + external_resources[i].type;
}
if (!fallback_path.is_empty()) {
if (!p_add_types) {
dep += "::"; // Ensure that path comes third, even if there is no type.
}
dep += "::" + fallback_path;
}
p_dependencies->push_back(dep);
}