From ef72e7946327d1b99a8cb6937dc65630e9956fb2 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 13 May 2026 02:57:20 +0900 Subject: [PATCH] Add classic hotkey support for blinds / traceable (#37023) RFC. Not sure others will like this. --- osu.Game.Rulesets.Osu/Mods/OsuModBlinds.cs | 2 +- osu.Game.Rulesets.Osu/Mods/OsuModTraceable.cs | 2 +- .../Overlays/Mods/Input/ClassicModHotkeyHandler.cs | 4 ++-- osu.Game/Rulesets/Mods/ModBlinds.cs | 10 ++++++++++ osu.Game/Rulesets/Mods/ModTraceable.cs | 10 ++++++++++ 5 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 osu.Game/Rulesets/Mods/ModBlinds.cs create mode 100644 osu.Game/Rulesets/Mods/ModTraceable.cs diff --git a/osu.Game.Rulesets.Osu/Mods/OsuModBlinds.cs b/osu.Game.Rulesets.Osu/Mods/OsuModBlinds.cs index 97d76459c6..c65f804e4b 100644 --- a/osu.Game.Rulesets.Osu/Mods/OsuModBlinds.cs +++ b/osu.Game.Rulesets.Osu/Mods/OsuModBlinds.cs @@ -21,7 +21,7 @@ using osuTK.Graphics; namespace osu.Game.Rulesets.Osu.Mods { - public partial class OsuModBlinds : Mod, IApplicableToDrawableRuleset, IApplicableToHealthProcessor + public partial class OsuModBlinds : ModBlinds, IApplicableToDrawableRuleset, IApplicableToHealthProcessor { public override string Name => "Blinds"; public override LocalisableString Description => "Play with blinds on your screen."; diff --git a/osu.Game.Rulesets.Osu/Mods/OsuModTraceable.cs b/osu.Game.Rulesets.Osu/Mods/OsuModTraceable.cs index 6e9afb493d..702c527480 100644 --- a/osu.Game.Rulesets.Osu/Mods/OsuModTraceable.cs +++ b/osu.Game.Rulesets.Osu/Mods/OsuModTraceable.cs @@ -16,7 +16,7 @@ using osu.Game.Rulesets.Osu.Skinning.Default; namespace osu.Game.Rulesets.Osu.Mods { - public class OsuModTraceable : ModWithVisibilityAdjustment, IRequiresApproachCircles + public class OsuModTraceable : ModTraceable, IRequiresApproachCircles { public override string Name => "Traceable"; public override string Acronym => "TC"; diff --git a/osu.Game/Overlays/Mods/Input/ClassicModHotkeyHandler.cs b/osu.Game/Overlays/Mods/Input/ClassicModHotkeyHandler.cs index bc5914d41e..8cb9de1849 100644 --- a/osu.Game/Overlays/Mods/Input/ClassicModHotkeyHandler.cs +++ b/osu.Game/Overlays/Mods/Input/ClassicModHotkeyHandler.cs @@ -24,8 +24,8 @@ namespace osu.Game.Overlays.Mods.Input [Key.A] = new[] { typeof(ModHardRock) }, [Key.S] = new[] { typeof(ModSuddenDeath), typeof(ModPerfect) }, [Key.D] = new[] { typeof(ModDoubleTime), typeof(ModNightcore) }, - [Key.F] = new[] { typeof(ModHidden) }, - [Key.G] = new[] { typeof(ModFlashlight) }, + [Key.F] = new[] { typeof(ModHidden), typeof(ModTraceable) }, + [Key.G] = new[] { typeof(ModFlashlight), typeof(ModBlinds) }, [Key.Z] = new[] { typeof(ModRelax) }, [Key.V] = new[] { typeof(ModAutoplay), typeof(ModCinema) } }; diff --git a/osu.Game/Rulesets/Mods/ModBlinds.cs b/osu.Game/Rulesets/Mods/ModBlinds.cs new file mode 100644 index 0000000000..5721e10933 --- /dev/null +++ b/osu.Game/Rulesets/Mods/ModBlinds.cs @@ -0,0 +1,10 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +namespace osu.Game.Rulesets.Mods +{ + public abstract class ModBlinds : Mod + { + // Class only exists for classic hotkey support. + } +} diff --git a/osu.Game/Rulesets/Mods/ModTraceable.cs b/osu.Game/Rulesets/Mods/ModTraceable.cs new file mode 100644 index 0000000000..bab39e5efa --- /dev/null +++ b/osu.Game/Rulesets/Mods/ModTraceable.cs @@ -0,0 +1,10 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +namespace osu.Game.Rulesets.Mods +{ + public abstract class ModTraceable : ModWithVisibilityAdjustment + { + // Class only exists for classic hotkey support. + } +}