Commit Graph

173 Commits

Author SHA1 Message Date
smoogipoo
2af827f913 Increase TimeRange max value 2021-08-02 19:37:45 +09:00
ekrctb
bbf0022689 Use natural anchor for TimeAtPosition and PositionAtTime
The natural anchor is the end of the scrolling direction (e.g. Bottom for Down scrolling).
2021-06-15 13:15:20 +09:00
Bartłomiej Dach
cb1e2e3d97 Improve xmldoc 2021-06-14 21:54:55 +02:00
ekrctb
660bf50dc7 Clarify multiple coordinate systems
- Fix wrong position is set for DHOs for down/right scrolling direction.
2021-06-14 13:13:27 +09:00
ekrctb
09f1cbde7e Fix TimeAtPosition doc comment 2021-06-14 13:13:27 +09:00
ekrctb
fdb09ef4d7 Simplify flipPositionIfRequired using scrollLength 2021-06-14 13:13:27 +09:00
ekrctb
8cf4454780 Use Direction enum instead of int
The property is named `scrollingAxis` to distinguish from `direction`, which is of `ScrollingDirection` type (unfortunate name crash).
2021-06-14 13:13:27 +09:00
ekrctb
af3f253b21 Refactor ScrollingHitObjectContainer and expose more useful methods 2021-06-11 18:28:48 +09:00
ekrctb
b321b20e9d Remove OnAdd/OnRemove of HitObjectContainer
Instead, override `AddDrawable`/`RemoveDrawable`.
2021-06-03 15:00:16 +09:00
ekrctb
0ce7baa3f3 Make HitObjectContainer.Clear non-virtual
It just call `Remove` for all entries.
2021-06-03 15:00:16 +09:00
ekrctb
948a14a627 Merge branch 'simplify-shoc' into fix-scrolling-lifetime
# Conflicts:
#	osu.Game/Rulesets/UI/Scrolling/ScrollingHitObjectContainer.cs
2021-05-31 16:50:47 +09:00
ekrctb
86d1225aad Reset lifetime to initial lifetime when layout is invalidated 2021-05-31 16:47:10 +09:00
ekrctb
6d96846776 Remove scrollLength caching field
It was not clear when the field is updated.
2021-05-31 16:28:02 +09:00
ekrctb
742c5b442b Remove delay of lifetime update
The scheduling is no longer necessary because `OnAdd` is changed to not invoked immediately for non-pooled DHOs.
2021-05-31 16:24:13 +09:00
ekrctb
3cedc0824d Don't add nested hit objects to the sets
Only top-level hit objects are checked for layout computation caching.
Also, lifetime of nested hit objects are not managed by the HitObjectContainer.
2021-05-31 16:20:35 +09:00
ekrctb
84a1a86c63 Revert "Use entry to calculate lifetime in ScrollingHOC"
This reverts commit 632bb70e
2021-05-18 19:55:31 +09:00
ekrctb
2c65b8fa93 Revert "Fix uninitialized scrollLength value is used"
This reverts commit 73dfb04d
2021-05-18 19:55:25 +09:00
ekrctb
73dfb04df8 Fix uninitialized scrollLength value is used 2021-04-29 15:17:30 +09:00
ekrctb
632bb70e0f Use entry to calculate lifetime in ScrollingHOC
DHOs cannot be used to calculate lifetime, it is not created before the entry became alive.
2021-04-29 15:04:32 +09:00
ekrctb
d262956146 Always use LifetimeEntry to manage hit objects in HitObjectContainer
Previously, non-pooled DHOs were immediately added as children of the HOC when Add is called. Also, non-pooled DHOs were always attached to the HOC as children.
New behavior is that non-pooled DHOs are only added after CheckChildLifetime, and only attached to the HOC while the DHOs are alive.

