1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-16 17:02:55 +08:00
osu-lazer/osu.Game.Rulesets.Catch/Objects/Drawables/NestedFruitContainer.cs
Bartłomiej Dach 72e502e615
Fix backwards z-ordering of fruits in juice streams and banana showers
Closes https://github.com/ppy/osu/issues/25827.

The logic cannot be easily abstracted out (because
`CompareReverseChildID()` is protected and non-static on
`CompositeDrawable`), so a local copy was applied instead.

No testing as any testing would have been purely visual anyways.
2024-01-02 11:55:59 +01:00

27 lines
1023 B
C#

// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Game.Rulesets.UI;
namespace osu.Game.Rulesets.Catch.Objects.Drawables
{
public partial class NestedFruitContainer : Container
{
/// <remarks>
/// This comparison logic is a copy of <see cref="HitObjectContainer"/> comparison logic,
/// which can't be easily extracted to a more common place.
/// </remarks>
/// <seealso cref="HitObjectContainer.Compare"/>
protected override int Compare(Drawable x, Drawable y)
{
if (x is not DrawableCatchHitObject xObj || y is not DrawableCatchHitObject yObj)
return base.Compare(x, y);
int result = yObj.HitObject.StartTime.CompareTo(xObj.HitObject.StartTime);
return result == 0 ? CompareReverseChildID(x, y) : result;
}
}
}