/// <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(); } }
/// <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); }
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)); }
/// <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(); } } }
/// <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); }
/// <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))); }
/// <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; }