mirror of
https://github.com/osukey/osukey.git
synced 2025-07-24 20:00:02 +09:00
Move ruleset key binding registration to an explicit method rather than the constructor
This commit is contained in:
@ -21,22 +21,9 @@ namespace osu.Game.Input
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public event Action? KeyBindingChanged;
|
public event Action? KeyBindingChanged;
|
||||||
|
|
||||||
public RealmKeyBindingStore(RealmContextFactory contextFactory, RulesetStore? rulesets, Storage? storage = null)
|
public RealmKeyBindingStore(RealmContextFactory contextFactory, Storage? storage = null)
|
||||||
: base(contextFactory, storage)
|
: base(contextFactory, storage)
|
||||||
{
|
{
|
||||||
if (rulesets != null)
|
|
||||||
{
|
|
||||||
// populate defaults from rulesets.
|
|
||||||
using (ContextFactory.GetForWrite())
|
|
||||||
{
|
|
||||||
foreach (RulesetInfo info in rulesets.AvailableRulesets)
|
|
||||||
{
|
|
||||||
var ruleset = info.CreateInstance();
|
|
||||||
foreach (var variant in ruleset.AvailableVariants)
|
|
||||||
insertDefaults(ruleset.GetDefaultKeyBindings(variant), info.ID, variant);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -62,6 +49,21 @@ namespace osu.Game.Input
|
|||||||
/// <param name="container">The container to populate defaults from.</param>
|
/// <param name="container">The container to populate defaults from.</param>
|
||||||
public void Register(KeyBindingContainer container) => insertDefaults(container.DefaultKeyBindings);
|
public void Register(KeyBindingContainer container) => insertDefaults(container.DefaultKeyBindings);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Register a ruleset, adding default bindings for each of its variants.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ruleset">The ruleset to populate defaults from.</param>
|
||||||
|
public void Register(RulesetInfo ruleset)
|
||||||
|
{
|
||||||
|
var instance = ruleset.CreateInstance();
|
||||||
|
|
||||||
|
using (ContextFactory.GetForWrite())
|
||||||
|
{
|
||||||
|
foreach (var variant in instance.AvailableVariants)
|
||||||
|
insertDefaults(instance.GetDefaultKeyBindings(variant), ruleset.ID, variant);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Retrieve all key bindings for the provided specification.
|
/// Retrieve all key bindings for the provided specification.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -267,7 +267,7 @@ namespace osu.Game
|
|||||||
|
|
||||||
migrateDataToRealm();
|
migrateDataToRealm();
|
||||||
|
|
||||||
dependencies.CacheAs(KeyBindingStore = new RealmKeyBindingStore(realmFactory, RulesetStore));
|
dependencies.CacheAs(KeyBindingStore = new RealmKeyBindingStore(realmFactory));
|
||||||
|
|
||||||
dependencies.Cache(SettingsStore = new SettingsStore(contextFactory));
|
dependencies.Cache(SettingsStore = new SettingsStore(contextFactory));
|
||||||
dependencies.Cache(RulesetConfigCache = new RulesetConfigCache(SettingsStore));
|
dependencies.Cache(RulesetConfigCache = new RulesetConfigCache(SettingsStore));
|
||||||
@ -310,6 +310,10 @@ namespace osu.Game
|
|||||||
base.Content.Add(CreateScalingContainer().WithChild(MenuCursorContainer));
|
base.Content.Add(CreateScalingContainer().WithChild(MenuCursorContainer));
|
||||||
|
|
||||||
KeyBindingStore.Register(globalBindings);
|
KeyBindingStore.Register(globalBindings);
|
||||||
|
|
||||||
|
foreach (var r in RulesetStore.AvailableRulesets)
|
||||||
|
KeyBindingStore.Register(r);
|
||||||
|
|
||||||
dependencies.Cache(globalBindings);
|
dependencies.Cache(globalBindings);
|
||||||
|
|
||||||
PreviewTrackManager previewTrackManager;
|
PreviewTrackManager previewTrackManager;
|
||||||
|
Reference in New Issue
Block a user