public void PushState(GameState newState) { drawOrder += 100; newState.DrawOrder = drawOrder; AddState(newState); //Let everyone know we just changed states if (OnStateChange != null) OnStateChange(this, null); }
public void ChangeState(GameState newState) { //We are changing states, so pop everything ... //if we don’t want to really change states but just modify, //we should call PushState and PopState while (states.Count > 0) RemoveState(); //changing state, reset our draw order newState.DrawOrder = drawOrder = initialDrawOrder; AddState(newState); //Let everyone know we just changed states if (OnStateChange != null) OnStateChange(this, null); }
private void AddState(GameState state) { states.Push(state); Game.Components.Add(state); //Register the event for this state OnStateChange += state.StateChanged; }
public bool ContainsState(GameState state) { return (states.Contains(state)); }