Browse Source

Merge pull request #91337 from KoBeWi/unhack_addons

Rework global class hiding in addons
Rémi Verschelde 1 năm trước cách đây
mục cha
commit
2d22dfab4a
1 tập tin đã thay đổi với 7 bổ sung2 xóa
  1. 7 2
      editor/create_dialog.cpp

+ 7 - 2
editor/create_dialog.cpp

@@ -160,8 +160,13 @@ bool CreateDialog::_should_hide_type(const StringName &p_type) const {
 
 		String script_path = ScriptServer::get_global_class_path(p_type);
 		if (script_path.begins_with("res://addons/")) {
-			if (!EditorNode::get_singleton()->is_addon_plugin_enabled(script_path.get_slicec('/', 3))) {
-				return true; // Plugin is not enabled.
+			int i = script_path.find("/", 13); // 13 is length of "res://addons/".
+			while (i > -1) {
+				const String plugin_path = script_path.substr(0, i).path_join("plugin.cfg");
+				if (FileAccess::exists(plugin_path)) {
+					return !EditorNode::get_singleton()->is_addon_plugin_enabled(plugin_path);
+				}
+				i = script_path.find("/", i + 1);
 			}
 		}
 	}