Beispiel #1
0
 private void SetupMainMenu(IStateMachine menu)
 {
     menu.AddState(new MenuItem("New Game"));
     menu.AddState(new MenuItem("Load Game"));
     menu.AddState(new MenuItem("Options"));
     menu.AddState(new MenuItem("Quit"));
     menu.GetState((int)MainMenuOptions.NewGame).Activate();
 }
        private void HandleStateMachineOutputActuator(IStateMachine stateMachine)
        {
            OnStateMachineStateChanged(stateMachine, stateMachine.GetState());

            stateMachine.StateChanged += (s, e) =>
            {
                OnStateMachineStateChanged(stateMachine, e.NewState);
            };
        }
Beispiel #3
0
        public static void SetNextState(this IStateMachine stateMachine)
        {
            if (stateMachine == null)
            {
                throw new ArgumentNullException(nameof(stateMachine));
            }

            var activeStateId = stateMachine.GetState();
            var nextStateId   = stateMachine.GetNextState(activeStateId);

            stateMachine.SetState(nextStateId);
        }
Beispiel #4
0
    public void LoadScene(int sceneId, Callback finishCallback = null)
    {
        DCopy db = ReadCfgCopy.GetDataById(sceneId);

        this.NextCopyType = db.CopyType;
        CommandLoadScene cmd = new CommandLoadScene();

        cmd.SceneID = sceneId;
        SceneLoading s = (SceneLoading)mStateMachine.GetState(ECopyType.TYPE_LOAD);

        s.mCallback = finishCallback;
        ChangeState(ECopyType.TYPE_LOAD, cmd);
    }
Beispiel #5
0
 public void ChangeState(FSMState fsm, ICommand ev)
 {
     if (mMachine == null || this.CacheTransform == null)
     {
         return;
     }
     if (FSM == FSMState.FSM_DEAD && fsm != FSMState.FSM_REBORN)
     {
         return;
     }
     if (!mMachine.Contains(fsm))
     {
         return;
     }
     mMachine.GetState(fsm).SetCommand(ev);
     mMachine.ChangeState(fsm);
 }
Beispiel #6
0
 public IState GetState(int index)
 {
     return(_stateMachine.GetState(index));
 }
 public IState GetState(int index)
 {
     return(_mainMenuStateMachine.GetState(index));
 }
        private void HandleStateMachineOutputActuator(IStateMachine stateMachine)
        {
            OnStateMachineStateChanged(stateMachine, stateMachine.GetState());

            stateMachine.StateChanged += (s, e) =>
            {
                OnStateMachineStateChanged(stateMachine, e.NewState);
            };
        }