public void OnTypeChange() { if (!EnableValueChange) { return; } if (Type.value == 5) { return; } int TypeTmp = ConvertValueToType(Type.value); List <Lanotalium.Chart.LanotaTapNote> ToConvertTapNote = new List <Lanotalium.Chart.LanotaTapNote>(); List <Lanotalium.Chart.LanotaHoldNote> ToConvertHoldNote = new List <Lanotalium.Chart.LanotaHoldNote>(); if (Mode == Lanotalium.Editor.ComponentTypeMode.Work) { foreach (Lanotalium.Chart.LanotaTapNote Tap in OperationManager.SelectedTapNote) { if (TypeTmp == 5) { ToConvertTapNote.Add(Tap); } else { OperationManager.SetTapNoteType(Tap, TypeTmp); } } foreach (Lanotalium.Chart.LanotaHoldNote Hold in OperationManager.SelectedHoldNote) { if (TypeTmp != 5) { ToConvertHoldNote.Add(Hold); } } foreach (Lanotalium.Chart.LanotaTapNote Tap in ToConvertTapNote) { OperationManager.ConvertTapNoteToHoldNote(Tap); } foreach (Lanotalium.Chart.LanotaHoldNote Hold in ToConvertHoldNote) { OperationManager.ConvertHoldNoteToTapNote(Hold, TypeTmp); } OperationManager.SelectNothing(); } }
public void CopySelectedNotes() { if (!OperationManager.TunerManager.isInitialized) { return; } if (!ValidateCopyInstruction()) { return; } bool HasTap = false, HasHold = false; float FirstNoteTime = 0; if (OperationManager.SelectedTapNote.Count != 0) { OperationManager.SelectedTapNote.Sort((Lanotalium.Chart.LanotaTapNote a, Lanotalium.Chart.LanotaTapNote b) => { return(a.Time.CompareTo(b.Time)); }); FirstNoteTime = OperationManager.SelectedTapNote[0].Time; HasTap = true; } if (OperationManager.SelectedHoldNote.Count != 0) { OperationManager.SelectedHoldNote.Sort((Lanotalium.Chart.LanotaHoldNote a, Lanotalium.Chart.LanotaHoldNote b) => { return(a.Time.CompareTo(b.Time)); }); FirstNoteTime = OperationManager.SelectedHoldNote[0].Time; HasHold = true; } if (HasTap && HasHold) { FirstNoteTime = Mathf.Min(OperationManager.SelectedTapNote[0].Time, OperationManager.SelectedHoldNote[0].Time); } if (!HasTap && !HasHold) { return; } if (HasTap) { foreach (float Target in CopyTargets) { float Delta = Target - FirstNoteTime; foreach (Lanotalium.Chart.LanotaTapNote Tap in OperationManager.SelectedTapNote) { Lanotalium.Chart.LanotaTapNote New = Tap.DeepCopy(); New.Time += Delta; OperationManager.AddTapNote(New, true, false, false); } } } if (HasHold) { foreach (float Target in CopyTargets) { float Delta = Target - FirstNoteTime; foreach (Lanotalium.Chart.LanotaHoldNote Hold in OperationManager.SelectedHoldNote) { Lanotalium.Chart.LanotaHoldNote New = Hold.DeepCopy(); New.Time += Delta; OperationManager.AddHoldNote(New, true, false, false); } } } OperationManager.SelectNothing(); LimNotifyIcon.ShowMessage(LimLanguageManager.TextDict["Copier_Msg_Success"]); }