Fix end time extent not being accounted for in new snap implementation

This commit is contained in:
Dean Herbert
2022-05-05 18:25:46 +09:00
parent 7b71fb860b
commit b9d8b7e413
2 changed files with 10 additions and 4 deletions

View File

@ -87,6 +87,11 @@ namespace osu.Game.Screens.Edit.Compose.Components
float snappedDistance = SnapProvider.FindSnappedDistance(ReferenceObject, travelLength / distanceSpacing);
double snappedTime = StartTime + SnapProvider.DistanceToDuration(ReferenceObject, snappedDistance);
if (snappedTime > LatestEndTime)
{
snappedDistance = SnapProvider.DurationToDistance(ReferenceObject, LatestEndTime.Value - ReferenceObject.StartTime);
}
// The multiplier can then be reapplied to the final position.
Vector2 snappedPosition = StartPosition + travelVector.Normalized() * snappedDistance * distanceSpacing;