// 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 osu.Game.Database; using osu.Game.Rulesets; namespace osu.Game.Beatmaps { /// /// A single beatmap difficulty. /// public interface IBeatmapInfo : IHasOnlineID, IEquatable { /// /// The user-specified name given to this beatmap. /// string DifficultyName { get; } /// /// The metadata representing this beatmap. May be shared between multiple beatmaps. /// IBeatmapMetadataInfo Metadata { get; } /// /// The difficulty settings for this beatmap. /// IBeatmapDifficultyInfo Difficulty { get; } /// /// The beatmap set this beatmap is part of. /// IBeatmapSetInfo? BeatmapSet { get; } /// /// The total length in milliseconds of this beatmap. /// double Length { get; } /// /// The most common BPM of this beatmap. /// double BPM { get; } /// /// The SHA-256 hash representing this beatmap's contents. /// string Hash { get; } /// /// MD5 is kept for legacy support (matching against replays etc.). /// string MD5Hash { get; } /// /// The ruleset this beatmap was made for. /// IRulesetInfo Ruleset { get; } /// /// The basic star rating for this beatmap (with no mods applied). /// Defaults to -1 (meaning not-yet-calculated). /// double StarRating { get; } /// /// The number of hitobjects in the beatmap with a distinct end time. /// Defaults to -1 (meaning not-yet-calculated). /// /// /// Canonically, these are hitobjects are either sliders or spinners. /// int EndTimeObjectCount { get; } /// /// The total number of hitobjects in the beatmap. /// Defaults to -1 (meaning not-yet-calculated). /// int TotalObjectCount { get; } } }