コード例 #1
0
        public static void GetPanelNames(GameplaySettingsPanels panel, ref string pageName, ref string panelName)
        {
            switch (panel)
            {
            case GameplaySettingsPanels.ModifiersRight:
                pageName  = "GameplayModifiers";
                panelName = "RightColumn";
                break;

            case GameplaySettingsPanels.ModifiersLeft:
                pageName  = "GameplayModifiers";
                panelName = "LeftColumn";
                break;

            case GameplaySettingsPanels.PlayerSettingsRight:
                pageName  = "PlayerSettings";
                panelName = "RightPanel";
                break;

            case GameplaySettingsPanels.PlayerSettingsLeft:
                pageName  = "PlayerSettings";
                panelName = "LeftPanel";
                break;
            }
        }
コード例 #2
0
 public SubmenuOption(GameplaySettingsPanels panel, string optionName, string hintText, Sprite optionIcon) : base(panel, optionName, hintText, optionIcon, 0f)
 {
     this.optionName = optionName;
     this.hintText   = hintText;
     this.optionIcon = optionIcon;
     GetPanelNames(panel, ref pageName, ref panelName);
 }
コード例 #3
0
        public static void EnterSubmenu(GameplaySettingsPanels panel, string menuName)
        {
            lock (Instance[panel])
            {
                var instance = Instance[panel];
                if (instance._customMenus.ContainsKey(menuName))
                {
                    instance._currentSubmenu = menuName;
                    instance._listIndex      = 0;
                    instance.ChangePage(0, instance._panelContainer, instance._defaultOptions[0], instance._defaultOptions[1], instance._defaultOptions[2], instance._defaultOptions[3]);

                    if (instance._listIndex <= 0)
                    {
                        instance._pageUpButton.gameObject.SetActive(false);
                    }
                    else
                    {
                        instance._pageUpButton.gameObject.SetActive(true);
                    }

                    int index = instance._listIndex * 4 + (instance._currentSubmenu == "MainMenu" ? -4 : 0);
                    if (index + 4 < instance._customMenus[instance._currentSubmenu].Count)
                    {
                        instance._pageDownButton.gameObject.SetActive(true);
                    }
                    else
                    {
                        instance._pageDownButton.gameObject.SetActive(false);
                    }
                }
            }
        }
コード例 #4
0
        public static void GetOptionTransforms(GameplaySettingsPanels panel, RectTransform container, ref Transform option1, ref Transform option2, ref Transform option3, ref Transform option4)
        {
            switch (panel)
            {
            case GameplaySettingsPanels.ModifiersRight:
                option1 = container.Find("NoFail");
                option2 = container.Find("NoObstacles");
                option3 = container.Find("NoBombs");
                option4 = container.Find("SlowerSong");
                break;

            case GameplaySettingsPanels.ModifiersLeft:
                option1 = container.Find("InstaFail");
                option2 = container.Find("BatteryEnergy");
                option3 = container.Find("DisappearingArrows");
                option4 = container.Find("FasterSong");
                break;

            case GameplaySettingsPanels.PlayerSettingsRight:
                option1 = container.Find("NoTextsAndHUDs");
                option2 = container.Find("AdvancedHUD");
                option3 = container.Find("SoundFX");
                option4 = container.Find("ReduceDebris");
                break;

            case GameplaySettingsPanels.PlayerSettingsLeft:
                option1 = container.Find("LeftHanded");
                option2 = container.Find("SwapColors");
                option3 = container.Find("StaticLights");
                option4 = container.Find("PlayerHeight");
                break;
            }
        }
コード例 #5
0
 public ToggleOption(GameplaySettingsPanels panel, string optionName, string hintText, Sprite optionIcon, float multiplier)
 {
     this.optionName = optionName;
     this.hintText   = hintText;
     this.optionIcon = optionIcon;
     this.multiplier = multiplier;
     GetPanelNames(panel, ref pageName, ref panelName);
 }
コード例 #6
0
        private static void CreateInstance(GameplaySettingsPanels panel)
        {
            if (_instances.ContainsKey(panel) && _instances[panel] != null)
            {
                return;
            }

            _instances[panel]       = new GameObject("GameplaySettingsUI").AddComponent <GameplaySettingsUI>();
            _instances[panel].panel = panel;
        }
