コード例 #1
0
ファイル: CastleStateMachine.cs プロジェクト: Aecid/Chatcraft
 public CastleStateMachine()
 {
     CurrentState = CastleProcessState.Inactive;
     transitions  = new Dictionary <StateTransition, CastleProcessState>
     {
         { new StateTransition(CastleProcessState.Inactive, CastleCommand.Exit), CastleProcessState.Terminated },
         { new StateTransition(CastleProcessState.Inactive, CastleCommand.Begin), CastleProcessState.Active },
         { new StateTransition(CastleProcessState.Active, CastleCommand.End), CastleProcessState.Inactive },
         { new StateTransition(CastleProcessState.Active, CastleCommand.Pause), CastleProcessState.Paused },
         { new StateTransition(CastleProcessState.Paused, CastleCommand.End), CastleProcessState.Inactive },
         { new StateTransition(CastleProcessState.Paused, CastleCommand.Resume), CastleProcessState.Active }
     };
 }
コード例 #2
0
ファイル: CastleStateMachine.cs プロジェクト: Aecid/Chatcraft
 public CastleProcessState MoveNext(CastleCommand command)
 {
     CurrentState = GetNext(command);
     return(CurrentState);
 }
コード例 #3
0
ファイル: CastleStateMachine.cs プロジェクト: Aecid/Chatcraft
 public StateTransition(CastleProcessState currentState, CastleCommand command)
 {
     CurrentState = currentState;
     Command      = command;
 }