24 using type = std::function<void(T)>;
28 struct StateCallback<void>
30 using type = std::function<void()>;
79 template<
typename StateEnum =
void>
88 !std::is_void_v<StateEnum>,
93 typename StateCallback<StateEnum>::type _onEnterCallback;
94 typename StateCallback<StateEnum>::type _onExitCallback;
103 template<
typename T = StateEnum>
104 explicit StateManager(std::enable_if_t<!std::is_void_v<T>, T> initialState);
117 template<
typename T = StateEnum>
118 std::enable_if_t<!std::is_void_v<T>>
129 template<
typename T = StateEnum>
130 std::enable_if_t<!std::is_void_v<T>>
142 template<
typename T = StateEnum>
143 std::enable_if_t<!std::is_void_v<T>>
151 template<
typename T = StateEnum>
152 std::enable_if_t<!std::is_void_v<T>, T>
161 template<
typename T = StateEnum>
162 std::enable_if_t<!std::is_void_v<T>,
bool>
177#include "../../../src/Resources/StateManager.tpp"
std::enable_if_t<!std::is_void_v< T > > setState(T newState)
Transition to a new state.
StateManager(std::enable_if_t<!std::is_void_v< T >, T > initialState)
Construct with an explicit initial state.
std::enable_if_t<!std::is_void_v< T > > onStateExit(std::function< void(T)> callback)
Register a callback invoked before each state transition.
std::enable_if_t<!std::is_void_v< T >, T > getState() const
Return the current state value.
StateManager()=default
Default constructor — initial state is the zero-value of StateEnum.
std::enable_if_t<!std::is_void_v< T > > onStateEnter(std::function< void(T)> callback)
Register a callback invoked after each state transition.
std::enable_if_t<!std::is_void_v< T >, bool > isState(T state) const
Return true if currently in state.