Fix argon hit circles occasionally going missing during editor seeking

This commit is contained in:
Dean Herbert 2023-01-24 17:43:14 +09:00
parent a966d6c330
commit 3a47be6e00

View File

@ -64,21 +64,18 @@ namespace osu.Game.Rulesets.Osu.Skinning.Argon
outerGradient = new Circle // renders the outer bright gradient outerGradient = new Circle // renders the outer bright gradient
{ {
Size = new Vector2(OUTER_GRADIENT_SIZE), Size = new Vector2(OUTER_GRADIENT_SIZE),
Alpha = 1,
Anchor = Anchor.Centre, Anchor = Anchor.Centre,
Origin = Anchor.Centre, Origin = Anchor.Centre,
}, },
innerGradient = new Circle // renders the inner bright gradient innerGradient = new Circle // renders the inner bright gradient
{ {
Size = new Vector2(INNER_GRADIENT_SIZE), Size = new Vector2(INNER_GRADIENT_SIZE),
Alpha = 1,
Anchor = Anchor.Centre, Anchor = Anchor.Centre,
Origin = Anchor.Centre, Origin = Anchor.Centre,
}, },
innerFill = new Circle // renders the inner dark fill innerFill = new Circle // renders the inner dark fill
{ {
Size = new Vector2(INNER_FILL_SIZE), Size = new Vector2(INNER_FILL_SIZE),
Alpha = 1,
Anchor = Anchor.Centre, Anchor = Anchor.Centre,
Origin = Anchor.Centre, Origin = Anchor.Centre,
}, },
@ -123,14 +120,18 @@ namespace osu.Game.Rulesets.Osu.Skinning.Argon
// Accent colour may be changed many times during a paused gameplay state. // Accent colour may be changed many times during a paused gameplay state.
// Schedule the change to avoid transforms piling up. // Schedule the change to avoid transforms piling up.
Scheduler.AddOnce(updateStateTransforms); Scheduler.AddOnce(() =>
{
updateStateTransforms(drawableObject, drawableObject.State.Value);
ApplyTransformsAt(double.MinValue, true);
ClearTransformsAfter(double.MinValue, true);
});
}, true); }, true);
drawableObject.ApplyCustomUpdateState += updateStateTransforms; drawableObject.ApplyCustomUpdateState += updateStateTransforms;
} }
private void updateStateTransforms() => updateStateTransforms(drawableObject, drawableObject.State.Value);
private void updateStateTransforms(DrawableHitObject drawableHitObject, ArmedState state) private void updateStateTransforms(DrawableHitObject drawableHitObject, ArmedState state)
{ {
using (BeginAbsoluteSequence(drawableObject.HitStateUpdateTime)) using (BeginAbsoluteSequence(drawableObject.HitStateUpdateTime))