#ifndef STATE_H #define STATE_H #include "core/object/class_db.h" #include "core/object/object.h" class StateMachine; class Node; class State : public Object { GDCLASS(State, Object); static void _bind_methods(); public: virtual void set_target(Node *target) {} virtual void enter_state() {} virtual void exit_state() {} virtual void process(double delta) {} virtual String get_next_state() const; void set_state_machine(StateMachine *machine); StateMachine *get_state_machine() const; private: StateMachine *state_machine{ nullptr }; }; #endif // !STATE_H