public static void EnsureOpened(bool fadeIn) { if (!isClosed) { return; } isClosed = false; if (fadeIn) { if (LoadingSplashScreenManager.Instance.CurrentState is LoadingSplashScreenState.Shown or LoadingSplashScreenState.Showing) { // no fade-in required fadeIn = false; } } var menu = new MenuRespawn(); menu.IsFadeIn = fadeIn; instance = menu; Api.Client.UI.LayoutRootChildren.Add(instance); ClientTimersSystem.AddAction( delaySeconds: fadeIn ? FadeInDelaySeconds : 0, action: () => { if (isClosed) { if (ReferenceEquals(instance, menu)) { instance = null; Api.Client.UI.LayoutRootChildren.Remove(instance); } return; } instance.Open(); }); }
private void CloseMenu() { this.storyboardFadeIn?.Stop(this); AnimationHelper.CreateStoryboard( this, durationSeconds: 0.667, from: this.Opacity, to: 0, propertyName: OpacityProperty.Name, onCompleted: this.BackgroundFadeOutCompleted) .Begin(this); if (instance == this) { instance = null; } }
public static void EnsureOpened() { if (!isClosed) { return; } isClosed = false; var menu = new MenuRespawn(); instance = menu; Api.Client.UI.LayoutRootChildren.Add(instance); var loadingSplashScreenState = LoadingSplashScreenManager.Instance.CurrentState; var delay = loadingSplashScreenState == LoadingSplashScreenState.Shown || loadingSplashScreenState == LoadingSplashScreenState.Showing ? 0 : 2; ClientTimersSystem.AddAction( delaySeconds: delay, action: () => { if (isClosed) { if (ReferenceEquals(instance, menu)) { instance = null; Api.Client.UI.LayoutRootChildren.Remove(instance); } return; } instance.Open(); }); }