1
0
Fork 0

Improve UID file creation condition

This commit is contained in:
kobewi 2025-02-06 16:36:37 +01:00
parent f0f5319b0b
commit 65509ae4ff
3 changed files with 17 additions and 2 deletions

View File

@ -1196,6 +1196,20 @@ bool ResourceLoader::has_custom_uid_support(const String &p_path) {
return false;
}
bool ResourceLoader::should_create_uid_file(const String &p_path) {
const String local_path = _validate_local_path(p_path);
if (FileAccess::exists(local_path + ".uid")) {
return false;
}
for (int i = 0; i < loader_count; i++) {
if (loader[i]->recognize_path(local_path)) {
return !loader[i]->has_custom_uid_support();
}
}
return false;
}
String ResourceLoader::_path_remap(const String &p_path, bool *r_translation_remapped) {
String new_path = p_path;

View File

@ -246,6 +246,7 @@ public:
static String get_resource_script_class(const String &p_path);
static ResourceUID::ID get_resource_uid(const String &p_path);
static bool has_custom_uid_support(const String &p_path);
static bool should_create_uid_file(const String &p_path);
static void get_dependencies(const String &p_path, List<String> *p_dependencies, bool p_add_types = false);
static Error rename_dependencies(const String &p_path, const HashMap<String, String> &p_map);
static bool is_import_valid(const String &p_path);

View File

@ -1263,7 +1263,7 @@ void EditorFileSystem::_process_file_system(const ScannedDirectory *p_scan_dir,
}
}
if (ResourceLoader::exists(path) && !ResourceLoader::has_custom_uid_support(path) && !FileAccess::exists(path + ".uid")) {
if (ResourceLoader::should_create_uid_file(path)) {
// Create a UID file and new UID, if it's invalid.
Ref<FileAccess> f = FileAccess::open(path + ".uid", FileAccess::WRITE);
if (f.is_valid()) {
@ -2345,7 +2345,7 @@ void EditorFileSystem::update_files(const Vector<String> &p_script_paths) {
ResourceUID::get_singleton()->update_cache();
} else {
if (ResourceLoader::exists(file) && !ResourceLoader::has_custom_uid_support(file) && !FileAccess::exists(file + ".uid")) {
if (ResourceLoader::should_create_uid_file(file)) {
Ref<FileAccess> f = FileAccess::open(file + ".uid", FileAccess::WRITE);
if (f.is_valid()) {
const ResourceUID::ID id = ResourceUID::get_singleton()->create_id();