public bool Put(HoldStepNote note) { if (note is null) { return(false); } if (!IsStepNoteTimingValid(note.Timing)) { return(false); } stepNotes.Add(note); note.PositionChanging += (step, lane, timing) => { switch (step.NoteType) { case NoteType.HoldRelay: { return(IsStepNoteTimingValid(timing)); } default: return(false); } }; return(true); }
public bool UnPut(HoldStepNote note) { var result = stepNotes.Remove(note); if (result) { note.RemoveAllEvents(); } return(result); }
public DeleteHoldStepOperation(Hold hold, HoldStepNote relay) { Invoke += () => { hold.UnPut(relay); }; Undo += () => { hold.Put(relay); }; }