1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-17 03:02:54 +08:00
Commit Graph

316 Commits

Author SHA1 Message Date
Dean Herbert
c356c163fa Add hit object inspector view 2023-04-04 19:03:45 +09:00
Dean Herbert
f9ebdadfe8 Move right-side editor toolbox to base HitObjectComposer
Move right-side editor toolbox to base `HitObjectComposer`
2023-04-04 19:00:56 +09:00
Bartłomiej Dach
d9ca7102f0
Use more generic wording for future-proofing 2023-02-19 15:06:40 +01:00
Bartłomiej Dach
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
Maximilian Kruse
f3522c4162 change bindable seekToHitObject to private 2023-02-19 10:18:02 +01:00
Maximilian Kruse
ddd37bb319 Add setting to disable automatic seeking after object placement 2023-02-18 19:43:45 +01:00
Derrick Timmermans
6a61e70766
Expose Ruleset from HitObjectComposer instead 2022-11-30 12:17:58 +01:00
Dean Herbert
4215f4f5d7 Merge branch 'master' into Editor-DrawableRuleset-Dependencies 2022-11-30 17:42:46 +09:00
Derrick Timmermans
93ba84e5ff
Fix code style 2022-11-27 21:48:44 +01:00
Derrick Timmermans
70c320b2e8
Provide ruleset dependencies only to Compose Placement Blueprints 2022-11-27 21:43:33 +01:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Derrick Timmermans
65e5c9a3ae
Dispose DrawableRulesetDependencies in HitObjectComposer 2022-11-25 08:27:22 +01:00
Derrick Timmermans
7b620392fe
Provide DrawableRulesetDependencies from HitObjectComposer 2022-11-24 13:13:45 +01:00
Dean Herbert
d0e6bda9ef Stop HitObjectComposer from handling Shift+Number keys 2022-10-24 15:19:36 +09:00
Dean Herbert
50e24ddd87 Add icon and radio button logic 2022-10-19 21:35:08 +09:00
Dean Herbert
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
Dean Herbert
4d99c7002b Add background behind editor toolbox groups 2022-10-13 16:36:19 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dean Herbert
17206bbebf Update screen padding and colouring to better match new designs 2022-05-24 18:43:22 +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
e83604a1fc Merge branch 'master' into cache-at-interface 2022-05-05 18:54:24 +09:00
Dean Herbert
5a1ac71d90 Remove unnecessary type specification in HitObjectComposer's caching 2022-05-05 16:44:37 +09:00
Dean Herbert
1c6a233cc0 Move snap provider caching to interfaces 2022-05-05 16:44:37 +09:00
Dean Herbert
b411b59006 Move IPlacementHandler caching to interface 2022-05-05 16:43:02 +09:00
Dean Herbert
f6fc926f1a Add xmldoc and rename methods in IPositionSnapProvider for legibility 2022-05-05 15:58:21 +09:00
Dean Herbert
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
Salman Ahmed
2e8372fe90 Minor cleanup
Just from reading diff.
2022-04-28 07:14:43 +03:00
Salman Ahmed
835898dd30 Introduce DistancedHitObjectComposer and supersede OsuToolboxComposite 2022-04-28 06:44:50 +03:00
Salman Ahmed
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
Salman Ahmed
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
Salman Ahmed
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
Salman Ahmed
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
Salman Ahmed
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
Dean Herbert
b9d9fc56af Move files to UI namespace 2022-02-14 17:51:39 +09:00
Dean Herbert
cea9cab4dc Use ExpandingButtonContainer in editor composer 2022-01-06 21:10:45 +09:00
Dean Herbert
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
Bartłomiej Dach
5cbaa028eb
Use extracted ruleset config cache implementation in DI 2021-12-23 19:02:10 +01:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
smoogipoo
bc37cb6f43 Merge branch 'master' into no-more-difficulty-control-points-info 2021-10-08 18:41:17 +09:00
Dean Herbert
b339c149d8 Copy BaseDifficulty to Beatmap<T> and move all write operations across 2021-10-06 15:10:45 +09:00
Dean Herbert
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
Dean Herbert
a3d9ab1e2e Move approach rate to EffectControlPoint 2021-09-03 16:58:16 +09:00
Dean Herbert
b29209d13f Ensure tool is always set back to select tool when beatmap becomes untimed 2021-07-19 17:08:40 +09:00
Dean Herbert
bde35d9f21 Rename radio button classes to be local to editor 2021-07-19 16:57:12 +09:00
Dean Herbert
eac9b1ec7e Disable toolbox composition buttons when beatmap is not timed 2021-07-17 02:30:13 +09: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
Dean Herbert
dd3d8e5d03 Make SelectionHandler abstract to ensure things get implemented 2021-04-27 19:01:29 +09:00
smoogipoo
fd5fbaf0db Rename ruleset wrapper class 2021-04-26 15:37:42 +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
04fa32bc34 Rename and add xmldoc for smooth seeking method 2021-01-15 16:14:21 +09:00
Dean Herbert
c9a41f9dae Make all objects in selection candidates for spatial snapping
Closes #10898.
2020-11-24 17:35:54 +09:00
smoogipoo
4ef2e9548c Pass HitObjectComposer to BlueprintContainer via ctor 2020-11-13 16:59:37 +09:00
Bartłomiej Dach
7c388f1132 Move editor playfield border locally to osu! composer 2020-10-19 21:20:13 +02:00
Bartłomiej Dach
4267d23d59 Move border to more appropriate namespace 2020-10-19 20:56:34 +02:00
Bartłomiej Dach
053c7a69a6 Fix code style issues & compilation failures 2020-10-19 20:22:48 +02:00
Dean Herbert
22bde43106
Merge branch 'master' into visible-playfield-boundary 2020-10-19 18:05:28 +09:00
Dean Herbert
ff7c904996 Add autoplay mod in editor specific ruleset construction 2020-09-28 15:48:42 +09:00
Dean Herbert
8e6bf516d9
Merge branch 'master' into editor-ternary-buttons 2020-09-25 18:30:59 +09:00
Dean Herbert
346d14d40b Rename variables to match 2020-09-25 17:45:19 +09:00
Dean Herbert
22511c36c3 Ensure toggles are not instantiated more than once for safety 2020-09-25 17:43:09 +09:00
Dan Balasescu
7b09f73fe5
Merge branch 'master' into new-combo-toggle 2020-09-25 17:33:12 +09:00
Dan Balasescu
e1fc8d76fb
Merge branch 'master' into editor-dont-block-keys-unnecessarily 2020-09-25 17:31:41 +09:00
Dean Herbert
b70a20e7f1 Avoid consuming keystrokes in editor when a modifier key is held down 2020-09-25 16:56:39 +09:00
Dean Herbert
da820c815e Add shortcut keys to toolbox gorup titles 2020-09-25 16:46:06 +09:00
Dean Herbert
a6298c60eb Fix button spacing 2020-09-25 16:44:37 +09:00
Dean Herbert
ae68dcd962 Add ternary toggle buttons to editor toolbox selection 2020-09-25 16:38:12 +09:00
Dean Herbert
bca774a0d4 Allow BlueprintContainer to specify toggles 2020-09-25 14:09:31 +09:00
Dean Herbert
3c191cfe25 Add basic xmldoc to HitObjectComposer 2020-09-25 14:08:47 +09:00
Dean Herbert
325bfdbf71 Fix hard crash on hitting an out of range key (Q~P) 2020-09-25 13:25:42 +09:00
Dean Herbert
6ebea3f6f2 Add ability to toggle editor toggles using keyboard shortcuts (Q~P) 2020-09-24 16:24:25 +09:00
Joehu
c5b684bd2e Fix typo in log when beatmap fails to load 2020-09-23 00:30:20 -07:00
Dean Herbert
432c3e17eb Fix toolbox becoming inoperable due to incorrect ordering 2020-09-11 20:23:34 +09:00
Dean Herbert
139a5acd1b Fix editor hitobjects getting masked weirdly
Closes #10124
2020-09-11 20:16:50 +09:00
Dan Balasescu
6f6adb61d7
Merge pull request #10099 from peppy/add-editor-tool-icons
Add icons for editor toolbox tools
2020-09-09 22:22:58 +09:00
Dean Herbert
d210e05629 Add a touch of spacing between toolbox groups 2020-09-09 19:20:11 +09:00
Dean Herbert
fb2aced3ac Add toggle for distance snap 2020-09-09 19:15:35 +09:00
Dean Herbert
c9f5005efd Add icons for editor toolbox tools 2020-09-09 18:40:01 +09:00
Yao Chung Hu
96f39dd350 Merge remote-tracking branch 'upstream/master' into visible-playfield-boundary 2020-09-05 01:50:13 -05:00
Dean Herbert
127330b8f9 Add 1ms lenience to avoid potential precision issues 2020-08-25 20:57:31 +09:00
Dean Herbert
6c7475f085 Fix snapped distances potentially exceeding the source distance
This results in slider placement including "excess" length, where the
curve is not applied to the placed path. This is generally not what we
want.

