// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using System; using System.Collections.Generic; using osu.Framework.Audio.Track; using osu.Framework.Graphics.Textures; using osu.Game.Rulesets; using osu.Game.Rulesets.Mods; using osu.Game.Rulesets.Objects; using osu.Game.Rulesets.UI; using osu.Game.Skinning; using osu.Game.Storyboards; namespace osu.Game.Beatmaps { public interface IWorkingBeatmap { /// /// Retrieves the which this represents. /// IBeatmap Beatmap { get; } /// /// Retrieves the background for this . /// Texture Background { get; } /// /// Retrieves the for the of this . /// Waveform Waveform { get; } /// /// Retrieves the which this provides. /// Storyboard Storyboard { get; } /// /// Retrieves the which this provides. /// ISkin Skin { get; } /// /// Constructs a playable from using the applicable converters for a specific . /// /// The returned is in a playable state - all and s /// have been applied, and s have been fully constructed. /// /// /// The to create a playable for. /// The s to apply to the . /// The maximum length in milliseconds to wait for load to complete. Defaults to 10,000ms. /// The converted . /// If could not be converted to . IBeatmap GetPlayableBeatmap(RulesetInfo ruleset, IReadOnlyList mods = null, TimeSpan? timeout = null); /// /// Retrieves the which this provides. /// Track GetTrack(); } }