public void PushState(GameState newState) { drawOrder += drawOrderInc; newState.DrawOrder = drawOrder; AddState(newState); if (OnStateChange != null) { OnStateChange(this, EventArgs.Empty); } }
private void AddState(GameState newState) { GameStates.Push(newState); Game.Components.Add(newState); OnStateChange += newState.StateChange; }
public void ChangeState(GameState newState) { while (GameStates.Count > 0) { RemoveState(); } newState.DrawOrder = startDrawOrder; drawOrder = startDrawOrder; AddState(newState); if (OnStateChange != null) { OnStateChange(this, EventArgs.Empty); } }