public override void Compose(List <State> states) { base.Compose(states); this.Idle.StateMachine = this; Idle.MoveTransition = new StateTransition("MoveTransition", Idle, Move); Idle.AddTrigger(MoveTransition, Idle.MoveTransition); states.Add(Idle); this.Move.StateMachine = this; Move.StopTransition = new StateTransition("StopTransition", Move, Idle); Move.AddTrigger(StopTransition, Move.StopTransition); states.Add(Move); }
public override void Compose(List <State> states) { base.Compose(states); this.Idle.StateMachine = this; Idle.BeginFiring = new StateTransition("BeginFiring", Idle, Firing); Idle.OnReload = new StateTransition("OnReload", Idle, Reloading); Idle.OnEmpty = new StateTransition("OnEmpty", Idle, Empty); Idle.AddTrigger(BeginFiring, Idle.BeginFiring); Idle.AddTrigger(OnReload, Idle.OnReload); Idle.AddTrigger(OnEmpty, Idle.OnEmpty); states.Add(Idle); this.Firing.StateMachine = this; Firing.EndFiring = new StateTransition("EndFiring", Firing, Idle); Firing.AddTrigger(EndFiring, Firing.EndFiring); states.Add(Firing); this.Reloading.StateMachine = this; Reloading.FinishedReloading = new StateTransition("FinishedReloading", Reloading, Idle); Reloading.AddTrigger(FinishedReloading, Reloading.FinishedReloading); states.Add(Reloading); this.Empty.StateMachine = this; Empty.OnReload = new StateTransition("OnReload", Empty, Reloading); Empty.AddTrigger(OnReload, Empty.OnReload); states.Add(Empty); }