public void Finish()
{
var nextNoteOnLine = new Util.Lazy<Note>(() => NextNoteOnSameLine(this));
var prevNoteOnLine = new Util.Lazy<Note>(() => PreviousNoteOnSameLine(this));
// connect ties
if (IsTieDestination)
{
if (prevNoteOnLine.Value == null)
{
IsTieDestination = false;
}
else
{
TieOrigin = prevNoteOnLine.Value;
TieOrigin.IsTieOrigin = true;
TieOrigin.TieDestination = this;
Fret = TieOrigin.Fret;
}
}
// set hammeron/pulloffs
if (IsHammerPullOrigin)
{
if (nextNoteOnLine.Value == null)
{
IsHammerPullOrigin = false;
}
else
{
HammerPullDestination = nextNoteOnLine.Value;
HammerPullDestination.HammerPullOrigin = this;
}
}
// set slides
if (SlideType != SlideType.None)
{
SlideTarget = nextNoteOnLine.Value;
}
}