I considered adding a bool parameter (or enum) to change the
floor/rounding mode, but on further examination I think this is what we
always expect from this function.
2020-08-25 18:58:01 +09:00
Yao Chung Hu
0d95b768aa Rename and Move EditorPlayfieldBorder to PlayfieldBorder for general purpose 2020-07-10 07:34:48 -05:00
Dean Herbert
b9464a2aa8
Merge branch 'master' into editor-create-composer-fix 2020-06-01 15:38:15 +09:00
Dean Herbert
19be111da0
Move incorrect placed full stop
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-05-31 22:33:10 +09:00
Dean Herbert
8fa8c561e7 Pass hitobjects as a parameter to CreateBlueprintContainer 2020-05-29 12:20:50 +09:00
Dean Herbert
46689a2fbc Tidy up and complete xmldoc for HitObjectComposer 2020-05-29 11:46:32 +09:00
Dan Balasescu
1a2392aa83
Merge branch 'master' into remove-unused-mania-rprop 2020-05-28 14:57:10 +09:00
Dean Herbert
6be5917eb0 Remove necessity for custom mania interface caching 2020-05-27 23:15:16 +09:00
Dean Herbert
9a060cfb3a Allow drag selections to occur from outside the playfield 2020-05-27 20:44:15 +09:00
Dan Balasescu
b5de30ef3d
Merge branch 'master' into editor-scrolling-playfield-support 2020-05-26 14:46:58 +09:00
Dan Balasescu
98f3d790df
Merge pull request #9107 from peppy/editor-remove-size-propagation
Remove unnecessary size propagation in HitObjectComposer
2020-05-25 23:55:26 +09:00
Dean Herbert
e7442ec3a2 Remove need for ManiaSnapResult 2020-05-25 19:33:03 +09:00
Dean Herbert
af5fac471e Remove unnecessary size propagation in HitObjectComposer 2020-05-25 19:29:46 +09:00
Dean Herbert
d18eb663b1 Add tweening seek support to EditorClock 2020-05-22 16:47:52 +09:00
Dean Herbert
dd09d7830d Cache and resolve editor clock as EditorClock in all cases 2020-05-22 16:44:06 +09:00
Dean Herbert
8a47e2431b Move distance snap grid implementation to OsuHitObjectComposer 2020-05-21 17:13:22 +09:00
Dean Herbert
b1fd7da824 Merge branch 'master' into editor-position-snap 2020-05-21 15:47:20 +09:00
Dean Herbert
a9a1c00cf1 Move responsibility placement blueprint's StartTime set to within 2020-05-21 14:50:33 +09:00
Dean Herbert
e09a1bf546 Only seek forwards if not already beyond the placed object 2020-05-20 21:50:52 +09:00