コード例 #1
0
        /// <inheritdoc/>
        public override void OnSettingsGUI()
        {
            bool newVal;

            newVal = GUILayout.Toggle(
                Settings.HideEverything,
                TweakStrings.Get(TranslationKeys.HideUiElements.EVERYTHING));
            if (newVal != Settings.HideEverything)
            {
                Settings.HideEverything = newVal;
                ShowOrHideElements();
            }
            if (Settings.HideEverything)
            {
                return;
            }

            GUILayout.Space(8f);

            Settings.HideJudgment =
                GUILayout.Toggle(
                    Settings.HideJudgment,
                    TweakStrings.Get(
                        TranslationKeys.HideUiElements.JUDGE_TEXT,
                        RDString.Get("HitMargin." + HitMargin.Perfect),
                        RDString.Get("HitMargin." + HitMargin.EarlyPerfect)));

            Settings.HideMissIndicators =
                GUILayout.Toggle(
                    Settings.HideMissIndicators,
                    TweakStrings.Get(TranslationKeys.HideUiElements.MISSES));

            newVal = GUILayout.Toggle(
                Settings.HideTitle, TweakStrings.Get(TranslationKeys.HideUiElements.SONG_TITLE));
            if (newVal != Settings.HideTitle)
            {
                Settings.HideTitle = newVal;
                ShowOrHideElements();
            }

            newVal = GUILayout.Toggle(
                Settings.HideOtto, TweakStrings.Get(TranslationKeys.HideUiElements.AUTO));
            if (newVal != Settings.HideOtto)
            {
                Settings.HideOtto = newVal;
                ShowOrHideElements();
            }

            newVal = GUILayout.Toggle(
                Settings.HideBeta, TweakStrings.Get(TranslationKeys.HideUiElements.BETA_BUILD));
            if (newVal != Settings.HideBeta)
            {
                Settings.HideBeta = newVal;
                ShowOrHideElements();
            }
        }
コード例 #2
0
        /// <inheritdoc/>
        public override void OnSettingsGUI()
        {
            for (int i = 0; i < TOTAL_JUDGMENTS; i++)
            {
                Settings.RestrictJudgments[i] = GUILayout.Toggle(
                    Settings.RestrictJudgments[i],
                    TweakStrings.Get(
                        TranslationKeys.RestrictJudgments.RESTRICT,
                        RDString.Get("HitMargin." + (HitMargin)i)));
            }

            GUILayout.Label(TweakStrings.Get(TranslationKeys.RestrictJudgments.CUSTOM_DEATH));
            Settings.CustomDeathString = GUILayout.TextField(Settings.CustomDeathString);
        }
コード例 #3
0
        private void DrawKeyRegisterSettingsGUI()
        {
            // List of registered keys
            GUILayout.Label(TweakStrings.Get(TranslationKeys.KeyLimiter.REGISTERED_KEYS));
            GUILayout.BeginHorizontal();
            GUILayout.Space(20f);
            GUILayout.BeginVertical();
            GUILayout.Space(8f);
            GUILayout.EndVertical();
            foreach (KeyCode code in Settings.ActiveKeys)
            {
                GUILayout.Label(code.ToString());
                GUILayout.Space(8f);
            }
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            GUILayout.Space(12f);

            // Record keys toggle
            GUILayout.BeginHorizontal();
            if (Settings.IsListening)
            {
                if (GUILayout.Button(TweakStrings.Get(TranslationKeys.KeyLimiter.DONE)))
                {
                    Settings.IsListening = false;
                }
                GUILayout.Label(TweakStrings.Get(TranslationKeys.KeyLimiter.PRESS_KEY_REGISTER));
            }
            else
            {
                if (GUILayout.Button(TweakStrings.Get(TranslationKeys.KeyLimiter.CHANGE_KEYS)))
                {
                    Settings.IsListening = true;
                }
            }
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();

            // Limit CLS toggle
            Settings.LimitKeyOnCLS =
                GUILayout.Toggle(
                    Settings.LimitKeyOnCLS, TweakStrings.Get(TranslationKeys.KeyLimiter.LIMIT_CLS));

            // Limit main menu toggle
            Settings.LimitKeyOnMainScreen =
                GUILayout.Toggle(
                    Settings.LimitKeyOnMainScreen,
                    TweakStrings.Get(TranslationKeys.KeyLimiter.LIMIT_MAIN_MENU));
        }