- LifetimeManagementContainer inheritance of HOC is removed, as it is now all DHOs are "unmanaged" (previously `AddInternal(false)`).
- The signature of `Clear` is changed, and it is now always not disposing the children immediately.
2021-04-29 14:38:01 +09:00
smoogipoo
8295fb9081 Implement mania constant speed mod 2021-02-03 16:28:22 +09:00
ekrctb
a548269c34 Fix scrolling hit object displayed in wrong position for one frame 2020-12-07 17:26:12 +09:00
smoogipoo
7ac2fba127 More reordering of public vs private methods 2020-11-30 17:44:58 +09:00
Dean Herbert
2745659986 Reword and xmldoc some comments 2020-11-30 15:54:20 +09:00
ekrctb
6e40de58e9 Use new OnAdd and OnRemove to invalidate DHO 2020-11-27 13:36:40 +09:00
ekrctb
eae33fe74a Fix format 2020-11-26 14:16:33 +09:00
ekrctb
e43f928588 Use DHO.HitObjectApplied to invalidate computation 2020-11-26 14:07:40 +09:00
ekrctb
f6faf95e33 Revert changes to HitObjectUsageBegan, not use it. 2020-11-26 14:01:46 +09:00
ekrctb
e34a205104 Rewrite hit object management, take three 2020-11-24 18:56:05 +09:00
ekrctb
7f6e4d5b21 Delay lifetime computation until loaded 2020-11-24 18:56:05 +09:00
ekrctb
d5f082e5fb Comment about lifetime assumption 2020-11-24 18:56:05 +09:00
ekrctb
ce57e8ddfb Separate Lifetime computation and layout update 2020-11-24 18:56:05 +09:00
ekrctb
cabc8aa63b Revert "Simplify ScrollingHitObjectContainer logic"
This reverts commit b4cc39149c117e6a0e95ee917a67cec8ba723d06.
2020-11-24 18:56:05 +09:00
ekrctb
8f39b54e58 Simplify ScrollingHitObjectContainer logic 2020-11-24 18:56:05 +09:00
ekrctb
5c743adbae Support hit object pooling scrolling playfield 2020-11-24 18:56:05 +09:00
smoogipoo
8f841b47e6 Cancel previous initial state computations 2020-07-24 19:31:08 +09:00
smoogipoo
85c42456f2 Improve performance of sequential scrolling algorithm 2020-06-30 21:41:27 +09:00
Dean Herbert
cbd563e80b Rename to IHasDuration 2020-05-27 12:38:39 +09:00
Dean Herbert
417e31d77f Rename function for consistency 2020-05-26 10:17:56 +09:00
Dean Herbert
d69111c665 Fix spelling of breadth 2020-05-26 10:17:34 +09:00
Dean Herbert
8fc60d12c9 Add back comments 2020-05-25 22:09:09 +09:00
Dean Herbert
2c16619ecd Move time to position conversion to ScrollingHitObjectContainer 2020-05-25 19:32:39 +09:00
Dean Herbert
f395ef24a4
Merge branch 'master' into editor-position-snap 2020-05-22 16:42:09 +09:00
Bartłomiej Dach
6f388b731e Fix display start time in sequential scroll algorithm 2020-05-21 21:56:59 +02:00
Dean Herbert
5ad7842b91 Move ScreenSpacePositionAtTime to inside Column implementation 2020-05-21 13:33:02 +09:00
Dan Balasescu
2f12c4126a
Apply suggestions from code review
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-05-10 13:49:08 +09:00
smoogipoo
be3b77cf25 Fix potentially skipping hitobject updates 2020-05-08 20:09:59 +09:00
smoogipoo
22dda3fe02 Make ScrollingHitObjectContainer respond to defaults applied events 2020-05-08 18:49:58 +09:00
smoogipoo
86ef73aa27 Implement HitObjectContainer.Clear() 2020-04-23 11:16:59 +09:00
Dean Herbert
7b2144a1a7 Fix merge mishap 2020-04-03 23:31:46 +09:00