Add setting for changing mod select hotkey style

This commit is contained in:
Bartłomiej Dach 2022-06-21 13:03:46 +02:00
parent 73124d2b1f
commit 5abd8a07d2
No known key found for this signature in database
GPG Key ID: BCECCD4FA41F6497
4 changed files with 42 additions and 0 deletions

View File

@ -20,6 +20,7 @@
using osu.Game.Input.Bindings; using osu.Game.Input.Bindings;
using osu.Game.Localisation; using osu.Game.Localisation;
using osu.Game.Overlays; using osu.Game.Overlays;
using osu.Game.Overlays.Mods.Input;
using osu.Game.Rulesets.Scoring; using osu.Game.Rulesets.Scoring;
using osu.Game.Screens.Select; using osu.Game.Screens.Select;
using osu.Game.Screens.Select.Filter; using osu.Game.Screens.Select.Filter;
@ -47,6 +48,7 @@ protected override void InitialiseDefaults()
SetDefault(OsuSetting.SongSelectSortingMode, SortMode.Title); SetDefault(OsuSetting.SongSelectSortingMode, SortMode.Title);
SetDefault(OsuSetting.RandomSelectAlgorithm, RandomSelectAlgorithm.RandomPermutation); SetDefault(OsuSetting.RandomSelectAlgorithm, RandomSelectAlgorithm.RandomPermutation);
SetDefault(OsuSetting.ModSelectHotkeyStyle, ModSelectHotkeyStyle.Sequential);
SetDefault(OsuSetting.ChatDisplayHeight, ChatOverlay.DEFAULT_HEIGHT, 0.2f, 1f); SetDefault(OsuSetting.ChatDisplayHeight, ChatOverlay.DEFAULT_HEIGHT, 0.2f, 1f);
@ -324,6 +326,7 @@ public enum OsuSetting
SongSelectGroupingMode, SongSelectGroupingMode,
SongSelectSortingMode, SongSelectSortingMode,
RandomSelectAlgorithm, RandomSelectAlgorithm,
ModSelectHotkeyStyle,
ShowFpsDisplay, ShowFpsDisplay,
ChatDisplayHeight, ChatDisplayHeight,
BeatmapListingCardSize, BeatmapListingCardSize,

View File

@ -106,6 +106,11 @@ public static class UserInterfaceStrings
/// </summary> /// </summary>
public static LocalisableString RandomSelectionAlgorithm => new TranslatableString(getKey(@"random_selection_algorithm"), @"Random selection algorithm"); public static LocalisableString RandomSelectionAlgorithm => new TranslatableString(getKey(@"random_selection_algorithm"), @"Random selection algorithm");
/// <summary>
/// "Mod select hotkey style"
/// </summary>
public static LocalisableString ModSelectHotkeyStyle => new TranslatableString(getKey(@"mod_select_hotkey_style"), @"Mod select hotkey style");
/// <summary> /// <summary>
/// "no limit" /// "no limit"
/// </summary> /// </summary>

View File

@ -0,0 +1,27 @@
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
using osu.Game.Rulesets.Mods;
namespace osu.Game.Overlays.Mods.Input
{
/// <summary>
/// The style of hotkey handling to use on the mod select screen.
/// </summary>
public enum ModSelectHotkeyStyle
{
/// <summary>
/// Each letter row on the keyboard controls one of the three first <see cref="ModColumn"/>s.
/// Individual letters in a row trigger the mods in a sequential fashion.
/// Uses <see cref="SequentialModHotkeyHandler"/>.
/// </summary>
Sequential,
/// <summary>
/// Matches keybindings from stable 1:1.
/// One keybinding can toggle between what used to be <see cref="MultiMod"/>s on stable,
/// and some mods in a column may not have any hotkeys at all.
/// </summary>
Classic
}
}

View File

@ -11,6 +11,7 @@
using osu.Game.Configuration; using osu.Game.Configuration;
using osu.Game.Graphics.UserInterface; using osu.Game.Graphics.UserInterface;
using osu.Game.Localisation; using osu.Game.Localisation;
using osu.Game.Overlays.Mods.Input;
namespace osu.Game.Overlays.Settings.Sections.UserInterface namespace osu.Game.Overlays.Settings.Sections.UserInterface
{ {
@ -61,6 +62,12 @@ private void load(OsuConfigManager config)
{ {
LabelText = UserInterfaceStrings.RandomSelectionAlgorithm, LabelText = UserInterfaceStrings.RandomSelectionAlgorithm,
Current = config.GetBindable<RandomSelectAlgorithm>(OsuSetting.RandomSelectAlgorithm), Current = config.GetBindable<RandomSelectAlgorithm>(OsuSetting.RandomSelectAlgorithm),
},
new SettingsEnumDropdown<ModSelectHotkeyStyle>
{
LabelText = UserInterfaceStrings.ModSelectHotkeyStyle,
Current = config.GetBindable<ModSelectHotkeyStyle>(OsuSetting.ModSelectHotkeyStyle),
ClassicDefault = ModSelectHotkeyStyle.Classic
} }
}; };
} }