From 4b4556179e541ef100202a1270e678f3bcac7fb6 Mon Sep 17 00:00:00 2001 From: Rindbee Date: Sun, 18 Dec 2022 08:05:36 +0800 Subject: Fix the uid field of the tscn/res file is lost when the external dependency is updated (cherry picked from commit 41ac40c44c058b5f9aa0d033787b2acb8e8020ea) --- scene/resources/resource_format_text.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'scene') diff --git a/scene/resources/resource_format_text.cpp b/scene/resources/resource_format_text.cpp index 448e800900..c30e009356 100644 --- a/scene/resources/resource_format_text.cpp +++ b/scene/resources/resource_format_text.cpp @@ -946,14 +946,24 @@ Error ResourceLoaderText::rename_dependencies(Ref 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"); } } -- cgit v1.2.3