Commit Graph

263 Commits

Author SHA1 Message Date
d9ca7102f0 Use more generic wording for future-proofing 2023-02-19 15:06:40 +01:00
aac32a2c9f Combine config and time checks into one
Functionally equivalent right now, but the combined variant is more
localised to what it actually needs to do, and less error-prone if
any new code gets appended to the method.
2023-02-19 13:14:51 +01:00
f3522c4162 change bindable seekToHitObject to private 2023-02-19 10:18:02 +01:00
ddd37bb319 Add setting to disable automatic seeking after object placement 2023-02-18 19:43:45 +01:00
6a61e70766 Expose Ruleset from HitObjectComposer instead 2022-11-30 12:17:58 +01:00
4215f4f5d7 Merge branch 'master' into Editor-DrawableRuleset-Dependencies 2022-11-30 17:42:46 +09:00
93ba84e5ff Fix code style 2022-11-27 21:48:44 +01:00
70c320b2e8 Provide ruleset dependencies only to Compose Placement Blueprints 2022-11-27 21:43:33 +01:00
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
65e5c9a3ae Dispose DrawableRulesetDependencies in HitObjectComposer 2022-11-25 08:27:22 +01:00
7b620392fe Provide DrawableRulesetDependencies from HitObjectComposer 2022-11-24 13:13:45 +01:00
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