protected void RemoveInstanceCore <TInstance>(string extName) { var cell = StateStack.FirstOrDefault(p => p.InstanceType == typeof(TInstance) && p.ExtName == extName); if (cell != null) { StateStack.Remove(cell); } }
public void Render(DwarfTime time) { if (Game.GraphicsDevice.IsDisposed || DwarfGame.SpriteBatch.IsDisposed || DwarfGame.SpriteBatch.GraphicsDevice.IsDisposed) { return; } Game.GraphicsDevice.Clear(Color.Black); if (CurrentState != null && CurrentState.EnableScreensaver) { ScreenSaver.Render(Game.GraphicsDevice, time); } List <GameState> removals = new List <GameState>(); for (int i = StateStack.Count - 1; i >= 0; i--) { GameState state = StateStack[i]; if (state != null && (state.RenderUnderneath || i == 0 || Object.ReferenceEquals(state, CurrentState) || Object.ReferenceEquals(state, NextState))) { if (state.IsInitialized) { //try //{ state.Render(time); //} //catch (InvalidOperationException exception) //{ // removals.Add(state); //} } else if (!state.IsInitialized) { state.RenderUnitialized(time); } } } foreach (var state in removals) { StateStack.Remove(state); } }
protected override void Update() { Status.PrepareState(); for (int i = 0; i < StateStack.Count; ++i) { StateStack[i].UpdateState(); } foreach (var deletedState in DeleteStateList) { StateStack.Remove(deletedState); } if (UseCardStack.Count != 0 && !(CurrentAction is PlayerCardAction)) { EntityUtil.ChangeCardAction(this, UseCardStack[0].card.CardActionName, UseCardStack[0].card.Data, UseCardStack[0].target); UseCardStack.RemoveAt(0); } else { CurrentAction?.UpdateAction(); } }
private void W_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { StateStack.Add(new GameState(g, GameApp)); StateStack.Remove(this); }
private void BtnQuitGame_Pressed(object sender, EventArgs e) { StateStack.Remove(this); }
public void ReinsertState(GameState state) { StateStack.Remove(state); PushState(state); }
private void Dead() { StateStack.Remove(this); StateStack.Add(new DeadState(G)); }
private void BtnTitle_Pressed(object sender, System.EventArgs e) { StateStack.Remove(this); StateStack.Add(new TitleState()); }