diff options
Diffstat (limited to 'core/extension/gdextension.cpp')
-rw-r--r-- | core/extension/gdextension.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/core/extension/gdextension.cpp b/core/extension/gdextension.cpp index 0cbcf58882..8bdea01ae6 100644 --- a/core/extension/gdextension.cpp +++ b/core/extension/gdextension.cpp @@ -678,3 +678,25 @@ String GDExtensionResourceLoader::get_resource_type(const String &p_path) const } return ""; } + +#ifdef TOOLS_ENABLED +Vector<StringName> GDExtensionEditorPlugins::extension_classes; +GDExtensionEditorPlugins::EditorPluginRegisterFunc GDExtensionEditorPlugins::editor_node_add_plugin = nullptr; +GDExtensionEditorPlugins::EditorPluginRegisterFunc GDExtensionEditorPlugins::editor_node_remove_plugin = nullptr; + +void GDExtensionEditorPlugins::add_extension_class(const StringName &p_class_name) { + if (editor_node_add_plugin) { + editor_node_add_plugin(p_class_name); + } else { + extension_classes.push_back(p_class_name); + } +} + +void GDExtensionEditorPlugins::remove_extension_class(const StringName &p_class_name) { + if (editor_node_remove_plugin) { + editor_node_remove_plugin(p_class_name); + } else { + extension_classes.erase(p_class_name); + } +} +#endif // TOOLS_ENABLED |