9c62c90cfc
Refactor SelectionBlueprint
and MoveSelectionEvent
to work in screen-space coordinates
...
Until now, the implementation of the overrides in `SelectionBlueprint`
have been confusing to the point where I would just implement by
trial-and-error (or copying from an existing implementation). This was
due to a combination of using "object" space coordinates
(ie. the thing the `Blueprint` is operating on) and screen-space coordinates.
This change switches all event related coordinates to screen-space,
which is how we already handle rotation/scale operations. With the
introduction of other editor types where the related objects are
drawables, this also makes a lot more sense.
2021-04-29 16:10:42 +09:00
5b009c21bb
Merge branch 'master' into abstract-blueprint-handling
2021-04-29 16:10:22 +09:00
61b7dc1e06
Fix bonus-only maps having 700K base score
2021-04-28 03:42:29 +09:00
5fc731967b
Merge pull request #12592 from ekrctb/fix-entry-lifetime
...
Fix Setting DHO's lifetime doesn't update its entry lifetime
2021-04-28 01:38:19 +09:00
1281993f1f
Fix bonus score not calculated from the correct statistics
2021-04-27 22:42:58 +09:00
b87446a577
Simplify HitObjectLifetimeEntry logic a bit
2021-04-27 19:37:01 +09:00
2adc751e04
Merge pull request #12585 from LumpBloom7/Reset-DHO-Transforms-method
...
Add method to safely refresh DrawableHitObject transforms
2021-04-27 19:15:12 +09:00
7ec5ea1eb5
Remove hitobject terminology from base classes
2021-04-27 19:01:29 +09:00
dd3d8e5d03
Make SelectionHandler
abstract to ensure things get implemented
2021-04-27 19:01:29 +09:00
f2e56bd306
Refactor editor selection/blueprint components to be generic
2021-04-27 19:01:29 +09:00
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
ec1c336b0a
Fix a couple of inspections
2021-04-27 13:23:14 +09:00
08a232f7fa
Add method to safely refresh DrawableHitObject transforms
2021-04-26 20:08:40 +02:00
6d2a5b614c
Merge branch 'master' into drawable-object
2021-04-26 18:33:44 +09:00
fd5fbaf0db
Rename ruleset wrapper class
2021-04-26 15:37:42 +09: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
739d83da2a
Merge pull request #12515 from frenzibyte/legacy-scores-classic-mod
...
Apply "classic" mod to all legacy scores
2021-04-22 19:52:09 +09:00
d4d78f7434
Merge branch 'master' into legacy-scores-classic-mod
2021-04-22 18:44:20 +09:00
9a7bf8109f
Allow certain mouse input to pass through PlacementBlueprints
to the selection logic
2021-04-22 15:44:12 +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
cf55383fff
Merge pull request #12486 from ekrctb/unmanaged-hit-object-entry
...
Associate DrawableHitObject with HitObjectLifetimeEntry rather than HitObject
2021-04-21 17:08:21 +09:00
e90d791754
Add base "classic" mod
2021-04-21 09:14:19 +03: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
0e6b66f457
Merge branch 'master' into bg-audio-quality-checks
2021-04-20 02:36:13 +02:00
1bc63a4c61
Now, DHO.lifetimeEntry can be non-null even it is not fully applied
2021-04-20 09:22:16 +09:00
4510e795e1
Fix category of audio quality check
2021-04-20 02:13:26 +02:00
c1b4aaaa03
Add doc comment
2021-04-20 08:38:02 +09:00
c633f15565
Add audio quality check
2021-04-20 01:36:03 +02:00
40ae856dfc
Show 2 decimals for background filesize
2021-04-20 01:34:05 +02:00
14c626ffcb
Use the playable beatmap for file presence checks
2021-04-20 01:33:19 +02:00
8656176ab8
Add the playable beatmap as check argument
...
This is different from the working beatmap's `.Beatmap` property in that it is mutated by the ruleset/editor.
So hit objects, for example, are actually of type `Slider` and such instead of the legacy `ConvertSlider`.
This should be preferred over `workingBeatmap.Beatmap`.
2021-04-20 01:31:51 +02:00
fc41ad65f8
Merge pull request #12447 from smoogipoo/fix-non-60fps-recording
...
Record every 60fps interval
2021-04-19 23:26:58 +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
9a69ca34a6
Add audio presence check
2021-04-18 02:07:57 +02:00
010720de74
Factor out general file presence checking
...
This allows us to use the same method of checking for other files that should exist, for example the audio file.
By using the same method, they all share test cases too.
2021-04-18 02:07:33 +02:00
56bf49c85c
Take IWorkingBeatmap
instead of WorkingBeatmap
...
This makes testing much easier, and allows for checking of any class deriving from that interface, including `WorkingBeatmap`.
2021-04-18 01:21:20 +02:00
abf512532e
Clean up check logic
...
Makes use of the new `BeatmapSet.GetPathForFile` method and removes dependency on `WorkingBeatmap` specifically, allowing us to switch to `IWorkingBeatmap` later.
2021-04-18 01:19:25 +02:00