Moved guards to separate canMerge method

This commit is contained in:
OliBomby 2022-08-29 18:58:29 +02:00
parent 16e0ec2f88
commit d50e9caa11

View File

@ -354,12 +354,14 @@ namespace osu.Game.Rulesets.Osu.Edit
.OrderBy(h => h.StartTime) .OrderBy(h => h.StartTime)
.ToArray(); .ToArray();
private bool canMerge(IReadOnlyList<OsuHitObject> objects) =>
objects.Count > 1 && (objects.Any(h => h is Slider) || Precision.DefinitelyBigger(Vector2.DistanceSquared(objects[0].Position, objects[1].Position), 1));
private void mergeSelection() private void mergeSelection()
{ {
var mergeableObjects = selectedMergeableObjects; var mergeableObjects = selectedMergeableObjects;
if (mergeableObjects.Length < 2 || (mergeableObjects.All(h => h is not Slider) if (!canMerge(mergeableObjects))
&& Precision.AlmostBigger(1, Vector2.DistanceSquared(mergeableObjects[0].Position, mergeableObjects[1].Position))))
return; return;
ChangeHandler?.BeginChange(); ChangeHandler?.BeginChange();
@ -446,9 +448,7 @@ namespace osu.Game.Rulesets.Osu.Edit
foreach (var item in base.GetContextMenuItemsForSelection(selection)) foreach (var item in base.GetContextMenuItemsForSelection(selection))
yield return item; yield return item;
var mergeableObjects = selectedMergeableObjects; if (canMerge(selectedMergeableObjects))
if (mergeableObjects.Length > 1 && (mergeableObjects.Any(h => h is Slider)
|| Precision.DefinitelyBigger(Vector2.DistanceSquared(mergeableObjects[0].Position, mergeableObjects[1].Position), 1)))
yield return new OsuMenuItem("Merge selection", MenuItemType.Destructive, mergeSelection); yield return new OsuMenuItem("Merge selection", MenuItemType.Destructive, mergeSelection);
} }
} }