Exemplo n.º 1
0
        /// <summary>
        /// Event called from dropdown context when a menu iten has been selected.
        /// </summary>
        private void OnDropdownSelection(DropdownData data)
        {
            if (mapsetForDropdown == null)
            {
                return;
            }

            int action = (int)data.ExtraData;

            switch (action)
            {
            case SongDeleteAction:
                bool   preferUnicode = PreferUnicode.Value;
                string artist        = mapsetForDropdown.Metadata.GetArtist(preferUnicode);
                string title         = mapsetForDropdown.Metadata.GetTitle(preferUnicode);
                // Confirm with the user first.
                var dialogModel = OverlayNavigator.Show <DialogOverlay>().Model;
                dialogModel.SetMessage($"Are you sure you want to delete this mapset?\n{artist} - {title}");
                dialogModel.AddConfirmCancel(
                    onConfirm: () => MapManager.DeleteMapset(mapsetForDropdown)
                    );
                break;

            case SongOffsetAction:
                var offsetsModel = OverlayNavigator.Show <OffsetsOverlay>().Model;
                offsetsModel.SetMap(mapsetForDropdown);
                break;
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// Navigates away toward game screen.
 /// </summary>
 public void NavigateToGame()
 {
     ScreenNavigator.Hide <PrepareScreen>();
     OverlayNavigator.Show <GameLoadOverlay>().Model.StartLoad(new GameParameter()
     {
         Map = SelectedMap.Value,
     });
 }
Exemplo n.º 3
0
        /// <summary>
        /// Shows the dialog overlay.
        /// </summary>
        private void ShowDialogOverlay()
        {
            var overlay = OverlayNavigator.Show <DialogOverlay>();

            // Hide the pause overlay when the dialog closes.
            overlay.OnHide += OnDialogOverlayHide;

            dialogModel = overlay.Model;
        }
Exemplo n.º 4
0
        protected override void OnPreHide()
        {
            base.OnPreHide();

            Metronome.OnBeat -= OnMetronomeBeat;
            Metronome.BeatLength.OnNewValue -= OnBeatLengthChange;

            OverlayNavigator.Hide <HomeMenuOverlay>();
        }
Exemplo n.º 5
0
        /// <summary>
        /// Hides the current menu overlay.
        /// </summary>
        private void HideMenu()
        {
            var menu = currentOverlay.Value;

            if (menu == null)
            {
                return;
            }

            ReleaseMenu();
            OverlayNavigator.Hide(menu);
        }
Exemplo n.º 6
0
        protected override void OnPreShow()
        {
            base.OnPreShow();

            isMenuBarActive.Value = OverlayNavigator.IsActive(typeof(MenuBarOverlay));
            isGameScreen.Value    = ScreenNavigator.CurrentScreen.Value is GameScreen;

            OverlayNavigator.OnShowView += OnOverlayShow;
            OverlayNavigator.OnHideView += OnOverlayHide;

            ScreenNavigator.OnShowView += OnScreenShow;

            NotificationBox.OnNewNotification += OnNotification;
        }
Exemplo n.º 7
0
        /// <summary>
        /// Event called on selecting offset option.
        /// </summary>
        private void OnOffsetOption()
        {
            // Show the offset overlay.
            OffsetsOverlay overlay = OverlayNavigator.Show <OffsetsOverlay>();

            // Bind temporary hide event listener to overlay.
            EventBinder <Action> closeBinder = new EventBinder <Action>(
                e => overlay.OnHide += e,
                e => overlay.OnHide -= e
                );

            closeBinder.IsOneTime = true;

            // Show pause overlay once the offset overlay has been closed.
            closeBinder.SetHandler(() => OverlayNavigator.Show <PauseOverlay>());
        }
Exemplo n.º 8
0
        /// <summary>
        /// Shows the home menu overlay.
        /// </summary>
        public void ShowHomeMenuOverlay()
        {
            if (isHomeMenuShown.Value)
            {
                return;
            }

            var homeMenuOverlay = OverlayNavigator.Show <HomeMenuOverlay>();

            if (homeMenuOverlay != null)
            {
                isHomeMenuShown.Value = true;
                BgOverlay.Color       = Color.gray;

                homeMenuOverlay.OnHide += OnHomeMenuHide;
            }
        }
Exemplo n.º 9
0
        /// <summary>
        /// Returns the appropriate menu overlay for the specified type.
        /// </summary>
        private INavigationView GetMenuFor(MenuType type)
        {
            switch (type)
            {
            case MenuType.Music: return(OverlayNavigator.Show <MusicMenuOverlay>());

            case MenuType.Notification: return(OverlayNavigator.Show <NotificationMenuOverlay>());

            case MenuType.Profile: return(OverlayNavigator.Show <ProfileMenuOverlay>());

            case MenuType.Mode: return(OverlayNavigator.Show <ModeMenuOverlay>());

            case MenuType.Quick: return(OverlayNavigator.Show <QuickMenuOverlay>());

            case MenuType.Settings: return(OverlayNavigator.Show <SettingsMenuOverlay>());
            }
            return(null);
        }
Exemplo n.º 10
0
        public void InvokePause()
        {
            if (IsPaused)
            {
                return;
            }
            if (GameProcessor.CurrentTime < 0f)
            {
                return;
            }
            if (MusicController.IsPlaying)
            {
                MusicController.Pause();
            }

            var pauseOverlay = OverlayNavigator.Show <PauseOverlay>();

            IsPaused = true;
            OnPause?.Invoke();
        }
Exemplo n.º 11
0
        /// <summary>
        /// Shows the map actions dialog overlay.
        /// </summary>
        public void ShowMapActions(IOriginalMap map)
        {
            if (map == null)
            {
                Logger.LogWarning("Attempted to show map actions for a null map.");
                return;
            }

            var dialogModel = OverlayNavigator.Show <DialogOverlay>().Model;

            dialogModel.SetMessage($"Select an action for the version ({map.Detail.Version})");
            dialogModel.AddOption(new DialogOption()
            {
                Callback = () => OnMapActionDelete(map),
                Label    = "Delete",
                Color    = ColorPreset.Warning
            });
            dialogModel.AddOption(new DialogOption()
            {
                Label = "Cancel",
                Color = ColorPreset.Negative
            });
        }
Exemplo n.º 12
0
 /// <summary>
 /// Closes the dialog.
 /// </summary>
 public void CloseDialog()
 {
     OverlayNavigator.Hide <DialogOverlay>();
 }
Exemplo n.º 13
0
 /// <summary>
 /// Shows the offset overlay for current selection.
 /// </summary>
 public void ShowOffset() => OverlayNavigator.Show <OffsetsOverlay>();
Exemplo n.º 14
0
 /// <summary>
 /// Closes the pause overlay.
 /// </summary>
 private void CloseOverlay()
 {
     OverlayNavigator.Hide <PauseOverlay>();
 }
 private IEnumerator AssignSettingsData()
 {
     overlay = OverlayNavigator.Show<SettingsMenuOverlay>();
     overlay.Model.SetSettingsData(settingsData);
     yield break;
 }
Exemplo n.º 16
0
 /// <summary>
 /// Attempts to hide the home menu overlay.
 /// </summary>
 public void HideMenu() => OverlayNavigator.Hide <HomeMenuOverlay>();
Exemplo n.º 17
0
 /// <summary>
 /// Closes the quick menu overlay.
 /// </summary>
 private void CloseQuickMenu() => OverlayNavigator.Hide <QuickMenuOverlay>();
Exemplo n.º 18
0
 /// <summary>
 /// Navigates away to the next view.
 /// </summary>
 public void NavigateToNext()
 {
     OverlayNavigator.Show <SystemOverlay>();
     OverlayNavigator.Show <BackgroundOverlay>();
     ScreenNavigator.Show <HomeScreen>();
 }
Exemplo n.º 19
0
 /// <summary>
 /// Navigates to the next specified screen.
 /// </summary>
 private void NavigateToScreen <T>()
     where T : MonoBehaviour, INavigationView
 {
     ScreenNavigator.Show <T>();
     OverlayNavigator.Hide <GameLoadOverlay>();
 }
Exemplo n.º 20
0
 /// <summary>
 /// Hides the offsets overlay.
 /// </summary>
 public void CloseOffsets()
 {
     OverlayNavigator.Hide <OffsetsOverlay>();
 }