コード例 #7
0
 private static void CreateBackButton(GameplaySettingsPanels panel, string submenuName)
 {
     if (submenuName == "MainMenu")
     {
         return;
     }
     if (_backButton == null)
     {
         _backButton = UIUtilities.LoadSpriteFromResources("BeatSaberCustomUI.Resources.Back Button.png");
     }
     CreateSubmenuOption(panel, "Back", submenuName, "!PREVIOUSMENU!", String.Empty, _backButton);
 }
コード例 #8
0
        public static ToggleOption CreateToggleOption(GameplaySettingsPanels panel, string optionName, string submenuName, string hintText = "", Sprite optionIcon = null, float multiplier = 0f)
        {
            lock (Instance[panel])
            {
                ToggleOption ret = new ToggleOption(panel, optionName, hintText, optionIcon, multiplier);
                if (!Instance[panel]._customMenus.ContainsKey(submenuName))
                {
                    Instance[panel]._customMenus[submenuName] = new List <GameOption>();
                }

                Instance[panel]._customMenus[submenuName].Add(ret);
                return(ret);
            }
        }
コード例 #9
0
        public static MultiSelectOption CreateListOption(GameplaySettingsPanels panel, string optionName, string submenuName, string hintText = "")
        {
            lock (Instance[panel])
            {
                MultiSelectOption ret = new MultiSelectOption(panel, optionName, hintText);
                if (!Instance[panel]._customMenus.ContainsKey(submenuName))
                {
                    Instance[panel]._customMenus[submenuName] = new List <GameOption>();
                }

                Instance[panel]._customMenus[submenuName].Add(ret);
                return(ret);
            }
        }
コード例 #10
0
        public static void GetNumDefaultOptionsForPanel(GameplaySettingsPanels panel, ref int numDefaultOptions)
        {
            switch (panel)
            {
            case GameplaySettingsPanels.ModifiersRight:
            case GameplaySettingsPanels.ModifiersLeft:
                numDefaultOptions = 5;
                break;

            case GameplaySettingsPanels.PlayerSettingsRight:
            case GameplaySettingsPanels.PlayerSettingsLeft:
                numDefaultOptions = 4;
                break;
            }
        }
コード例 #11
0
        public static ToggleOption CreateSubmenuOption(GameplaySettingsPanels panel, string optionName, string submenuName, string submenuToEnter, string hintText = "", Sprite optionIcon = null)
        {
            lock (Instance[panel])
            {
                SubmenuOption ret = new SubmenuOption(panel, optionName, hintText, optionIcon);
                if (!Instance[panel]._customMenus.ContainsKey(submenuName))
                {
                    Instance[panel]._customMenus[submenuName] = new List <GameOption>();
                }

                ret.OnToggle += (e) => GameplaySettingsUI.EnterSubmenu(panel, submenuToEnter);

                Instance[panel]._customMenus[submenuName].Add(ret);
                return(ret);
            }
        }
コード例 #12
0
        public static void EnterSubmenu(GameplaySettingsPanels panel, string menuName)
        {
            lock (Instance[panel])
            {
                var instance = Instance[panel];
                if (menuName == "!PREVIOUSMENU!")
                {
                    menuName = instance._customMenus[instance._currentSubmenu]._previousMenu;
                }
                else
                {
                    instance._customMenus[menuName]._previousMenu = instance._currentSubmenu;
                }

                if (instance._customMenus.ContainsKey(menuName))
                {
                    instance._currentSubmenu = menuName;
                    instance._pageIndex      = 0;
                    instance.ChangePage(0, instance._panelContainer, instance._defaultOptions[0], instance._defaultOptions[1], instance._defaultOptions[2], instance._defaultOptions[3]);
                }
            }
        }
コード例 #13
0
 public static ToggleOption CreateToggleOption(GameplaySettingsPanels panel, string optionName, string hintText = "", Sprite optionIcon = null, float multiplier = 0f)
 {
     return(CreateToggleOption(panel, optionName, "MainMenu", hintText, optionIcon, multiplier));
 }
コード例 #14
0
 public static MultiSelectOption CreateListOption(GameplaySettingsPanels panel, string optionName, string hintText = "")
 {
     return(CreateListOption(panel, optionName, "MainMenu", hintText));
 }
コード例 #15
0
 public MultiSelectOption(GameplaySettingsPanels panel, string optionName, string hintText)
 {
     this.optionName = optionName;
     this.hintText   = hintText;
     GetPanelNames(panel, ref pageName, ref panelName);
 }