Skip to content

Release v8.0.0

Latest

Choose a tag to compare

@StephanHooft StephanHooft released this 22 Jan 17:09
· 12 commits to main since this release

This release makes changes to the StateMachines framework, which break compatibility. Projects will need to be modified if using this version or beyond.

  • IState, IStateMachine, State, and StateMachine have all been discontinued. Their reliance on state registers to transition to another state was messy, and gave states the explicit capability to interact with one another. This is undesirable.
  • IStateT, IStateMachineT, StateT and StateMachineT have been modified. They no longer use a state register, and a state's update methods must now return a clean . This allows enum-based states to operate independently, with their state machine being the only one able to locate the next state to transition to.
  • As a result, StateT and IStateT may no longer return null. If a state update should not cause a state transition, return the enum's default value instead. It is recommended to have the enum's 0 value remain unused (don't associate an IStateT with it) and return this where you would previously return null.