public GameState(Game game, GameStateManager manager) : base(game) { StateManager = manager; childComponents = new List<GameComponent>(); tag = this; }
public void ChangeState(GameState newState) { while (gameStates.Count > 0) { RemoveState(); } newState.DrawOrder = startDrawOrder; drawOrder = startDrawOrder; AddState(newState); if (OnStateChange != null) { OnStateChange(this, null); } }
public void PushState(GameState newState) { drawOrder += drawOrderInc; newState.DrawOrder = drawOrder; AddState(newState); if (OnStateChange != null) { OnStateChange(this, null); } }
private void AddState(GameState newState) { gameStates.Push(newState); Game.Components.Add(newState); OnStateChange += newState.StateChange; }