2
0
Эх сурвалжийг харах

Merge pull request #21044 from willnationsdev/class_icons

Fix error spam from loading script class icons
Rémi Verschelde 7 жил өмнө
parent
commit
12e22f004a

+ 9 - 6
editor/create_dialog.cpp

@@ -158,12 +158,15 @@ Ref<Texture> CreateDialog::_get_editor_icon(const String &p_type) const {
 	}
 
 	if (ScriptServer::is_global_class(p_type)) {
-		RES icon = ResourceLoader::load(EditorNode::get_editor_data().script_class_get_icon_path(p_type));
-		if (icon.is_valid())
-			return icon;
-		icon = get_icon(ScriptServer::get_global_class_base(p_type), "EditorIcons");
-		if (icon.is_valid())
-			return icon;
+		String icon_path = EditorNode::get_editor_data().script_class_get_icon_path(p_type);
+		RES icon;
+		if (FileAccess::exists(icon_path)) {
+			icon = ResourceLoader::load(icon_path);
+		}
+		if (!icon.is_valid()) {
+			icon = get_icon(ScriptServer::get_global_class_base(p_type), "EditorIcons");
+		}
+		return icon;
 	}
 
 	const Map<String, Vector<EditorData::CustomType> > &p_map = EditorNode::get_editor_data().get_custom_types();

+ 1 - 1
modules/gdscript/gdscript.cpp

@@ -1877,7 +1877,7 @@ String GDScriptLanguage::get_global_class_name(const String &p_path, String *r_b
 			}
 		}
 		if (r_icon_path) {
-			if (c->icon_path.is_abs_path())
+			if (c->icon_path.empty() || c->icon_path.is_abs_path())
 				*r_icon_path = c->icon_path;
 			else if (c->icon_path.is_rel_path())
 				*r_icon_path = p_path.get_base_dir().plus_file(c->icon_path).simplify_path();