Пример #1
0
 public void SwitchToPreviousGameState()
 {
     if (_gameStateHistory.Count > 0)
     {
         GameStateItem item = _gameStateHistory.Peek();
         SwitchGameState(item); // Not Pop, because we want the history chain to stay untouched.
     }
 }
Пример #2
0
 public void SwitchToPreviousGameState(IStateParameter[] parametersOverride)
 {
     if (_gameStateHistory.Count > 0)
     {
         GameStateItem item = _gameStateHistory.Peek();
         item.Parameters = new StateParameters(parametersOverride);
         SwitchGameState(item); // Not Pop, because we want the history chain to stay untouched.
     }
 }
        private GameStateConstructor <T> Initialize(GameStateItem item)
        {
            Initialize(item.Parameters);

            if (item.SwitcherTypes != null)
            {
                _switcherTypes.AddRange(item.SwitcherTypes);
            }

            return(this);
        }
Пример #4
0
        public GameStateItem?Deactivate(Type[] allSwitchers)
        {
            if (_currentStateParameters == null)
            {
                return(null);
            }
            OnDeactivated();
            GameStateItem item = GetGameStateItem(allSwitchers);

            _currentStateParameters.Clean();
            _currentStateParameters = null;
            return(item);
        }
Пример #5
0
 public void SwitchGameState(GameStateItem gameStateItem)
 {
     InternalSwitchGameState(gameStateItem.GameStateType, GameStateConstructor <T> .Create(gameStateItem));
 }
 public static GameStateConstructor <T> Create(GameStateItem item)
 {
     return(new GameStateConstructor <T>().Initialize(item));
 }