public void Push(MainGameState state) { stackOperations.Enqueue(() => { states.Add(state); state.Enter(); }); }
public void PopAbove(MainGameState state) { int i = states.Count - 1; while (states.ElementAt(i--) != state) { Pop(); } }