diff --git a/osu.Game.Rulesets.Mania/ManiaRuleset.cs b/osu.Game.Rulesets.Mania/ManiaRuleset.cs
index f073d5a04c..6c356195b2 100644
--- a/osu.Game.Rulesets.Mania/ManiaRuleset.cs
+++ b/osu.Game.Rulesets.Mania/ManiaRuleset.cs
@@ -157,5 +157,7 @@ namespace osu.Game.Rulesets.Mania
return bindings;
}
+
+ public override string GetVariantName(int variant) => $"{variant}K";
}
}
diff --git a/osu.Game/Overlays/KeyBinding/VariantBindingsSubsection.cs b/osu.Game/Overlays/KeyBinding/VariantBindingsSubsection.cs
index f58cb632de..dca5f53b4a 100644
--- a/osu.Game/Overlays/KeyBinding/VariantBindingsSubsection.cs
+++ b/osu.Game/Overlays/KeyBinding/VariantBindingsSubsection.cs
@@ -7,17 +7,18 @@ namespace osu.Game.Overlays.KeyBinding
{
public class VariantBindingsSubsection : KeyBindingsSubsection
{
- protected override string Header => variant > 0 ? $"Variant: {variant}" : string.Empty;
-
- private readonly int variant;
+ protected override string Header => variantName;
+ private readonly string variantName;
public VariantBindingsSubsection(RulesetInfo ruleset, int variant)
: base(variant)
{
- this.variant = variant;
-
Ruleset = ruleset;
- Defaults = ruleset.CreateInstance().GetDefaultKeyBindings(variant);
+
+ var rulesetInstance = ruleset.CreateInstance();
+
+ variantName = rulesetInstance.GetVariantName(variant);
+ Defaults = rulesetInstance.GetDefaultKeyBindings(variant);
}
}
}
\ No newline at end of file
diff --git a/osu.Game/Rulesets/Ruleset.cs b/osu.Game/Rulesets/Ruleset.cs
index 32d958b462..c54aeb7852 100644
--- a/osu.Game/Rulesets/Ruleset.cs
+++ b/osu.Game/Rulesets/Ruleset.cs
@@ -63,5 +63,12 @@ namespace osu.Game.Rulesets
/// A variant.
/// A list of valid s.
public virtual IEnumerable GetDefaultKeyBindings(int variant = 0) => new KeyBinding[] { };
+
+ ///
+ /// Gets the name for a key binding variant. This is used for display in the settings overlay.
+ ///
+ /// The variant.
+ /// A descriptive name of the variant.
+ public virtual string GetVariantName(int variant) => string.Empty;
}
}