#pragma once #include "behaviour_nodes/behaviour_composite.h" #include "behaviour_nodes/behaviour_node.h" #include "core/variant/variant.h" class BehaviourSequence : public BehaviourComposite { GDCLASS(BehaviourSequence, BehaviourComposite); static void _bind_methods() {} public: PackedStringArray get_configuration_warnings() const override; void execute() override; BehaviourNode *get_next() override; private: int current{ -1 }; }; class BehaviourSelector : public BehaviourComposite { GDCLASS(BehaviourSelector, BehaviourComposite); static void _bind_methods() {} public: PackedStringArray get_configuration_warnings() const override; void execute() override; BehaviourNode *get_next() override; private: int current{ -1 }; }; class BehaviourRepeater : public BehaviourComposite { GDCLASS(BehaviourRepeater, BehaviourComposite); static void _bind_methods() {} public: PackedStringArray get_configuration_warnings() const override; void execute() override; BehaviourNode *get_next() override; }; class BehaviourRepeatUntilFail : public BehaviourComposite { GDCLASS(BehaviourRepeatUntilFail, BehaviourComposite); static void _bind_methods() {} public: PackedStringArray get_configuration_warnings() const override; void execute() override; BehaviourNode *get_next() override; };