|
@@ -316,14 +316,34 @@ Ref<Resource> ResourceLoader::_load(const String &p_path, const String &p_origin
|
|
return res;
|
|
return res;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+#ifdef TOOLS_ENABLED
|
|
|
|
+ if (Engine::get_singleton()->is_editor_hint()) {
|
|
|
|
+ if (ResourceFormatImporter::get_singleton()->get_importer_by_extension(p_path.get_extension()).is_valid()) {
|
|
|
|
+ // The format is known to the editor, but the file hasn't been imported
|
|
|
|
+ // (otherwise, ResourceFormatImporter would have been found as a suitable loader).
|
|
|
|
+ found = true;
|
|
|
|
+ if (r_error) {
|
|
|
|
+ *r_error = ERR_FILE_NOT_FOUND;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+#endif
|
|
ERR_FAIL_COND_V_MSG(found, Ref<Resource>(),
|
|
ERR_FAIL_COND_V_MSG(found, Ref<Resource>(),
|
|
vformat("Failed loading resource: %s. Make sure resources have been imported by opening the project in the editor at least once.", p_path));
|
|
vformat("Failed loading resource: %s. Make sure resources have been imported by opening the project in the editor at least once.", p_path));
|
|
|
|
|
|
#ifdef TOOLS_ENABLED
|
|
#ifdef TOOLS_ENABLED
|
|
Ref<FileAccess> file_check = FileAccess::create(FileAccess::ACCESS_RESOURCES);
|
|
Ref<FileAccess> file_check = FileAccess::create(FileAccess::ACCESS_RESOURCES);
|
|
- ERR_FAIL_COND_V_MSG(!file_check->file_exists(p_path), Ref<Resource>(), vformat("Resource file not found: %s (expected type: %s)", p_path, p_type_hint));
|
|
|
|
|
|
+ if (!file_check->file_exists(p_path)) {
|
|
|
|
+ if (r_error) {
|
|
|
|
+ *r_error = ERR_FILE_NOT_FOUND;
|
|
|
|
+ }
|
|
|
|
+ ERR_FAIL_V_MSG(Ref<Resource>(), vformat("Resource file not found: %s (expected type: %s)", p_path, p_type_hint));
|
|
|
|
+ }
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
+ if (r_error) {
|
|
|
|
+ *r_error = ERR_FILE_UNRECOGNIZED;
|
|
|
|
+ }
|
|
ERR_FAIL_V_MSG(Ref<Resource>(), vformat("No loader found for resource: %s (expected type: %s)", p_path, p_type_hint));
|
|
ERR_FAIL_V_MSG(Ref<Resource>(), vformat("No loader found for resource: %s (expected type: %s)", p_path, p_type_hint));
|
|
}
|
|
}
|
|
|
|
|