Beispiel #1
0
        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);
        }
Beispiel #2
0
        public bool UnPut(HoldStepNote note)
        {
            var result = stepNotes.Remove(note);

            if (result)
            {
                note.RemoveAllEvents();
            }
            return(result);
        }
Beispiel #3
0
        public DeleteHoldStepOperation(Hold hold, HoldStepNote relay)
        {
            Invoke += () =>
            {
                hold.UnPut(relay);
            };

            Undo += () =>
            {
                hold.Put(relay);
            };
        }