// 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.Bindables; using osu.Framework.Timing; namespace osu.Game.Screens.Play { public interface IGameplayClock : IFrameBasedClock { /// /// The rate of gameplay when playback is at 100%. /// This excludes any seeking / user adjustments. /// double TrueGameplayRate { get; } /// /// The time from which the clock should start. Will be seeked to on calling . /// /// /// If not set, a value of zero will be used. /// Importantly, the value will be inferred from the current ruleset in unless specified. /// double? StartTime { get; } /// /// All adjustments applied to this clock which don't come from gameplay or mods. /// IEnumerable NonGameplayAdjustments { get; } IBindable IsPaused { get; } } }