diff options
author | George Marques <george@gmarqu.es> | 2017-11-15 13:57:24 -0200 |
---|---|---|
committer | George Marques <george@gmarqu.es> | 2017-11-15 17:13:13 -0200 |
commit | 0284727e7bc6337ebcd98e61eacf0d095d74a094 (patch) | |
tree | 4c108558ec25992c2c940cbbde4d3832055c45a2 /modules/visual_script/visual_script_editor.h | |
parent | 9543801d51910cdf61123f591fd91993f57782ae (diff) | |
download | redot-engine-0284727e7bc6337ebcd98e61eacf0d095d74a094.tar.gz |
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.
Diffstat (limited to 'modules/visual_script/visual_script_editor.h')
-rw-r--r-- | modules/visual_script/visual_script_editor.h | 23 |
1 files changed, 23 insertions, 0 deletions
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<String, RefPtr> custom_nodes; + static Ref<VisualScriptNode> 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<Script> &p_script); + void remove_custom_node(const String &p_name, const String &p_category); + + _VisualScriptEditor(); + ~_VisualScriptEditor(); +}; #endif #endif // VISUALSCRIPT_EDITOR_H |