/// <summary> /// Creates the requested game state entity /// </summary> /// <param name="gameState">State we want to create</param> /// <returns>The requested game state entity</returns> internal GameStateEntity CreateState(Enumerators.GameStateTypes gameState) { switch (gameState) { case Enumerators.GameStateTypes.START_GAMEPLAY: return(_gamePlayFactory.Create()); case Enumerators.GameStateTypes.MENU: return(_menuStateFactory.Create()); } return(null); }
/// <summary> /// Change game state /// </summary> /// <param name="state">The state to transition to</param> internal void ChangeState(Enumerators.GameStateTypes state) { if (_gameStateEntity != null) { _gameStateEntity.Dispose(); _gameStateEntity = null; } _previousGameState = _currentGameState; _currentGameState = state; _gameStateEntity = _gameStateFactory.CreateState(state); _gameStateEntity.Initialize(); _gameStateEntity.Start(); }