Commit Graph

252 Commits

Author SHA1 Message Date
d0e6bda9ef Stop HitObjectComposer from handling Shift+Number keys 2022-10-24 15:19:36 +09:00
6a7f6c76ff Fix osu! editor padding being applied to toolboxes
The result of https://github.com/ppy/osu/pull/20739 and https://github.com/ppy/osu/pull/20738 having unintended side effects when applied together.
2022-10-18 14:32:00 +09:00
4d99c7002b Add background behind editor toolbox groups 2022-10-13 16:36:19 +09:00
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
17206bbebf Update screen padding and colouring to better match new designs 2022-05-24 18:43:22 +09:00
c0abce918f Add enum to snap method as alternative to mutliple nested invocations 2022-05-12 16:19:07 +09:00
e83604a1fc Merge branch 'master' into cache-at-interface 2022-05-05 18:54:24 +09:00
5a1ac71d90 Remove unnecessary type specification in HitObjectComposer's caching 2022-05-05 16:44:37 +09:00
1c6a233cc0 Move snap provider caching to interfaces 2022-05-05 16:44:37 +09:00
b411b59006 Move IPlacementHandler caching to interface 2022-05-05 16:43:02 +09:00
f6fc926f1a Add xmldoc and rename methods in IPositionSnapProvider for legibility 2022-05-05 15:58:21 +09:00
b325f0ee0b Combine editor toolbox container implementation and fix input blocking
Until now, toolbox scroll areas would block input from arriving behind
them, even when no visible element was clicked.

In addition, clicking on a button inside a toolbox would still send a
`MouseDown` event to things behind it. Specifically, the editor's
`HitObjectComposer` would receive these events and also place objects
when the user does not expect them to be placed.

This fixes another regression that occurred due to `ScrollContainer`s no
longer blocking input theirselves.
2022-05-04 17:41:30 +09:00
2e8372fe90 Minor cleanup
Just from reading diff.
2022-04-28 07:14:43 +03:00
835898dd30 Introduce DistancedHitObjectComposer and supersede OsuToolboxComposite 2022-04-28 06:44:50 +03:00
8ed39009fd Encapsulate distance spacing control handling to a "distance toolbox composite"
Encapsulated in a way which can allow further extensibility for the
right-side area of toolboxes.
2022-04-24 08:33:03 +03:00
0992bec2c8 Change "distance spacing" multipler type to double
Avoids losing precision on initial load, causing an unnecessary
hash change in `EditorChangeHandler`.

Resolves test failures in `TestSceneEditorChangeStates`
(https://github.com/ppy/osu/runs/5192493482?check_suite_focus=true).
2022-02-16 03:28:12 +03:00
868dcd20f5 Remove e.ShiftPressed handling for now
Broken on macOS, will be handled differently later on as discussed.
2022-02-15 02:21:53 +03:00
528dc03b8c Expose distance spacing in IPositionSnapProvider for updating distance grid
Alternate method is to expose a `SnapDistancesChanged` event in
`IPositionSnapProvider` instead, but I chose this way as an analogue to
`IBeatSnapProvider.BeatDivisor`, which might even make sense to be
exposed as `BindableBeatDivisor` instead of caching that separately.
2022-02-15 02:21:53 +03:00
19ee05c232 Add "distance spacing" multiplier for osu! ruleset
While osu!catch also implements a distance snap grid, it doesn't rely on
`GetBeatSnapDistanceAt` (unlike osu!), therefore it can't have the
"distance spacing" multiplier yet.
2022-02-15 02:21:53 +03:00
b9d9fc56af Move files to UI namespace 2022-02-14 17:51:39 +09:00
cea9cab4dc Use ExpandingButtonContainer in editor composer 2022-01-06 21:10:45 +09:00
ef2a4aed9a Fix editor playfield not being centered correctly
This has come up multiple times, with mappers citing that they have
muscle memory for mapping based on the centre of the playfield being in
the centre of the window.

The original plan was to have a second toolbar on the right hand side of
the screen to balance the padding, but we're not at that point yet.
Easiest solution is to do what stable does and allow the left-hand
toolbar items to overlap the playfield underneath it.

In edge cases where the user is running at an aspect ratio that causes
overlaps, they can choose to collapse the toolbars down. We can probably
work on this UI/UX a bit more as we update designs to be more friendly
to such cases.
2022-01-05 16:05:18 +09:00
5cbaa028eb Use extracted ruleset config cache implementation in DI 2021-12-23 19:02:10 +01:00
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
bc37cb6f43 Merge branch 'master' into no-more-difficulty-control-points-info 2021-10-08 18:41:17 +09:00
b339c149d8 Copy BaseDifficulty to Beatmap<T> and move all write operations across 2021-10-06 15:10:45 +09:00
d4e5a612ea Update IPositionalSnapProvider to take a HitObject as reference, rather than raw time
This allows fetching the correct `DifficultyControlPoint` from the
hitobject. Nothing more.
2021-09-03 17:11:12 +09:00
a3d9ab1e2e Move approach rate to EffectControlPoint 2021-09-03 16:58:16 +09:00
b29209d13f Ensure tool is always set back to select tool when beatmap becomes untimed 2021-07-19 17:08:40 +09:00
bde35d9f21 Rename radio button classes to be local to editor 2021-07-19 16:57:12 +09:00
eac9b1ec7e Disable toolbox composition buttons when beatmap is not timed 2021-07-17 02:30:13 +09:00
9dcd0bf311 Remove IPlayfieldProvider by caching Playfield 2021-06-17 10:15:24 +09:00
ef96ceb4ab Introduce IPlayfieldProvider 2021-06-15 14:43:04 +09:00
dd3d8e5d03 Make SelectionHandler abstract to ensure things get implemented 2021-04-27 19:01:29 +09:00
fd5fbaf0db Rename ruleset wrapper class 2021-04-26 15:37:42 +09:00
9a02f3868c return a string instead 2021-03-29 17:29:05 +08:00
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
04fa32bc34 Rename and add xmldoc for smooth seeking method 2021-01-15 16:14:21 +09:00
c9a41f9dae Make all objects in selection candidates for spatial snapping
Closes #10898.
2020-11-24 17:35:54 +09:00
4ef2e9548c Pass HitObjectComposer to BlueprintContainer via ctor 2020-11-13 16:59:37 +09:00
7c388f1132 Move editor playfield border locally to osu! composer 2020-10-19 21:20:13 +02:00
4267d23d59 Move border to more appropriate namespace 2020-10-19 20:56:34 +02:00
053c7a69a6 Fix code style issues & compilation failures 2020-10-19 20:22:48 +02:00
22bde43106 Merge branch 'master' into visible-playfield-boundary 2020-10-19 18:05:28 +09:00
ff7c904996 Add autoplay mod in editor specific ruleset construction 2020-09-28 15:48:42 +09:00
8e6bf516d9 Merge branch 'master' into editor-ternary-buttons 2020-09-25 18:30:59 +09:00
346d14d40b Rename variables to match 2020-09-25 17:45:19 +09:00
22511c36c3 Ensure toggles are not instantiated more than once for safety 2020-09-25 17:43:09 +09:00
7b09f73fe5 Merge branch 'master' into new-combo-toggle 2020-09-25 17:33:12 +09:00
e1fc8d76fb Merge branch 'master' into editor-dont-block-keys-unnecessarily 2020-09-25 17:31:41 +09:00