Move gameplay configuration to interface to allow editor overriding

This commit is contained in:
Dean Herbert
2022-11-08 18:24:57 +09:00
parent 75bf023f14
commit dd4cd3cf8e
4 changed files with 34 additions and 6 deletions

View File

@ -129,8 +129,8 @@ namespace osu.Game.Rulesets.Objects.Drawables
private readonly BindableList<HitSampleInfo> samplesBindable = new BindableList<HitSampleInfo>();
private readonly Bindable<int> comboIndexBindable = new Bindable<int>();
private readonly Bindable<float> positionalHitsoundsLevel = new Bindable<float>();
private readonly Bindable<float> comboColourBrightness = new Bindable<float>();
private readonly IBindable<float> positionalHitsoundsLevel = new Bindable<float>();
private readonly IBindable<float> comboColourBrightness = new Bindable<float>();
private readonly Bindable<int> comboIndexWithOffsetsBindable = new Bindable<int>();
protected override bool RequiresChildrenUpdate => true;
@ -171,10 +171,10 @@ namespace osu.Game.Rulesets.Objects.Drawables
}
[BackgroundDependencyLoader]
private void load(OsuConfigManager config, ISkinSource skinSource)
private void load(IGameplaySettings gameplaySettings, ISkinSource skinSource)
{
config.BindWith(OsuSetting.PositionalHitsoundsLevel, positionalHitsoundsLevel);
config.BindWith(OsuSetting.ComboColourNormalisationAmount, comboColourBrightness);
positionalHitsoundsLevel.BindTo(gameplaySettings.PositionalHitsoundsLevel);
comboColourBrightness.BindTo(gameplaySettings.ComboColourNormalisationAmount);
// Explicit non-virtual function call in case a DrawableHitObject overrides AddInternal.
base.AddInternal(Samples = new PausableSkinnableSound());