#ifndef _fencer_state_machine_h
#define _fencer_state_machine_h

#include "state.h"

typedef struct StateMachine StateMachine;

extern StateMachine* state_machine_init(void* data, const State* start_state);
extern void state_machine_destroy(StateMachine* self);

extern void state_machine_update(StateMachine* self, float dt);

extern const State* state_machine_get_current_state(StateMachine* self);

#endif // !_fencer_state_machine_h
