3ea55314f2
Update osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs
...
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me >
2021-04-27 11:29:16 +02:00
3899e500d3
Adopt framework change of LifetimeEntry
...
Override SetLifetimeStart/SetLifetimeEnd separately to track individual assignment. It is necessary to ensure real lifetime is not lost when lifetime is partially updated.
2021-04-27 17:54:18 +09:00
c9e6ca5378
Use now-public Entry.SetLifetime method
2021-04-27 15:25:05 +09:00
a2c0951d94
Use overriding instead of hiding in HitObjectLifetimeEntry
...
Hidden properties are used when the type is the base class. It caused issues when `DrawableHitObject` logic is factored out to `PoolableDrawableWithLifetime` because it is using the base `LifetimeEntry`, not `HitObjectLifetimeEntry`.
2021-04-27 15:23:33 +09:00
a3570e18dd
Add concurrent objects check
...
Here we use `IHasColumn` to support rulesets with columns, and so I moved that interface out into `osu.Game` from `osu.Game.Rulesets.Mania`.
We also use the same threshold as the unsnap check to ensure that no problems slip through. Specifically where an object is simultaneously not concurrent and not unsnapped but still on the same tick.
2021-04-26 20:17:18 +02:00
08a232f7fa
Add method to safely refresh DrawableHitObject transforms
2021-04-26 20:08:40 +02:00
6561a7c7d6
Rename DrawableObject -> PoolableDrawableWithLifetime
2021-04-26 12:06:21 +09:00
20e3cadd30
freeIfInUse -> free, and add comments
2021-04-26 12:04:59 +09:00
e6474e6ff7
Remove redundant statement (lifetime is set in base)
2021-04-26 11:47:38 +09:00
b877a29737
Factor out pooling and lifetime management logic of DHO to a base class
2021-04-21 17:37:42 +09:00
bbf2ec369b
Remove SkinReloadableDrawable inheritance from DHO
2021-04-21 17:34:57 +09:00
3fbeadf318
Deprecate old overload of Apply
2021-04-21 14:32:37 +09:00
73d3da1687
Fix wrong InitialLifetimeOffset is used for a non-pooled DHO.
...
HitObjectLifetimeEntry's InitialLifetimeOffset is different from DrawableHitObject's InitialLifetimeOffset.
2021-04-21 11:32:01 +09:00
44ff08cce4
Revert "Fix wrong InitialLifetimeOffset is used for a non-pooled DHO."
...
This reverts commit 67fcfd9d
2021-04-21 10:02:50 +09:00
67fcfd9dbc
Fix wrong InitialLifetimeOffset is used for a non-pooled DHO.
...
HitObjectLifetimeEntry's InitialLifetimeOffset is different from DrawableHitObject's InitialLifetimeOffset.
2021-04-21 09:48:16 +09:00
e80c3c317a
Rename UnmanagedHitObjectEntry -> SyntheticHitObjectEntry
...
"Unmanaged" was confusing because its lifetime is still managed by the HitObjectContainer.
2021-04-21 09:23:23 +09:00
c6ee4e900e
Ensure a non-null hitobject entry has a non-null Result
2021-04-20 15:18:36 +09:00
8a8b9084ef
Make single-argument overloead of DHO.Apply public
2021-04-20 10:11:36 +09:00
1bc63a4c61
Now, DHO.lifetimeEntry can be non-null even it is not fully applied
2021-04-20 09:22:16 +09:00
c1b4aaaa03
Add doc comment
2021-04-20 08:38:02 +09:00
2c487ddb70
Create synthetic LifetimeEntry for a DHO when not supplied
...
Now, a DHO is always associated with a HitObjectLifetimeEntry while used.
Result is always stored in the entry, and not in the DHO.
2021-04-19 21:54:19 +09:00
5afdc3ff66
Make DHO application logic clearer with Entry/HitObject separation
2021-04-19 19:56:17 +09:00
d38e294d96
Centralise length validation function
2021-04-16 15:45:24 +09:00
50fad47ebc
Remove usage of Lazy<List<...>> for NestedHitObjects
2021-04-15 18:26:01 +09:00
b5954a55ad
Remove empty <returns> xmldoc
2021-04-12 17:46:14 +09:00
76981f2547
Remove unused using
2021-04-09 13:58:24 +09:00
8293b06c0a
Remove obsolete code
2021-04-09 13:56:58 +09:00
a8839792fd
Merge branch 'master' into circular-arc-freeze
2021-04-08 14:33:03 +09:00
4b29d0ebe2
Fix last control point starting new segment
2021-04-05 17:49:36 +09:00
7b684339ed
Undo public -> internal for PathControlPoint.Changed
...
No longer used.
2021-03-31 20:32:49 +02:00
4ae3eaaac6
Move path type correction
...
This is better because `PathControlPointVisualizer` is local to the editor, meaning there is no chance that this could affect gameplay.
2021-03-24 03:02:19 +01:00
e922e67c98
Fix inverted return statement
...
Forgot to run tests, all passing now.
2021-03-22 19:48:21 +01:00
3fa5852e00
Add method documentation
2021-03-22 19:42:27 +01:00
b11fd7972a
Separate condition logic from math logic
2021-03-22 19:41:48 +01:00
92f713a30e
Improve fallback conditions
...
It's possible to create a `PerfectCurve` type path with more than 3 points currently, so this accounts for that.
2021-03-22 19:10:56 +01:00
80e7c3aba7
Invert if statement
2021-03-22 19:09:28 +01:00
6911a1b415
Fix missing newline
2021-03-22 19:03:55 +01:00
a7076c329c
Fix null checks
2021-03-22 17:32:55 +01:00
323b875cea
Fix newlines/spaces
2021-03-22 17:32:40 +01:00
c82218627f
Add path type update logic
...
Only attempts to change points to bezier if points in the slider are modified.
2021-03-22 15:57:57 +01:00
7a2cb526e4
Add PointsInSegment method
2021-03-22 15:55:30 +01:00
bee2f55d00
Undo subpath limiting
2021-03-22 15:54:33 +01:00
fcd1f4930f
Fix freeze due to large circular arc radius
...
Seems to stem from the osu!framework's PathApproximator not catching a few edge cases wherein the radius approaches infinity.
2021-03-21 06:34:55 +01:00
dff1d80f39
Update HasFlag usages to HasFlagFast
2021-02-25 15:38:56 +09:00
9cc63e8dce
Remove obsoleted IHasEndTime
2021-01-06 18:38:24 +01:00
539785e422
Remove obsoleted IHasCurve
2021-01-06 18:38:24 +01:00
09742998cd
Fix mistaken obsoletion notice
...
It was added in c9f38f7bb6
, which
specified 2021 in another place (and was committed in October of 2020
anyway). Update the year so that it doesn't get culled prematurely.
2021-01-06 18:38:24 +01:00
a31e8d137f
Add guard when clearing samples
2020-12-20 15:42:24 +01:00
a0f92628ac
Merge branch 'master' into fix-sample-expire
2020-12-04 13:49:08 +09:00
5ded4b9faa
Merge branch 'master' into dho-remove-onparentreceived
2020-12-04 11:04:56 +09:00