mirror of
https://github.com/ppy/osu.git
synced 2025-02-13 15:03:13 +08:00
Fix more than one proxy is created
This commit is contained in:
parent
772f6df668
commit
27f5a99726
@ -96,10 +96,20 @@ namespace osu.Game.Rulesets.Osu.UI
|
||||
|
||||
private void onDrawableHitObjectAdded(DrawableHitObject drawable)
|
||||
{
|
||||
if (!drawable.IsLoaded)
|
||||
drawable.OnLoadComplete += onDrawableHitObjectLoaded;
|
||||
|
||||
((DrawableOsuHitObject)drawable).CheckHittable = CheckHittable;
|
||||
|
||||
switch (drawable)
|
||||
{
|
||||
case DrawableSpinner _:
|
||||
if (!drawable.HasProxy)
|
||||
spinnerProxies.Add(drawable.CreateProxy());
|
||||
break;
|
||||
|
||||
case IDrawableHitObjectWithProxiedApproach approach:
|
||||
if (!approach.ProxiedLayer.HasProxy)
|
||||
approachCircles.Add(approach.ProxiedLayer.CreateProxy());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
[BackgroundDependencyLoader(true)]
|
||||
@ -134,27 +144,6 @@ namespace osu.Game.Rulesets.Osu.UI
|
||||
followPoints.RemoveFollowPoints((OsuHitObject)hitObject);
|
||||
}
|
||||
|
||||
private void onDrawableHitObjectLoaded(Drawable drawable)
|
||||
{
|
||||
switch (drawable)
|
||||
{
|
||||
case DrawableSliderHead _:
|
||||
case DrawableSliderTail _:
|
||||
case DrawableSliderTick _:
|
||||
case DrawableSliderRepeat _:
|
||||
case DrawableSpinnerTick _:
|
||||
break;
|
||||
|
||||
case DrawableSpinner _:
|
||||
spinnerProxies.Add(drawable.CreateProxy());
|
||||
break;
|
||||
|
||||
case IDrawableHitObjectWithProxiedApproach approach:
|
||||
approachCircles.Add(approach.ProxiedLayer.CreateProxy());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void onNewResult(DrawableHitObject judgedObject, JudgementResult result)
|
||||
{
|
||||
// Hitobjects that block future hits should miss previous hitobjects if they're hit out-of-order.
|
||||
|
Loading…
Reference in New Issue
Block a user