public void AddProcedure <T>() where T : ProcedureBase { if (null == m_ProcedureFsm) { return; } m_ProcedureFsm.AddState <T>(); }
public FsmExample() { //Create the FSM and some Data class to be refrenced in states _stateMachine = new Fsm <ConcreteClass, ExampleTransitions>(); var data = new StateData(); //Add States _stateMachine.AddState(new IdleState(data)); _stateMachine.AddState(new ActionState(data)); //AddTransitions _stateMachine.AddTransition <IdleState, ActionState>(ExampleTransitions.ReadyToAction); _stateMachine.AddTransition <ActionState, IdleState>(ExampleTransitions.Stop); //Start the Machine _stateMachine.SetInitialState <IdleState>(); _stateMachine.Start(); }