visual_script_yield_nodes.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. #ifndef VISUAL_SCRIPT_YIELD_NODES_H
  2. #define VISUAL_SCRIPT_YIELD_NODES_H
  3. #include "visual_script.h"
  4. class VisualScriptYield : public VisualScriptNode {
  5. GDCLASS(VisualScriptYield,VisualScriptNode)
  6. public:
  7. enum YieldMode {
  8. YIELD_RETURN,
  9. YIELD_FRAME,
  10. YIELD_FIXED_FRAME,
  11. YIELD_WAIT
  12. };
  13. private:
  14. YieldMode yield_mode;
  15. float wait_time;
  16. protected:
  17. virtual void _validate_property(PropertyInfo& property) const;
  18. static void _bind_methods();
  19. public:
  20. virtual int get_output_sequence_port_count() const;
  21. virtual bool has_input_sequence_port() const;
  22. virtual String get_output_sequence_port_text(int p_port) const;
  23. virtual int get_input_value_port_count() const;
  24. virtual int get_output_value_port_count() const;
  25. virtual PropertyInfo get_input_value_port_info(int p_idx) const;
  26. virtual PropertyInfo get_output_value_port_info(int p_idx) const;
  27. virtual String get_caption() const;
  28. virtual String get_text() const;
  29. virtual String get_category() const { return "functions"; }
  30. void set_yield_mode(YieldMode p_mode);
  31. YieldMode get_yield_mode();
  32. void set_wait_time(float p_time);
  33. float get_wait_time();
  34. virtual VisualScriptNodeInstance* instance(VisualScriptInstance* p_instance);
  35. VisualScriptYield();
  36. };
  37. VARIANT_ENUM_CAST( VisualScriptYield::YieldMode )
  38. class VisualScriptYieldSignal : public VisualScriptNode {
  39. GDCLASS(VisualScriptYieldSignal,VisualScriptNode)
  40. public:
  41. enum CallMode {
  42. CALL_MODE_SELF,
  43. CALL_MODE_NODE_PATH,
  44. CALL_MODE_INSTANCE,
  45. };
  46. private:
  47. CallMode call_mode;
  48. StringName base_type;
  49. NodePath base_path;
  50. StringName signal;
  51. Node *_get_base_node() const;
  52. StringName _get_base_type() const;
  53. protected:
  54. virtual void _validate_property(PropertyInfo& property) const;
  55. static void _bind_methods();
  56. public:
  57. virtual int get_output_sequence_port_count() const;
  58. virtual bool has_input_sequence_port() const;
  59. virtual String get_output_sequence_port_text(int p_port) const;
  60. virtual int get_input_value_port_count() const;
  61. virtual int get_output_value_port_count() const;
  62. virtual PropertyInfo get_input_value_port_info(int p_idx) const;
  63. virtual PropertyInfo get_output_value_port_info(int p_idx) const;
  64. virtual String get_caption() const;
  65. virtual String get_text() const;
  66. virtual String get_category() const { return "functions"; }
  67. void set_base_type(const StringName& p_type);
  68. StringName get_base_type() const;
  69. void set_signal(const StringName& p_type);
  70. StringName get_signal() const;
  71. void set_base_path(const NodePath& p_type);
  72. NodePath get_base_path() const;
  73. void set_call_mode(CallMode p_mode);
  74. CallMode get_call_mode() const;
  75. virtual VisualScriptNodeInstance* instance(VisualScriptInstance* p_instance);
  76. VisualScriptYieldSignal();
  77. };
  78. VARIANT_ENUM_CAST(VisualScriptYieldSignal::CallMode );
  79. void register_visual_script_yield_nodes();
  80. #endif // VISUAL_SCRIPT_YIELD_NODES_H