// 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 System.Linq; using osu.Game.Rulesets.Edit.Checks; using osu.Game.Rulesets.Edit.Checks.Components; namespace osu.Game.Rulesets.Edit { /// /// A ruleset-agnostic beatmap verifier that identifies issues in common metadata or mapping standards. /// public class BeatmapVerifier : IBeatmapVerifier { private readonly List checks = new List { // Resources new CheckBackgroundPresence(), new CheckBackgroundQuality(), new CheckVideoResolution(), // Audio new CheckAudioPresence(), new CheckAudioQuality(), new CheckMutedObjects(), new CheckFewHitsounds(), new CheckTooShortAudioFiles(), new CheckAudioInVideo(), new CheckDelayedHitsounds(), new CheckSongFormat(), new CheckHitsoundsFormat(), // Files new CheckZeroByteFiles(), // Compose new CheckUnsnappedObjects(), new CheckConcurrentObjects(), new CheckZeroLengthObjects(), new CheckDrainLength(), new CheckUnusedAudioAtEnd(), // Timing new CheckPreviewTime(), // Events new CheckBreaks(), }; public IEnumerable Run(BeatmapVerifierContext context) { return checks.SelectMany(check => check.Run(context)); } } }