1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 16:25:32 +08:00

Make HitObjectMaskLayer not iterate through all masks when deselecting

This commit is contained in:
smoogipoo 2018-03-29 22:22:42 +09:00
parent 1018711cc9
commit d8f26f2260

View File

@ -21,7 +21,7 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
private readonly SelectionBox selectionBox;
private readonly HashSet<HitObjectMask> selectedObjects = new HashSet<HitObjectMask>();
private readonly HashSet<HitObjectMask> selectedMasks = new HashSet<HitObjectMask>();
public HitObjectMaskLayer(Playfield playfield, HitObjectComposer composer)
{
@ -88,9 +88,9 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
selectionBox.RemoveMask(mask);
}
private void onSelected(HitObjectMask mask) => selectedObjects.Add(mask);
private void onSelected(HitObjectMask mask) => selectedMasks.Add(mask);
private void onDeselected(HitObjectMask mask) => selectedObjects.Remove(mask);
private void onDeselected(HitObjectMask mask) => selectedMasks.Remove(mask);
private void onSingleSelectionRequested(HitObjectMask mask) => DeselectAll();
@ -103,6 +103,6 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
/// <summary>
/// Deselects all selected <see cref="DrawableHitObject"/>s.
/// </summary>
public void DeselectAll() => maskContainer.ToList().ForEach(m => m.Deselect());
public void DeselectAll() => selectedMasks.ToList().ForEach(m => m.Deselect());
}
}