private IEnumerator <ICoroutineOperation> ToggleCoroutine(bool closing) { if (!UseTransitions) { State = closing ? MenuUIState.Closed : MenuUIState.Open; _alpha = new TweenedDouble(Parent.Game, closing ? 0 : 1); Area = new TweenedVector2(Parent.Game, closing ? new Vector2(RecalculateArea(SelectedPageID).X, 7 * 2) : RecalculateArea(SelectedPageID)); yield break; } if (closing) { Area.TweenTo(new Vector2(RecalculateArea(SelectedPageID).X, 7 * 2), TweenEaseType.EaseInOutSine, 0.14f); yield return(Wait.Seconds(Parent.Game, 0.14f - 0.06f)); _alpha.TweenTo(closing ? 0 : 1, TweenEaseType.EaseInOutSine, 0.06f); yield return(Wait.Seconds(Parent.Game, 0.06f)); } else { Area.TweenTo(RecalculateArea(SelectedPageID), TweenEaseType.EaseInOutSine, 0.14f); _alpha.TweenTo(closing ? 0 : 1, TweenEaseType.EaseInOutSine, 0.06f); yield return(Wait.Seconds(Parent.Game, 0.14f)); } State = closing ? MenuUIState.Closed : MenuUIState.Open; }
public MenuUI(GameState state, string initialPageId, MenuPage initialPage, bool startClosed) { Parent = state; _pages.Add(initialPageId, initialPage); SelectedPageID = initialPageId; initialPage.Parent = this; SelectedPage.OnPageEnter(""); State = startClosed ? MenuUIState.Closed : MenuUIState.Open; _alpha = new TweenedDouble(state.Game, startClosed ? 0 : 1); Area = new TweenedVector2(state.Game, startClosed ? new Vector2(RecalculateArea(SelectedPageID).X, 7 * 2) : RecalculateArea(SelectedPageID)); _pageTransition = new TweenedDouble(state.Game, 0); }