private string Run_Program(MapCleanerVm args, BackgroundWorker worker, DoWorkEventArgs _) { var result = new MapCleanerResult(); var reader = EditorReaderStuff.GetFullEditorReaderOrNot(); if (args.Paths.Length == 1) { var editor = EditorReaderStuff.GetNewestVersionOrNot(args.Paths[0], reader); List <TimingPoint> orgininalTimingPoints = editor.Beatmap.BeatmapTiming.TimingPoints.Select(tp => tp.Copy()).ToList(); int oldTimingPointsCount = editor.Beatmap.BeatmapTiming.TimingPoints.Count; result.Add(Classes.Tools.MapCleanerStuff.MapCleaner.CleanMap(editor, args.MapCleanerArgs, worker)); // Update result with removed count int removed = oldTimingPointsCount - editor.Beatmap.BeatmapTiming.TimingPoints.Count; result.TimingPointsRemoved += removed; var newTimingPoints = editor.Beatmap.BeatmapTiming.TimingPoints; Monitor_Differences(orgininalTimingPoints, newTimingPoints); // Save the file editor.SaveFile(); } else { foreach (string path in args.Paths) { var editor = EditorReaderStuff.GetNewestVersionOrNot(path, reader); int oldTimingPointsCount = editor.Beatmap.BeatmapTiming.TimingPoints.Count; result.Add(Classes.Tools.MapCleanerStuff.MapCleaner.CleanMap(editor, args.MapCleanerArgs, worker)); // Update result with removed count int removed = oldTimingPointsCount - editor.Beatmap.BeatmapTiming.TimingPoints.Count; result.TimingPointsRemoved += removed; // Save the file editor.SaveFile(); } } // Do stuff RunFinished?.Invoke(this, new RunToolCompletedEventArgs(true, reader != null, args.Quick)); // Make an accurate message string message = $"Successfully {(result.TimingPointsRemoved < 0 ? "added" : "removed")} {Math.Abs(result.TimingPointsRemoved)} {(Math.Abs(result.TimingPointsRemoved) == 1 ? "greenline" : "greenlines")}" + (args.MapCleanerArgs.ResnapObjects ? $" and resnapped {result.ObjectsResnapped} {(result.ObjectsResnapped == 1 ? "object" : "objects")}" : "") + (args.MapCleanerArgs.RemoveUnusedSamples ? $" and removed {result.SamplesRemoved} unused {(result.SamplesRemoved == 1 ? "sample" : "samples")}" : "") + "!"; return(args.Quick ? string.Empty : message); }
public void Add(MapCleanerResult other) { ObjectsResnapped += other.ObjectsResnapped; SamplesRemoved += other.SamplesRemoved; TimingPointsRemoved += other.TimingPointsRemoved; }