OverlappingScrollAlgorithm
TimeAt
#nullable disable
IDrawableScrollingRuleset
Regressed when attempting to share implementation of binary search.
Was using a very local algorithm which I cannot guarantee is correct. I'd rather it just use the one used everywhere else.
Clamp `LifetimeStart` of `HitObject`s to their judgement windows
LifetimeStart
HitObject
var
BaseDifficulty
Beatmap<T>
IPositionalSnapProvider
This allows fetching the correct `DifficultyControlPoint` from the hitobject. Nothing more.
TimeAtPosition
PositionAtTime
The natural anchor is the end of the scrolling direction (e.g. Bottom for Down scrolling).
- Fix wrong position is set for DHOs for down/right scrolling direction.
flipPositionIfRequired
scrollLength
Direction
int
The property is named `scrollingAxis` to distinguish from `direction`, which is of `ScrollingDirection` type (unfortunate name crash).
ScrollingHitObjectContainer
OnAdd
OnRemove
HitObjectContainer
Instead, override `AddDrawable`/`RemoveDrawable`.
HitObjectContainer.Clear
It just call `Remove` for all entries.
# Conflicts: # osu.Game/Rulesets/UI/Scrolling/ScrollingHitObjectContainer.cs
It was not clear when the field is updated.
The scheduling is no longer necessary because `OnAdd` is changed to not invoked immediately for non-pooled DHOs.
Only top-level hit objects are checked for layout computation caching. Also, lifetime of nested hit objects are not managed by the HitObjectContainer.
This reverts commit 632bb70e
632bb70e
This reverts commit 73dfb04d
73dfb04d
DHOs cannot be used to calculate lifetime, it is not created before the entry became alive.