Trigger a Transition
var machine = StateMachine.create((g) => g
..initialState<Solid>()
..state<Solid>((b) => b
..on<OnMelted, Liquid>(
sideEffect: (e) => watcher.log(onMeltedMessage))
..onEnter((s, e) => watcher?.onEnter(s))
..onExit((s, e) => watcher?.onExit(s)))
..state<Liquid>((b) => b
..onEnter((s, e) => watcher?.onEnter(s))
..onExit((s, e) => watcher?.onExit(s))
..on<OnFroze, Solid>(
sideEffect: (e) => watcher.log(onFrozenMessage))
..on<OnVaporized, Gas>(
sideEffect: (e) => watcher.log(onVaporizedMessage)))
..state<Gas>((b) => b..on<OnCondensed, Liquid>(
sideEffect: (e) => watcher.log(onCondensedMessage)))
);
machine.applyEvent(OnFroze());Invalid Transitions
Concurrent Regions
Last updated
Was this helpful?