mirror of
https://github.com/ppy/osu.git
synced 2025-02-05 04:52:53 +08:00
Explicitly set lifetime to ensure empty drawables are cleaned up
This commit is contained in:
parent
0387d994bd
commit
be4735cd2b
@ -116,8 +116,9 @@ namespace osu.Game.Rulesets.Taiko.Skinning
|
|||||||
|
|
||||||
case TaikoSkinComponents.TaikoExplosionKiai:
|
case TaikoSkinComponents.TaikoExplosionKiai:
|
||||||
// suppress the default kiai explosion if the skin brings its own sprites.
|
// suppress the default kiai explosion if the skin brings its own sprites.
|
||||||
|
// the drawable needs to expire as soon as possible to avoid accumulating empty drawables on the playfield.
|
||||||
if (hasExplosion.Value)
|
if (hasExplosion.Value)
|
||||||
return Drawable.Empty();
|
return KiaiHitExplosion.EmptyExplosion();
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
|
@ -43,5 +43,11 @@ namespace osu.Game.Rulesets.Taiko.UI
|
|||||||
{
|
{
|
||||||
Child = skinnable = new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoExplosionKiai), _ => new DefaultKiaiHitExplosion(hitType));
|
Child = skinnable = new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoExplosionKiai), _ => new DefaultKiaiHitExplosion(hitType));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Helper function to use when an explosion is not desired.
|
||||||
|
/// Lifetime is set to avoid accumulating empty drawables in the parent container.
|
||||||
|
/// </summary>
|
||||||
|
public static Drawable EmptyExplosion() => Empty().With(d => d.LifetimeEnd = double.MinValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user