Fix the uid field of the tscn/res file is lost when the external dependency is updated

This commit is contained in:
Rindbee 2022-12-18 08:05:36 +08:00
parent c3539b4561
commit 41ac40c44c

View file

@ -920,14 +920,24 @@ Error ResourceLoaderText::rename_dependencies(Ref<FileAccess> p_f, const String
} else {
if (fw.is_null()) {
fw = FileAccess::open(p_path + ".depren", FileAccess::WRITE);
if (res_uid == ResourceUID::INVALID_ID) {
res_uid = ResourceSaver::get_resource_id_for_path(p_path);
}
String uid_text = "";
if (res_uid != ResourceUID::INVALID_ID) {
uid_text = " uid=\"" + ResourceUID::get_singleton()->id_to_text(res_uid) + "\"";
}
if (is_scene) {
fw->store_line("[gd_scene load_steps=" + itos(resources_total) + " format=" + itos(FORMAT_VERSION) + "]\n");
fw->store_line("[gd_scene load_steps=" + itos(resources_total) + " format=" + itos(FORMAT_VERSION) + uid_text + "]\n");
} else {
String script_res_text;
if (!script_class.is_empty()) {
script_res_text = "script_class=\"" + script_class + "\" ";
}
fw->store_line("[gd_resource type=\"" + res_type + "\" " + script_res_text + "load_steps=" + itos(resources_total) + " format=" + itos(FORMAT_VERSION) + "]\n");
fw->store_line("[gd_resource type=\"" + res_type + "\" " + script_res_text + "load_steps=" + itos(resources_total) + " format=" + itos(FORMAT_VERSION) + uid_text + "]\n");
}
}