diff --git a/osu.Game.Rulesets.Osu/Edit/DrawableOsuEditorRuleset.cs b/osu.Game.Rulesets.Osu/Edit/DrawableOsuEditorRuleset.cs index c89527d8bd..866e41d644 100644 --- a/osu.Game.Rulesets.Osu/Edit/DrawableOsuEditorRuleset.cs +++ b/osu.Game.Rulesets.Osu/Edit/DrawableOsuEditorRuleset.cs @@ -6,6 +6,7 @@ using System.Linq; using osu.Framework.Allocation; using osu.Framework.Bindables; using osu.Framework.Graphics; +using osu.Framework.Lists; using osu.Game.Beatmaps; using osu.Game.Configuration; using osu.Game.Rulesets.Mods; @@ -46,15 +47,23 @@ namespace osu.Game.Rulesets.Osu.Edit HitPolicy = new AnyOrderHitPolicy(); } + private readonly WeakList drawableHitObjects = new WeakList(); + [BackgroundDependencyLoader] private void load(OsuConfigManager config) { hitAnimations = config.GetBindable(OsuSetting.EditorHitAnimations); + hitAnimations.BindValueChanged(_ => + { + foreach (var d in drawableHitObjects) d.RefreshStateTransforms(); + }); } protected override void OnNewDrawableHitObject(DrawableHitObject d) { d.ApplyCustomUpdateState += updateState; + + drawableHitObjects.Add(d); } private void updateState(DrawableHitObject hitObject, ArmedState state) diff --git a/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs b/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs index 5531bf8b5a..2e573a7f85 100644 --- a/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs +++ b/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs @@ -448,7 +448,7 @@ namespace osu.Game.Rulesets.Objects.Drawables /// /// Reapplies the current . /// - protected void RefreshStateTransforms() => updateState(State.Value, true); + public void RefreshStateTransforms() => updateState(State.Value, true); /// /// Apply (generally fade-in) transforms leading into the start time.