コード例 #4
0
        /// <inheritdoc/>
        public override void OnSettingsGUI()
        {
            // Glitch flip
            Settings.DisableGlitchFlip =
                GUILayout.Toggle(
                    Settings.DisableGlitchFlip,
                    TweakStrings.Get(
                        TranslationKeys.Miscellaneous.GLITCH_FLIP,
                        RDString.GetEnumValue(Filter.Glitch)));

            // Editor zoom
            Settings.DisableEditorZoom =
                GUILayout.Toggle(
                    Settings.DisableEditorZoom,
                    TweakStrings.Get(TranslationKeys.Miscellaneous.EDITOR_ZOOM));

            // Hitsound volume
            if (Settings.SetHitsoundVolume =
                    GUILayout.Toggle(
                        Settings.SetHitsoundVolume,
                        TweakStrings.Get(TranslationKeys.Miscellaneous.SET_HITSOUND_VOLUME)))
            {
                bool valueChanged = Settings.HitsoundVolumeScale * 1 == (
                    Settings.HitsoundVolumeScale =
                        Mathf.Min(
                            MoreGUILayout.NamedSlider(
                                TweakStrings.Get(TranslationKeys.Miscellaneous.CURRENT_HITSOUND_VOLUME),
                                Settings.HitsoundVolumeScale * 100,
                                0,
                                100.0001f,
                                200f,
                                roundNearest: 0.001f,
                                valueFormat: "{0:0.#}%") / 100, 1));
                if (valueChanged)
                {
                    Settings.UpdateVolume();
                }
            }
        }
コード例 #5
0
        /// <inheritdoc/>
        public override void OnSettingsGUI()
        {
            // Filter
            if (Settings.DisableFilter =
                    GUILayout.Toggle(
                        Settings.DisableFilter,
                        TweakStrings.Get(
                            TranslationKeys.DisableEffects.FILTER,
                            RDString.GetEnumValue(Filter.Grayscale),
                            RDString.GetEnumValue(Filter.Arcade))))
            {
                /*
                 * // Enable specific filter
                 * if (GUILayout.Button(TweakStrings.Get("")))
                 * {
                 *  //
                 * }
                 *
                 * // Disable specific filter
                 * if (GUILayout.Button(TweakStrings.Get("")))
                 * {
                 *  //
                 * }
                 */
            }

            // Bloom
            Settings.DisableBloom =
                GUILayout.Toggle(
                    Settings.DisableBloom,
                    TweakStrings.Get(TranslationKeys.DisableEffects.BLOOM));

            // Flash
            Settings.DisableFlash =
                GUILayout.Toggle(
                    Settings.DisableFlash,
                    TweakStrings.Get(TranslationKeys.DisableEffects.FLASH));

            // Hall of mirrors
            Settings.DisableHallOfMirrors =
                GUILayout.Toggle(
                    Settings.DisableHallOfMirrors,
                    TweakStrings.Get(
                        TranslationKeys.DisableEffects.HALL_OF_MIRRORS,
                        RDString.Get("editor." + LevelEventType.HallOfMirrors)));

            // Screen shake
            Settings.DisableScreenShake =
                GUILayout.Toggle(
                    Settings.DisableScreenShake,
                    TweakStrings.Get(TranslationKeys.DisableEffects.SCREEN_SHAKE));

            // Move track
            string trackMaxFormat =
                Settings.MoveTrackMax > DisableEffectsSettings.MOVE_TRACK_UPPER_BOUND
                    ? TweakStrings.Get(TranslationKeys.DisableEffects.TILE_MOVEMENT_UNLIMITED)
                    : "{0}";
            float newTrackMax =
                MoreGUILayout.NamedSlider(
                    TweakStrings.Get(TranslationKeys.DisableEffects.TILE_MOVEMENT_MAX),
                    Settings.MoveTrackMax,
                    5,
                    DisableEffectsSettings.MOVE_TRACK_UPPER_BOUND + 5,
                    300f,
                    roundNearest: 5,
                    valueFormat: trackMaxFormat);

            Settings.MoveTrackMax = Mathf.RoundToInt(newTrackMax);
        }
