Added ability to create custom nodes from script.

This commit is contained in:
Juan Linietsky 2016-08-07 21:22:14 -03:00
parent 0b8f0670c5
commit cfbdeeffec
5 changed files with 320 additions and 0 deletions

View file

@ -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();