Dean Herbert
d26d4b8b79
Cache IScrollingInfo
at a HitObjectComposer
level automatically
2023-10-17 16:42:22 +09:00
Dean Herbert
1a60d6ade5
Use a DrawablePool
for mania's beat snap grid
...
I'm not sure what the cause of the issue is, but I'm also not sure why
it wasn't using `DrawablePool` (was it not around back then?).
Either way, switching to a proper pool fixes things just fine.
Resolves https://github.com/ppy/osu/issues/25009 .
2023-10-10 13:36:31 +09:00
Dean Herbert
f2e56bbb65
Fix publicly-settable bindables
2023-10-06 16:51:24 +09:00
Dean Herbert
cb0226f843
Implement new interface-based speed change visualisation support on mania/taiko
2023-09-20 15:28:13 +09:00
Dean Herbert
41a8239e49
Remvoe null default for mods which can't be null
2023-09-20 15:27:50 +09:00
Dean Herbert
37c2b330a2
Move toggle implementation to work on all scrolling rulesets automatically
2023-09-01 19:53:10 +09:00
Dan Balasescu
a2fd7707a1
Allow toggling SVs in the editor
2023-08-18 18:55:24 +09:00
Dan Balasescu
ec9e7f14a8
Disable SVs from being visualised in mania editor
2023-08-15 18:51:24 +09:00
Bartłomiej Dach
157aec5144
Fix mania key count slider still using circle size precision
2023-07-22 16:10:58 +02:00
Dean Herbert
fd2bdc10c7
Fix "key count" setting showing as "circle size" in osu!mania editor
...
Closes https://github.com/ppy/osu/issues/12904 .
2023-07-21 18:52:29 +09:00
Bartłomiej Dach
e3a89a6273
Fix remaining obvious CI inspections
2023-06-24 16:07:01 +02:00
Dean Herbert
df5b389629
Manual fixes to reduce warnings to zero
2023-06-24 01:52:53 +09:00
Dean Herbert
0ab0c52ad5
Automated pass
2023-06-24 01:00:03 +09:00
Dean Herbert
6d446d3e97
Fix incorrect colouring of beat snap grids (mania and catch)
2023-06-07 12:25:34 +09:00
Dean Herbert
f443cfb93e
Move blueprint validity conditions to allow more correct external usage of EndPlacement
...
Until now, these were haphazardly enforce inline in blueprint
implementations. The only thing stopping complete breakage is that
`EndPlacement` wasn't called (too much) from outside the blueprint,
leaving them responsible for their own placement.
By moving this conditional out of the provided paramters to
`EndPlacement`, it allows more flexible usage of that method externally.
Coming in a future PR.
2023-05-12 16:02:22 +09:00
Bartłomiej Dach
0a47ffcbdd
Match generally used casing
...
Co-authored-by: Joseph Madamba <madamba.joehu@outlook.com>
2023-05-09 07:03:13 +02:00
Dean Herbert
85d0c56cd2
Fix incorrect special style description text
...
Closes https://github.com/ppy/osu/issues/23428 .
2023-05-08 13:00:45 +09:00
Dan Balasescu
7bc8908ca9
Partial everything
2022-11-27 00:00:27 +09:00
Dean Herbert
f41b79688f
Avoid casting by accepting all Playfield
s but throwing on a bad choice
2022-10-11 16:54:41 +09:00
ekrctb
6ab29a62d0
Anchor drag box on time (catch, mania)
...
Not done for taiko because I cannot figure out how it should work with the overlapping scroll algorithm.
2022-10-11 14:23:17 +09:00
Dean Herbert
ee153a345c
Add a few more overlooked beatmap save states on setup screen modifications
2022-08-16 16:31:56 +09:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Dean Herbert
5af7641e94
Add safety against playfield potentially not being available during mania note placement
2022-05-19 15:53:53 +09:00
Dean Herbert
f7e055dbfe
Move mania note height offset application to a much more suitable location
2022-05-12 16:19:07 +09:00
Dean Herbert
c0abce918f
Add enum
to snap method as alternative to mutliple nested invocations
2022-05-12 16:19:07 +09:00
Dean Herbert
f6fc926f1a
Add xmldoc and rename methods in IPositionSnapProvider
for legibility
2022-05-05 15:58:21 +09:00
Susko3
19467e58c1
Remove unused params from BDL methods
2022-01-15 01:06:39 +01:00
Dean Herbert
1eed2436e6
Clean up unused resolved properties
2021-12-03 18:49:49 +09:00
Dean Herbert
1a26658ba4
Add description for mania special style
2021-09-05 13:40:49 +09:00
Bartłomiej Dach
565f147a5c
Add special style setting for osu!mania
2021-09-02 23:29:14 +02:00
ekrctb
9dcd0bf311
Remove IPlayfieldProvider
by caching Playfield
2021-06-17 10:15:24 +09:00
ekrctb
ef96ceb4ab
Introduce IPlayfieldProvider
2021-06-15 14:43:04 +09:00
ekrctb
d0e57f7dd9
Use HitObject
instead of DHO for mania selection blueprint layout
...
- Fix moving selected hold note between columns will cause a crash
2021-06-15 13:20:51 +09:00
Dean Herbert
bddc3121dc
Merge branch 'master' into mania-pooling
2021-05-19 17:23:45 +09:00
Dan Balasescu
ef81bdf63f
Merge branch 'master' into always-use-lifetime-entry
2021-05-18 20:10:12 +09:00
smoogipoo
562ac73e96
Merge branch 'hoc-event-queue' into mania-pooling
2021-05-18 14:54:00 +09:00
smoogipoo
72beddaadc
Remove nested blueprints from hold notes
2021-05-18 14:25:07 +09:00
smoogipoo
e621cfc4ea
Add Apply() method for applying new DHOs
2021-05-18 14:14:10 +09:00
smoogipoo
b5afe4e506
Merge branch 'hoc-event-queue' into mania-pooling
2021-05-13 21:53:38 +09:00
smoogipoo
2307889bf8
Fix incorrect cast
2021-05-13 21:41:28 +09:00
smoogipoo
98e77a30d3
Move column changing logic to ManiaSelectionHandler
2021-05-13 20:13:50 +09:00
smoogipoo
ffb6135a1b
Rework hitobject blueprints to take in hitobject models
2021-05-13 19:53:32 +09:00
ekrctb
4a93e27e83
Revert "Fix mania editor null reference"
...
This reverts commit 1d023dce
2021-05-04 16:46:30 +09:00
Dean Herbert
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
ekrctb
1d023dcedb
Fix mania editor null reference
2021-04-29 14:39:52 +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
Dean Herbert
f2e56bd306
Refactor editor selection/blueprint components to be generic
2021-04-27 19:01:29 +09:00
Dean Herbert
e8d83f2f99
Rename "EditRuleset" and "EditPlayfield" to use full "Editor" keyword
2021-04-26 14:33:30 +09:00
Dean Herbert
b37c5a8749
Rollback hold note placement when length is zero
2021-04-22 14:59:57 +09:00
Dean Herbert
119c9b4294
Fix placement blueprints not being correctly removed after a rolled back placement
2021-04-16 14:11:33 +09:00
Nathan Alo
9a02f3868c
return a string instead
2021-03-29 17:29:05 +08:00
Nathan Alo
b8b7eb4c4b
refactor logic to its own component and handle hit object to string conversion to its ruleset-specific composers
2021-03-26 15:25:20 +08:00
Dean Herbert
cd1c1bf534
Centralise cases of performing actions on the current selection
...
By moving this to a central location, we can avoid invoking the
EditorChangeHandler when there is no selection made. This helps
alleviate the issue pointed out in
https://github.com/ppy/osu/issues/11901 , but not fix it completely.
2021-02-26 14:15:13 +09:00
ekrctb
e3c035fe9c
Adjust namespace
2020-12-07 12:32:52 +09:00
Dean Herbert
9811c46e35
Rename application method to better describe what it actually does
2020-11-26 19:16:18 +09:00
smoogipoo
4ef2e9548c
Pass HitObjectComposer to BlueprintContainer via ctor
2020-11-13 16:59:37 +09:00
Dean Herbert
a3dc1d5730
Update existing implementations
2020-11-04 17:14:23 +09:00
Dean Herbert
3838f405dd
Fix missed usages
2020-10-09 18:50:05 +09:00
Dean Herbert
a65f564e45
Add icons for other ruleset editors
2020-09-09 18:40:01 +09:00
smoogipoo
385f7cf85d
Implement mania hold note body recycling
2020-08-18 17:56:48 +09:00
Dean Herbert
8fa8c561e7
Pass hitobjects as a parameter to CreateBlueprintContainer
2020-05-29 12:20:50 +09:00
Dean Herbert
6be5917eb0
Remove necessity for custom mania interface caching
2020-05-27 23:15:16 +09:00
Dean Herbert
919ff92d15
Remove unused resolved composer
2020-05-27 22:56:12 +09:00
Dean Herbert
827345ed88
Fix mania offsets
2020-05-25 22:06:02 +09:00
Dean Herbert
e7442ec3a2
Remove need for ManiaSnapResult
2020-05-25 19:33:03 +09:00
Dean Herbert
b8130bd366
Make mania selection blueprint abstract
2020-05-25 19:31:09 +09:00
Dean Herbert
ce35d09e7d
Fix incorrect alpha application to lines on rewinding
2020-05-22 12:45:37 +09:00
Dean Herbert
d529a2aefa
Remove left-over function
2020-05-22 12:28:01 +09:00
Dean Herbert
b2667bbb02
Move protected implementation down
2020-05-22 11:45:58 +09:00
Dean Herbert
6de2597958
Merge branch 'editor-position-snap' into mania-distance-snap-grid
2020-05-22 11:27:36 +09:00
Dean Herbert
8a105bdbcf
Remove unused ColumnAt method
2020-05-22 11:23:39 +09:00
Dean Herbert
a756e6d212
Add xmldoc and remove unnecessary parameter
2020-05-21 15:16:30 +09:00
Dean Herbert
a9a1c00cf1
Move responsibility placement blueprint's StartTime set to within
2020-05-21 14:50:33 +09:00
Dean Herbert
bac78707de
Move more logic to column to both clean things up and fix tests
2020-05-21 14:25:37 +09:00
Dean Herbert
5ad7842b91
Move ScreenSpacePositionAtTime to inside Column implementation
2020-05-21 13:33:02 +09:00
Dean Herbert
94bb59db0d
Merge branch 'editor-position-snap' into mania-distance-snap-grid
2020-05-21 12:50:49 +09:00
Dean Herbert
83a5913b8d
Undo beat snapping related changes
2020-05-21 12:12:21 +09:00
Dean Herbert
69db62b78a
Combine implementation of time-to-position lookup
2020-05-20 21:42:21 +09:00
Dean Herbert
63b5f1a376
Remove unnecessary IRequireHighFrequencyMousePosition
2020-05-20 21:14:20 +09:00
Dean Herbert
e3cec9cf6c
Simplify column assignment
2020-05-20 21:13:08 +09:00
Dean Herbert
7c9fbb6fcf
Split out classes
2020-05-20 21:03:03 +09:00
Dean Herbert
19e2da9c73
Fix down scrolling giving incorrect positioning data
2020-05-20 21:01:29 +09:00
Dean Herbert
26fb779f4d
Move remaining positioning logic local to hold note blueprint
2020-05-20 21:01:29 +09:00
Dean Herbert
2f78866dfb
Move positioning out of mania blueprints
2020-05-20 21:01:29 +09:00
Dean Herbert
62092e3f5b
Propagate mania column in SnapResult
2020-05-20 21:01:29 +09:00
Dean Herbert
82d6549161
Pass down snap result and remove local TimeAt usage
2020-05-20 21:01:29 +09:00
Dean Herbert
970bd86d2e
Remove local TimeAt usage in mania placement
2020-05-20 21:01:29 +09:00
Dean Herbert
23bf0d000e
Implement mania beat snapping support
2020-05-20 21:01:19 +09:00
Dean Herbert
ffb8d48fc3
Fix osu!mania editor placement regressions
2020-05-20 21:01:03 +09:00
Dean Herbert
c46bfc2532
Create SnapResult class to hold various snapping results
2020-05-20 21:00:47 +09:00
Dean Herbert
3354d48a38
Change snapping to be screen space coordinate based
2020-05-20 21:00:29 +09:00
Dean Herbert
0bc3073d49
Fix test failures
2020-05-20 15:01:32 +09:00
Dean Herbert
d31a59b074
Fix logic results in infinite loop on default timing point return
2020-05-20 14:55:36 +09:00
Dean Herbert
85156c62ef
Add xmldoc and address some code quality concerns
2020-05-19 23:05:08 +09:00
Dean Herbert
c28a9bdb80
Move load method up
2020-05-19 23:02:20 +09:00
Dean Herbert
a6f3dc53f7
Fix time value not being updated for next timing point
2020-05-19 23:01:36 +09:00
Dean Herbert
d56466e2b9
Add very basic pooling of grid lines
2020-05-19 19:07:35 +09:00
Dean Herbert
406f39e8bf
Construct online visible lines
2020-05-18 21:27:26 +09:00
Dean Herbert
b35b150f38
Simplify colouring logic
2020-05-18 19:48:51 +09:00
Dean Herbert
16e85ae0b1
Remove Grid class
2020-05-18 17:52:04 +09:00