1
0
mirror of https://github.com/ppy/osu.git synced 2025-03-28 10:17:19 +08:00

"overlay" -> "mask"

This commit is contained in:
smoogipoo 2018-03-29 22:09:22 +09:00
parent 6d4f94756e
commit 04874bcda4

View File

@ -17,7 +17,7 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
{ {
private readonly Playfield playfield; private readonly Playfield playfield;
private readonly HitObjectComposer composer; private readonly HitObjectComposer composer;
private readonly Container<HitObjectMask> overlayContainer; private readonly Container<HitObjectMask> maskContainer;
private readonly SelectionBox selectionBox; private readonly SelectionBox selectionBox;
@ -30,16 +30,16 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
RelativeSizeAxes = Axes.Both; RelativeSizeAxes = Axes.Both;
overlayContainer = new Container<HitObjectMask>(); maskContainer = new Container<HitObjectMask>();
selectionBox = composer.CreateSelectionBox(); selectionBox = composer.CreateSelectionBox();
var dragBox = new DragBox(overlayContainer); var dragBox = new DragBox(maskContainer);
dragBox.DragEnd += () => selectionBox.FinishSelection(); dragBox.DragEnd += () => selectionBox.FinishSelection();
InternalChildren = new Drawable[] InternalChildren = new Drawable[]
{ {
dragBox, dragBox,
overlayContainer, maskContainer,
selectionBox, selectionBox,
dragBox.CreateProxy() dragBox.CreateProxy()
}; };
@ -49,43 +49,43 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
private void load() private void load()
{ {
foreach (var obj in playfield.HitObjects.Objects) foreach (var obj in playfield.HitObjects.Objects)
addOverlay(obj); addMask(obj);
} }
/// <summary> /// <summary>
/// Adds an overlay for a <see cref="DrawableHitObject"/> which adds movement support. /// Adds a mask for a <see cref="DrawableHitObject"/> which adds movement support.
/// </summary> /// </summary>
/// <param name="hitObject">The <see cref="DrawableHitObject"/> to create an overlay for.</param> /// <param name="hitObject">The <see cref="DrawableHitObject"/> to create a mask for.</param>
private void addOverlay(DrawableHitObject hitObject) private void addMask(DrawableHitObject hitObject)
{ {
var overlay = composer.CreateMaskFor(hitObject); var mask = composer.CreateMaskFor(hitObject);
if (overlay == null) if (mask == null)
return; return;
overlay.Selected += onSelected; mask.Selected += onSelected;
overlay.Deselected += onDeselected; mask.Deselected += onDeselected;
overlay.SingleSelectionRequested += onSingleSelectionRequested; mask.SingleSelectionRequested += onSingleSelectionRequested;
overlayContainer.Add(overlay); maskContainer.Add(mask);
selectionBox.AddMask(overlay); selectionBox.AddMask(mask);
} }
/// <summary> /// <summary>
/// Removes the overlay for a <see cref="DrawableHitObject"/>. /// Removes the mask for a <see cref="DrawableHitObject"/>.
/// </summary> /// </summary>
/// <param name="hitObject">The <see cref="DrawableHitObject"/> to remove the overlay for.</param> /// <param name="hitObject">The <see cref="DrawableHitObject"/> to remove the mask for.</param>
private void removeOverlay(DrawableHitObject hitObject) private void removeMask(DrawableHitObject hitObject)
{ {
var existing = overlayContainer.FirstOrDefault(h => h.HitObject == hitObject); var mask = maskContainer.FirstOrDefault(h => h.HitObject == hitObject);
if (existing == null) if (mask == null)
return; return;
existing.Selected -= onSelected; mask.Selected -= onSelected;
existing.Deselected -= onDeselected; mask.Deselected -= onDeselected;
existing.SingleSelectionRequested -= onSingleSelectionRequested; mask.SingleSelectionRequested -= onSingleSelectionRequested;
overlayContainer.Remove(existing); maskContainer.Remove(mask);
selectionBox.RemoveMask(existing); selectionBox.RemoveMask(mask);
} }
private void onSelected(HitObjectMask mask) => selectedObjects.Add(mask); private void onSelected(HitObjectMask mask) => selectedObjects.Add(mask);
@ -103,6 +103,6 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
/// <summary> /// <summary>
/// Deselects all selected <see cref="DrawableHitObject"/>s. /// Deselects all selected <see cref="DrawableHitObject"/>s.
/// </summary> /// </summary>
public void DeselectAll() => overlayContainer.ToList().ForEach(m => m.Deselect()); public void DeselectAll() => maskContainer.ToList().ForEach(m => m.Deselect());
} }
} }