// Copyright (c) ppy Pty Ltd <[email protected]>. Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using System.Linq; using osu.Game.Rulesets.Objects.Types; namespace osu.Game.Beatmaps { /// <summary> /// Provides functionality to alter a <see cref="IBeatmap"/> after it has been converted. /// </summary> public class BeatmapProcessor : IBeatmapProcessor { public IBeatmap Beatmap { get; } public BeatmapProcessor(IBeatmap beatmap) { Beatmap = beatmap; } public virtual void PreProcess() { IHasComboInformation? lastObj = null; foreach (var obj in Beatmap.HitObjects.OfType<IHasComboInformation>()) { obj.UpdateComboInformation(lastObj); lastObj = obj; } } public virtual void PostProcess() { } } }