public void Add(AirAction airAction) { if (!IsPositionTickAvailable(airAction, airAction.Position)) { Status.SelectedNote = null; return; } base.Add(airAction); airAction.CheckNotePosition += CheckNotePosition; airAction.IsPositionAvailable += IsPositionTickAvailable; CheckNotePosition(airAction, 0); CheckNoteSize(airAction); return; }
public AirHold(AirHold ah) { ah.ForEach(x => { switch (x) { case AirHoldBegin airHoldBegin: { var note = new AirHoldBegin(airHoldBegin); Add(note); note.CheckNotePosition += CheckNotePosition; note.CheckNoteSize += CheckNoteSize; } break; case AirHoldEnd airHoldEnd: { var note = new AirHoldEnd(airHoldEnd); Add(note); note.CheckNotePosition += CheckNotePosition; note.IsPositionAvailable += IsPositionTickAvailable; } break; case AirAction airAction: { var note = new AirAction(airAction); base.Add(note); note.CheckNotePosition += CheckNotePosition; note.IsPositionAvailable += IsPositionTickAvailable; } break; default: Logger.Warn("AirHoldの要素ではないノーツです"); break; } }); }