Fix slider ticks not being shifted along with their parent sliders

This commit is contained in:
Pasi4K5 2021-05-15 02:07:24 +02:00
parent 3fa6a0413b
commit 878182fbdf

View File

@ -2,6 +2,7 @@
// See the LICENCE file in the repository root for full licence text. // See the LICENCE file in the repository root for full licence text.
using System; using System;
using System.Linq;
using osu.Framework.Bindables; using osu.Framework.Bindables;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
@ -91,6 +92,7 @@ namespace osu.Game.Rulesets.Osu.Mods
circle.Position = currentObjectInfo.StartPosChanged; circle.Position = currentObjectInfo.StartPosChanged;
currentObjectInfo.EndPosChanged = currentObjectInfo.StartPosChanged; currentObjectInfo.EndPosChanged = currentObjectInfo.StartPosChanged;
break; break;
case Slider slider: case Slider slider:
@ -109,6 +111,12 @@ namespace osu.Game.Rulesets.Osu.Mods
currentObjectInfo.EndPosChanged = slider.TailCircle.Position; currentObjectInfo.EndPosChanged = slider.TailCircle.Position;
moveSliderIntoPlayfield(ref slider, ref currentObjectInfo); moveSliderIntoPlayfield(ref slider, ref currentObjectInfo);
var sliderShift = Vector2.Subtract(slider.Position, currentObjectInfo.StartPosUnchanged);
foreach (var tick in slider.NestedHitObjects.OfType<SliderTick>())
tick.Position = Vector2.Add(tick.Position, sliderShift);
break; break;
} }