示例#1
0
文件: Harp.cs 项目: Invisi/Blish-HUD
        public override void PlayNote(Note note)
        {
            var harpNote = HarpNote.From(note);

            if (RequiresAction(harpNote))
            {
                harpNote = OptimizeNote(harpNote);
                PressNote(NoteMap[harpNote.Key]);
            }
        }
示例#2
0
文件: Harp.cs 项目: Invisi/Blish-HUD
 private HarpNote OptimizeNote(HarpNote note)
 {
     if (note.Equals(new HarpNote(HarpNote.Keys.Note1, HarpNote.Octaves.Middle)) && _currentOctave == HarpNote.Octaves.Low)
     {
         note = new HarpNote(HarpNote.Keys.Note8, HarpNote.Octaves.Low);
     }
     else if (note.Equals(new HarpNote(HarpNote.Keys.Note1, HarpNote.Octaves.High)) && _currentOctave == HarpNote.Octaves.Middle)
     {
         note = new HarpNote(HarpNote.Keys.Note8, HarpNote.Octaves.Middle);
     }
     return(note);
 }
示例#3
0
文件: Harp.cs 项目: Invisi/Blish-HUD
        public override void GoToOctave(Note note)
        {
            var harpNote = HarpNote.From(note);

            if (RequiresAction(harpNote))
            {
                harpNote = OptimizeNote(harpNote);

                while (_currentOctave != harpNote.Octave)
                {
                    if (_currentOctave < harpNote.Octave)
                    {
                        IncreaseOctave();
                    }
                    else
                    {
                        DecreaseOctave();
                    }
                }
            }
        }
示例#4
0
 protected bool Equals(HarpNote other)
 {
     return(Key == other.Key && Octave == other.Octave);
 }
示例#5
0
文件: Harp.cs 项目: Invisi/Blish-HUD
 private static bool RequiresAction(HarpNote harpNote)
 {
     return(harpNote.Key != HarpNote.Keys.None);
 }