diff options
author | Juan Linietsky <reduzio@gmail.com> | 2016-08-07 21:22:14 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2016-08-07 21:22:14 -0300 |
commit | cfbdeeffec74f9c8c8d7ddac9b31eb32c85ddf89 (patch) | |
tree | c2fd540dc145ffa65ebcf7dcb74bf011c9333bba /modules/visual_script/visual_script_nodes.h | |
parent | 0b8f0670c54ea8697806e3560b7dc99b93f923ea (diff) | |
download | redot-engine-cfbdeeffec74f9c8c8d7ddac9b31eb32c85ddf89.tar.gz |
Added ability to create custom nodes from script.
Diffstat (limited to 'modules/visual_script/visual_script_nodes.h')
-rw-r--r-- | modules/visual_script/visual_script_nodes.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/modules/visual_script/visual_script_nodes.h b/modules/visual_script/visual_script_nodes.h index 6630dbb04c..5c62145b07 100644 --- a/modules/visual_script/visual_script_nodes.h +++ b/modules/visual_script/visual_script_nodes.h @@ -559,6 +559,57 @@ public: }; +class VisualScriptCustomNode: public VisualScriptNode { + + OBJ_TYPE(VisualScriptCustomNode,VisualScriptNode) + + +protected: + + virtual bool _use_builtin_script() const { return true; } + + static void _bind_methods(); +public: + + enum StartMode { //replicated for step + START_MODE_BEGIN_SEQUENCE, + START_MODE_CONTINUE_SEQUENCE, + START_MODE_RESUME_YIELD + }; + + enum { //replicated for step + STEP_SHIFT=1<<24, + STEP_MASK=STEP_SHIFT-1, + STEP_PUSH_STACK_BIT=STEP_SHIFT, //push bit to stack + STEP_GO_BACK_BIT=STEP_SHIFT<<1, //go back to previous node + STEP_NO_ADVANCE_BIT=STEP_SHIFT<<2, //do not advance past this node + STEP_EXIT_FUNCTION_BIT=STEP_SHIFT<<3, //return from function + STEP_YIELD_BIT=STEP_SHIFT<<4, //yield (will find VisualScriptFunctionState state in first working memory) + }; + + virtual int get_output_sequence_port_count() const; + virtual bool has_input_sequence_port() const; + + + virtual String get_output_sequence_port_text(int p_port) const; + + + virtual int get_input_value_port_count() const; + virtual int get_output_value_port_count() const; + + + virtual PropertyInfo get_input_value_port_info(int p_idx) const; + virtual PropertyInfo get_output_value_port_info(int p_idx) const; + + virtual String get_caption() const; + virtual String get_text() const; + virtual String get_category() const; + + virtual VisualScriptNodeInstance* instance(VisualScriptInstance* p_instance); + + VisualScriptCustomNode(); +}; + void register_visual_script_nodes(); |