コード例 #6
0
        /// <inheritdoc/>
        public override void OnSettingsGUI()
        {
            Settings.ShowHitErrorMeter =
                GUILayout.Toggle(
                    Settings.ShowHitErrorMeter,
                    TweakStrings.Get(TranslationKeys.JudgmentVisuals.SHOW_HIT_ERROR_METER));

            if (Settings.ShowHitErrorMeter)
            {
                MoreGUILayout.BeginIndent();

                // Scale slider
                float newScale =
                    MoreGUILayout.NamedSlider(
                        TweakStrings.Get(TranslationKeys.JudgmentVisuals.ERROR_METER_SCALE),
                        Settings.ErrorMeterScale,
                        0.25f,
                        4f,
                        200f,
                        roundNearest: 0.125f,
                        valueFormat: "{0}x");
                if (newScale != Settings.ErrorMeterScale)
                {
                    Settings.ErrorMeterScale = newScale;
                    HitErrorMeter.Instance.UpdateLayout();
                }

                // X position slider
                float newX =
                    MoreGUILayout.NamedSlider(
                        TweakStrings.Get(TranslationKeys.JudgmentVisuals.ERROR_METER_X_POS),
                        Settings.ErrorMeterXPos,
                        0f,
                        1f,
                        300f,
                        roundNearest: 0.01f,
                        valueFormat: "{0:0.##}");
                if (newX != Settings.ErrorMeterXPos)
                {
                    Settings.ErrorMeterXPos = newX;
                    HitErrorMeter.Instance.UpdateLayout();
                }

                // Y position slider
                float newY =
                    MoreGUILayout.NamedSlider(
                        TweakStrings.Get(TranslationKeys.JudgmentVisuals.ERROR_METER_Y_POS),
                        Settings.ErrorMeterYPos,
                        0f,
                        1f,
                        300f,
                        roundNearest: 0.01f,
                        valueFormat: "{0:0.##}");
                if (newY != Settings.ErrorMeterYPos)
                {
                    Settings.ErrorMeterYPos = newY;
                    HitErrorMeter.Instance.UpdateLayout();
                }

                // Tick life slider
                Settings.ErrorMeterTickLife =
                    MoreGUILayout.NamedSlider(
                        TweakStrings.Get(TranslationKeys.JudgmentVisuals.ERROR_METER_TICK_LIFE),
                        Settings.ErrorMeterTickLife,
                        1f,
                        10f,
                        200f,
                        roundNearest: 1f,
                        valueFormat: TweakStrings.Get(
                            TranslationKeys.JudgmentVisuals.ERROR_METER_TICK_SECONDS));

                // Sensitivity slider
                GUILayout.BeginHorizontal();
                GUILayout.Label(
                    TweakStrings.Get(TranslationKeys.JudgmentVisuals.ERROR_METER_SENSITIVITY));
                GUILayout.Space(16f);
                GUILayout.Label(
                    TweakStrings.Get(TranslationKeys.JudgmentVisuals.ERROR_METER_MORE_STABLE));
                GUILayout.Space(8f);
                float newSens =
                    GUILayout.HorizontalSlider(
                        Settings.ErrorMeterSensitivity, 0.05f, 0.5f, GUILayout.Width(200f));
                newSens *= 20;
                newSens  = Mathf.Round(newSens);
                newSens /= 20;
                if (Settings.ErrorMeterSensitivity != newSens)
                {
                    Settings.ErrorMeterSensitivity = newSens;
                }
                GUILayout.Space(8f);
                GUILayout.Label(
                    TweakStrings.Get(TranslationKeys.JudgmentVisuals.ERROR_METER_LESS_STABLE));
                GUILayout.Space(8f);
                GUILayout.Label($"({Settings.ErrorMeterSensitivity})");
                GUILayout.FlexibleSpace();
                GUILayout.EndHorizontal();

                MoreGUILayout.EndIndent();
            }

            // Hide perfects
            Settings.HidePerfects =
                GUILayout.Toggle(
                    Settings.HidePerfects,
                    TweakStrings.Get(
                        TranslationKeys.JudgmentVisuals.HIDE_PERFECTS,
                        RDString.Get("HitMargin." + HitMargin.Perfect)));
        }
