1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-10 07:02:58 +08:00
Commit Graph

314 Commits

Author SHA1 Message Date
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 Playfields 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