Browse Source

Fix error spam from loading script class icons

Will Nations 7 years ago
parent
commit
3ed9231117
2 changed files with 10 additions and 7 deletions
  1. 9 6
      editor/create_dialog.cpp
  2. 1 1
      modules/gdscript/gdscript.cpp

+ 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();