Regressed when attempting to share implementation of binary search.
OverlappingScrollAlgorithm
Was using a very local algorithm which I cannot guarantee is correct. I'd rather it just use the one used everywhere else.
- `IProvideCursor.MenuCursor` -> `IProvideCursor.Cursor` - `MenuCursor` -> `MenuCursorContainer
Clamp `LifetimeStart` of `HitObject`s to their judgement windows
LifetimeStart
HitObject
createLifetimeEntry
HitObjectEntryManager
Playfield
DrawableRulesetDependencies
FrameStableClock
IGameplayClock
MasterGameplayClockContainer
NonGameplayAdjustments
GameplayAdjustments
TrueGameplayRate
FrameStabilityContainer
RemoveInternal
Remove
RemoveRange
RemoveAll
IsCatchingUp
No one should ever derive from this class. It is already too complex.
setClock
GameplayClock
ActionListener
KeysPerSecondCalculator
HUDOverlay
gathering KPS Calculator now uses DI to retrieve the clocks. Using `HUDOverlay` it is now cached for `KeysPerSecondCounter`s to resolve it. This also allows to make an "Attach" flow like `KeyCounter`.