27 lines
572 B
C++
27 lines
572 B
C++
#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
|