diff --git a/osu.Game/Rulesets/UI/DrawableRuleset.cs b/osu.Game/Rulesets/UI/DrawableRuleset.cs
index 0ab07de1ac..654f330a08 100644
--- a/osu.Game/Rulesets/UI/DrawableRuleset.cs
+++ b/osu.Game/Rulesets/UI/DrawableRuleset.cs
@@ -81,9 +81,8 @@ namespace osu.Game.Rulesets.UI
///
/// The mods which are to be applied.
///
- [Cached]
- [Cached(typeof(IBindable>))]
- private readonly Bindable> mods = new Bindable>();
+ [Cached(typeof(IReadOnlyList))]
+ private readonly IReadOnlyList mods;
private FrameStabilityContainer frameStabilityContainer;
@@ -100,7 +99,7 @@ namespace osu.Game.Rulesets.UI
if (workingBeatmap == null)
throw new ArgumentException("Beatmap cannot be null.", nameof(workingBeatmap));
- this.mods.Value = mods;
+ this.mods = mods.ToArray();
RelativeSizeAxes = Axes.Both;
@@ -160,7 +159,7 @@ namespace osu.Game.Rulesets.UI
.WithChild(ResumeOverlay)));
}
- applyRulesetMods(mods.Value, config);
+ applyRulesetMods(mods, config);
loadObjects();
}
@@ -175,7 +174,7 @@ namespace osu.Game.Rulesets.UI
Playfield.PostProcess();
- foreach (var mod in mods.Value.OfType())
+ foreach (var mod in mods.OfType())
mod.ApplyToDrawableHitObjects(Playfield.HitObjectContainer.Objects);
}
diff --git a/osu.Game/Rulesets/UI/Playfield.cs b/osu.Game/Rulesets/UI/Playfield.cs
index c9a05dae2c..13689153f0 100644
--- a/osu.Game/Rulesets/UI/Playfield.cs
+++ b/osu.Game/Rulesets/UI/Playfield.cs
@@ -61,7 +61,7 @@ namespace osu.Game.Rulesets.UI
private IBindable beatmap { get; set; }
[Resolved]
- private IBindable> mods { get; set; }
+ private IReadOnlyList mods { get; set; }
[BackgroundDependencyLoader]
private void load()
@@ -125,7 +125,7 @@ namespace osu.Game.Rulesets.UI
base.Update();
if (beatmap != null)
- foreach (var mod in mods.Value)
+ foreach (var mod in mods)
if (mod is IUpdatableByPlayfield updatable)
updatable.Update(this);
}