コード例 #7
0
        /// <summary>
        /// Handler for UMM's OnGUI event. Displays the language chooser and
        /// every tweak's settings GUI.
        /// </summary>
        /// <param name="modEntry">UMM's mod entry for AdofaiTweaks.</param>
        private static void OnGUI(UnityModManager.ModEntry modEntry)
        {
            // Set some default GUI settings for better layouts
            if (GlobalSettings.Language == LanguageEnum.KOREAN)
            {
                GUI.skin.button.font        = TweakAssets.KoreanNormalFont;
                GUI.skin.label.font         = TweakAssets.KoreanNormalFont;
                GUI.skin.textArea.font      = TweakAssets.KoreanNormalFont;
                GUI.skin.textField.font     = TweakAssets.KoreanNormalFont;
                GUI.skin.toggle.font        = TweakAssets.KoreanNormalFont;
                GUI.skin.button.fontSize    = 15;
                GUI.skin.label.fontSize     = 15;
                GUI.skin.textArea.fontSize  = 15;
                GUI.skin.textField.fontSize = 15;
                GUI.skin.toggle.fontSize    = 15;
            }
            GUI.skin.toggle = new GUIStyle(GUI.skin.toggle)
            {
                margin = new RectOffset(0, 4, 6, 6),
            };
            GUI.skin.label.wordWrap = false;

            GUILayout.Space(4);

            // Language chooser
            GUILayout.BeginHorizontal();
            GUILayout.Space(4);
            GUILayout.Label(
                TweakStrings.Get(TranslationKeys.Global.GLOBAL_LANGUAGE),
                new GUIStyle(GUI.skin.label)
            {
                fontStyle = GlobalSettings.Language == LanguageEnum.KOREAN
                        ? FontStyle.Normal
                        : FontStyle.Bold,
                font = GlobalSettings.Language == LanguageEnum.KOREAN
                        ? TweakAssets.KoreanBoldFont
                        : null,
            });
            foreach (LanguageEnum language in Enum.GetValues(typeof(LanguageEnum)))
            {
                string langString =
                    TweakStrings.GetForLanguage(TranslationKeys.Global.LANGUAGE_NAME, language);

                // Set special styles for selected and Korean language
                GUIStyle style = new GUIStyle(GUI.skin.button);
                if (language == GlobalSettings.Language)
                {
                    if (language == LanguageEnum.KOREAN)
                    {
                        style.font     = TweakAssets.KoreanBoldFont;
                        style.fontSize = 15;
                    }
                    else
                    {
                        style.fontStyle = FontStyle.Bold;
                    }
                }
                else if (language == LanguageEnum.KOREAN)
                {
                    style.font     = TweakAssets.KoreanNormalFont;
                    style.fontSize = 15;
                }

                bool click = GUILayout.Button(langString, style);
                if (click)
                {
                    GlobalSettings.Language = language;
                    foreach (TweakRunner runner in tweakRunners)
                    {
                        runner.OnLanguageChange();
                    }
                }
            }
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();

            // Show each tweak's GUI
            GUILayout.Space(4);
            foreach (TweakRunner runner in tweakRunners)
            {
                runner.OnGUI();
            }

            // Reset GUI settings to defaults
            GUI.skin.button.font        = null;
            GUI.skin.label.font         = null;
            GUI.skin.textArea.font      = null;
            GUI.skin.textField.font     = null;
            GUI.skin.toggle.font        = null;
            GUI.skin.button.fontSize    = 0;
            GUI.skin.label.fontSize     = 0;
            GUI.skin.textArea.fontSize  = 0;
            GUI.skin.textField.fontSize = 0;
            GUI.skin.toggle.fontSize    = 0;
        }