Exemplo n.º 1
0
 public void Awake()
 {
     if (Instance == null)
     {
         Instance = this;
         SceneManager.activeSceneChanged += SceneManagerOnActiveSceneChanged;
         DontDestroyOnLoad(gameObject);
     }
     else
     {
         Destroy(this);
     }
 }
Exemplo n.º 2
0
        public static void CreateSettingsUI()
        {
            var subMenu = SettingsUI.CreateSubMenu("Progress Counter");

            //Time Left Bool
            {
                var timeLeft = subMenu.AddBool("Time Left");

                timeLeft.GetValue = () => Plugin.progressTimeLeft;

                timeLeft.SetValue = (bool value) =>
                {
                    Plugin.progressTimeLeft = value;
                    ModPrefs.SetBool("BeatSaberProgressCounter", "progressTimeLeft", Plugin.progressTimeLeft);
                };
            }


            //Decimal Precision
            {
                int[] precisionValues = { 1, 2, 3, 4 };
                var   precisionMenu   = subMenu.AddListSetting <DecimalSettingsViewController>("Decimal Precision");
                precisionMenu.values = precisionValues.ToList();

                precisionMenu.GetValue = () => Plugin.progressCounterDecimalPrecision;

                precisionMenu.SetValue = (int value) =>
                {
                    Plugin.progressCounterDecimalPrecision = (int)value;

                    ModPrefs.SetFloat("BeatSaberProgressCounter", "progressCounterDecimalPrecision", value);
                };

                precisionMenu.GetTextForValue = (int value) => value + " Place" + ((value == 1) ? "" : "s");
            }


            //Timer Position Preset
            {
                var timerPositions = new List <Tuple <Vector3, string> >
                {
                    { Plugin.progressCounterPosition, "Current" },
                    { new Vector3(.25f, -2.0f, 7.5f), "Default" },
                    { new Vector3(.25f, 3.4f, 7.5f), "Top" },
                    { new Vector3(-3.0f, 3.4f, 7f), "Top Left" },
                    { new Vector3(3.5f, 3.4f, 7f), "Top Right" },
                    { new Vector3(-3.0f, -1.75f, 7f), "Bottom Left" },
                    { new Vector3(3.5f, -1.6f, 7f), "Bottom Right" },
                };

                var timerPositionMenu = subMenu.AddListSetting <PositionSettingsViewController>("Timer Position");
                timerPositionMenu.values = timerPositions;

                timerPositionMenu.GetValue        = () => timerPositions[0];
                timerPositionMenu.GetTextForValue = (value) => value.Item2;
                timerPositionMenu.SetValue        = (v) =>
                {
                    Plugin.progressCounterPosition = v.Item1;
                    ModPrefs.SetString("BeatSaberProgressCounter", "progressPosition",
                                       FormattableString.Invariant(
                                           $"{Plugin.progressCounterPosition.x:0.00},{Plugin.progressCounterPosition.y:0.00},{Plugin.progressCounterPosition.z:0.00}"));
                };
            }


            // Score Counter Position Preset
            {
                var scorePositions = new List <Tuple <Vector3, string> >
                {
                    { Plugin.scoreCounterPosition, "Current" },
                    { new Vector3(3.25f, 0.5f, 7.0f), "Default" },
                    { new Vector3(-3.25f, -0.3f, 7.0f), "Left" },
                };

                var scorePositionPresetMenu = subMenu.AddListSetting <PositionSettingsViewController>("Score Counter Position");
                scorePositionPresetMenu.values = scorePositions;

                scorePositionPresetMenu.GetValue        = () => scorePositions[0];
                scorePositionPresetMenu.GetTextForValue = (value) => value.Item2;
                scorePositionPresetMenu.SetValue        = (v) =>
                {
                    Plugin.scoreCounterPosition = v.Item1;
                    ModPrefs.SetString("BeatSaberProgressCounter", "scorePosition",
                                       FormattableString.Invariant(
                                           $"{Plugin.scoreCounterPosition.x:0.00},{Plugin.scoreCounterPosition.y:0.00},{Plugin.scoreCounterPosition.z:0.00}"));
                };
            }


            //Score Counter Toggle
            {
                var scoreCounterToggle = subMenu.AddBool("Enable Score Counter");

                scoreCounterToggle.GetValue = () => Plugin.scoreCounterEnabled;

                scoreCounterToggle.SetValue = (bool value) =>
                {
                    Plugin.scoreCounterEnabled = value;
                    ModPrefs.SetBool("BeatSaberProgressCounter", "scoreCounterEnabled", Plugin.scoreCounterEnabled);
                };
            }


            //Personal Best Tracker Toggle
            {
                var pbTrackerToggle = subMenu.AddBool("Enable Personal Best Tracker");

                pbTrackerToggle.GetValue = () => Plugin.pbTrackerEnabled;

                pbTrackerToggle.SetValue = (bool value) =>
                {
                    Plugin.pbTrackerEnabled = value;
                    ModPrefs.SetBool("BeatSaberProgressCounter", "scoreCounterEnabled", Plugin.pbTrackerEnabled);
                };
            }
        }