From 0284727e7bc6337ebcd98e61eacf0d095d74a094 Mon Sep 17 00:00:00 2001 From: George Marques Date: Wed, 15 Nov 2017 13:57:24 -0200 Subject: Create API to add and remove VisualScript custom nodes This makes a VisualScriptEditor singleton, which gives plugins the ability to register their own custom nodes. Those will be available for insertion in the Visual Script editor, under the "Custom Nodes" category. --- modules/visual_script/visual_script_editor.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'modules/visual_script/visual_script_editor.h') diff --git a/modules/visual_script/visual_script_editor.h b/modules/visual_script/visual_script_editor.h index db54d10300..3d037e82ea 100644 --- a/modules/visual_script/visual_script_editor.h +++ b/modules/visual_script/visual_script_editor.h @@ -278,6 +278,29 @@ public: VisualScriptEditor(); ~VisualScriptEditor(); }; + +// Singleton +class _VisualScriptEditor : public Object { + GDCLASS(_VisualScriptEditor, Object); + + friend class VisualScriptLanguage; + +protected: + static void _bind_methods(); + static _VisualScriptEditor *singleton; + + static Map custom_nodes; + static Ref create_node_custom(const String &p_name); + +public: + static _VisualScriptEditor *get_singleton() { return singleton; } + + void add_custom_node(const String &p_name, const String &p_category, const Ref