// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using System.Collections.Generic; using osu.Framework.Extensions.IEnumerableExtensions; using osu.Game.Rulesets.Objects.Drawables; namespace osu.Game.Rulesets.Mods { /// /// An interface for s that can be applied to s. /// public interface IApplicableToDrawableHitObject : IApplicableMod { /// /// Applies this to a . /// This will only be invoked with top-level s. Access if adjusting nested objects is necessary. /// void ApplyToDrawableHitObject(DrawableHitObject drawable); } public interface IApplicableToDrawableHitObjects : IApplicableToDrawableHitObject { void ApplyToDrawableHitObjects(IEnumerable drawables); void IApplicableToDrawableHitObject.ApplyToDrawableHitObject(DrawableHitObject drawable) => ApplyToDrawableHitObjects(drawable.Yield()); } }