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

2748 Commits

Author SHA1 Message Date
OliBomby
8a331057b0 Make it actually possible to change grid type 2024-01-01 15:13:10 +01:00
OliBomby
f223487e1c improve code 2024-01-01 15:13:10 +01:00
OliBomby
0ce1a48e68 Add comment 2024-01-01 15:13:10 +01:00
OliBomby
a20c430d6f fix wrong grid cache being used 2024-01-01 15:13:10 +01:00
OliBomby
d0c8b285ce clean up code duplication 2024-01-01 15:13:10 +01:00
OliBomby
92c3b142a4 Added Triangular snap grid 2024-01-01 15:11:50 +01:00
OliBomby
f2edd705ea add rotation to snapped position 2024-01-01 15:11:49 +01:00
OliBomby
f3b88c318b Add rotation to snap grid visual 2024-01-01 15:11:49 +01:00
iminlikewithyou
5ae5d7f92d change floor to round 2023-12-30 23:59:47 -06:00
Bartłomiej Dach
99cddb6317
Use alternative workaround 2023-12-29 11:07:45 +01:00
Bartłomiej Dach
cd1f6b46c4
Fix crash after changing audio track in editor
Closes https://github.com/ppy/osu/issues/26213.

Reproduction scenario: switch audio track in editor after timeline
loads.

Happens because `beatmap.Value.Track.Length` is 0 immediately after a
track switch, until BASS computes the actual track length on the audio
thread.

Yes this is a hack. No I have no better immediate ideas how to address
this otherwise.
2023-12-29 10:37:36 +01:00
Bartłomiej Dach
53766285ce
Remove remaining hexacons usages 2023-12-27 17:42:18 +01:00
Bartłomiej Dach
288ac930e4
Use new icons in editor
Some that exist on figma are purposefully not used due to an editorial
request from @peppy.
2023-12-27 17:42:18 +01:00
Dean Herbert
03e2463b06
Add test coverage and refactor to better handle equality edge case 2023-12-26 21:21:08 +09:00
Dean Herbert
1f2f749db6
Fix selection not being retained in control point list when undoing / redoing 2023-12-26 21:04:42 +09:00
Dean Herbert
f2c0e7cf2e
Fix editor's control point list refreshing multiple times for a single change 2023-12-26 21:04:42 +09:00
Dean Herbert
f9e47242db
Add visual offset to better align editor waveforms with expectations 2023-12-26 17:44:49 +09:00
OliBomby
c167f10ad5 fix crash from dragging near zero-length repeating object in timeline 2023-12-19 21:20:45 +01:00
Dean Herbert
0be6743e87
Apply Bindable.Parse refactorings 2023-12-13 14:07:38 +09:00
Dean Herbert
0af16732b8
Change default slider velocity to 1.4
This is the default in osu!stable and plays better than 1.0.
2023-12-06 13:38:46 +09:00
Guido
8756dd25c6 Changed file chooser in resource selection to show file name when file is selected 2023-12-04 22:51:56 +01:00
Dean Herbert
340227a06d
Replace all hexacon lookups with strongly typed properties 2023-11-24 13:17:39 +09:00
Dean Herbert
21bf288277
Merge pull request #25520 from peppy/context-menu-spacers
Allow context menus to have visible spacers
2023-11-21 16:56:36 +09:00
Bartłomiej Dach
d83b2e24e7
Merge pull request #25371 from RatinFX/open-editor-timestamp
Implement opening editor timestamp links
2023-11-21 15:48:36 +09:00
Dean Herbert
7c5345bf7e
Use SimpleErrorNotification for error display 2023-11-21 15:10:41 +09:00
Dean Herbert
917a68eac3
Adjust localisablel strings and keys 2023-11-21 15:08:15 +09:00
Dean Herbert
405ab499e9
Allow context menus to have visible spacers 2023-11-21 14:24:10 +09:00
Bartłomiej Dach
b6215b2809
Rename and document SelectFromTimestamp 2023-11-20 21:57:14 +09:00
Bartłomiej Dach
234ef6f923
Rectify selection keep-alive logic 2023-11-20 21:57:14 +09:00
Bartłomiej Dach
246aacb216
Remove unnecessary guard
Setting a bindable's value to something if that value is already there
is a no-op (doesn't trigger bindings / callbacks).
2023-11-20 21:57:14 +09:00
Bartłomiej Dach
0e0ab66148
Simplify parsing code
Less methods, less smeared around logic, saner data types.
2023-11-20 21:57:12 +09:00
ratinfx
4e1e19728c Refactor HitObject selection in Composer 2023-11-11 14:02:42 +01:00
Dean Herbert
35e11c7c63
Rename diagonal scale variable and update xmldoc 2023-11-10 17:55:02 +09:00
Dean Herbert
ec3b6e47fb
Change selection handling to adjust Size instead of Scale for edge nodes 2023-11-10 14:22:28 +09:00
ratinfx
544d5d1d86 Forgot a clock.Stop call 2023-11-07 12:23:22 +01:00
ratinfx
bdbeb2bce4 Renamed CollectionChanged event handler 2023-11-07 11:11:32 +01:00
ratinfx
aa87e0a44d HitObject Selection logic and separation for gamemodes
+ moved time_regex into EditorTimestampParser
2023-11-07 01:36:58 +01:00
ratinfx
44f127c8a8 Renamed method and made private 2023-11-07 01:02:45 +01:00
ratinfx
0834b79cc7 Renamed method and moved Notifications inside 2023-11-07 00:56:24 +01:00
Salman Ahmed
b2749943e2 Display "required save" popup when creating another difficulty on a new beatmap 2023-11-06 21:54:40 +03:00
Dean Herbert
51c891e2e4
Automatically refresh the verify screen's issue list on re-entering it
Addresses https://github.com/ppy/osu/discussions/25365.
2023-11-06 19:34:36 +09:00
ratinfx
277cf7dc12 Ensure every SelectedItem is alive and has Blueprint 2023-11-05 18:26:51 +01:00
ratinfx
7492d953ae Moved error checks into Editor
- Invoke Action on error to Notify user
- added some comments
2023-11-04 21:17:58 +01:00
ratinfx
60f62faec3 Renamed Editor method 2023-11-04 03:30:38 +01:00
ratinfx
43ab7f4942 Added OpenEditorTimestamp base implementation 2023-11-04 02:01:18 +01:00
Bartłomiej Dach
850866e7f4
Merge pull request #25316 from peppy/metronome-always-play-tick
Decouple metronome tick playback from pendulum movement
2023-10-31 09:37:29 +01:00
Bartłomiej Dach
144006fbe8
Update autoselect implementation to work correctly with framework changes 2023-10-31 08:38:22 +01:00
Bartłomiej Dach
8a68333425
Merge branch 'master' into beat-divisor-select-text-on-click 2023-10-31 08:36:53 +01:00
Dean Herbert
64efc3d251
Decouple metronome tick playback from pendulum movement
Not super happy about doing this, but it seems like it's in the best
interest of editor usability.
2023-10-31 15:33:46 +09:00
Dean Herbert
f706fd2fca
Merge pull request #25307 from bdach/slider-velocity-undo
Fix slider velocity changes not being undone correctly
2023-10-31 01:44:18 +09:00
Bartłomiej Dach
cea24298cb
Privatise setters 2023-10-30 12:42:34 +01:00
Bartłomiej Dach
de89b7e53c
Fix slider velocity changes not being undone correctly
Closes https://github.com/ppy/osu/issues/25239.

`LegacyEditorBeatmapPatcher.processHitObjectLocalData()` was already
supposed to be handling changes to hitobjects that will show up neither
when comparing the hitobjects themselves or the timing point with
"legacy" info stripped - so, in other words, changes to slider velocity
and samples.

However, a change to slider velocity requires default application to
take effect, so just resetting the value would visually fix the timeline
marker but not change the actual object. Calling
`EditorBeatmap.Update()` fixes this by way of triggering default
re-application.

This could probably be smarter (by only invoking the update when
strictly necessary, etc.) - but I'm not sure it's worth the hassle. This
is intended to be a quick fix, rather than a complete solution - the
complete solution would indeed likely entail a wholesale restructuring
of the editor's change handling.
2023-10-30 10:59:02 +01:00
Dean Herbert
63e6eaf538
Fix failing tests 2023-10-30 18:06:11 +09:00
Dean Herbert
57d88a0ac4
Fix right clicks on timeline objects potentially getting eaten by playfield area
`SelectionHandler` is receiving input from anywhere out of necessity:

19f892687a/osu.Game/Screens/Edit/Compose/Components/SelectionHandler.cs (L119-L125)

Also important is that `BlueprintContainer` will selectively not block
right clicks to make sure they fall through to the
`ContextMenuContainer`:

19f892687a/osu.Game/Screens/Edit/Compose/Components/BlueprintContainer.cs (L122-L126)

But because the whole editor is sharing a `ContextMenuContainer` and
it's at a higher level than both components, we observe here the
playfield's `SelectionHandler` intercepting the right click before it
can reach the `ContextMenuContainer`.

The fix here is similar to what we're already doing in
`TimelineBlueprintContaienr`.
2023-10-30 18:06:11 +09:00
Dean Herbert
6934e045df
Fix editor not prompting before saving beatmap for export 2023-10-25 14:39:46 +09:00
Bartłomiej Dach
12282fff5c
Disallow setting sample volume lower than 5% in editor 2023-10-20 15:50:21 +02:00
Dean Herbert
52c2eb93de
Merge branch 'master' into taiko-beat-snap-grid 2023-10-19 23:53:01 +09:00
Dean Herbert
5341a335a6
Bypass Parent nullability checks for now 2023-10-17 17:48:45 +09:00
Dean Herbert
2a89a25790
Add beat snap grid to osu!taiko editor
Addresses https://github.com/ppy/osu/discussions/25150.
2023-10-17 16:59:56 +09:00
Dean Herbert
1b9acdf55c
Abstract out common implementation of BeatSnapGrid 2023-10-17 16:42:52 +09:00
Dean Herbert
1005b7ac85
Fix incorrect test assumption in TestSceneEditorClock
I don't know what this test was trying to do, but it was wrong. Any
offset which is applied should be invisible to the clock's final
`CurrentTime` (and to the user).
2023-10-06 16:43:28 +09:00
Dean Herbert
354193c53a
Merge branch 'master' into clock-fix-attempt-2 2023-10-06 16:43:27 +09:00
Dean Herbert
61fd4186af
Ensure regenerateDisplay is eventually performed if originally called before load 2023-10-05 22:55:23 +09:00
Dean Herbert
76cc2f9f22
Fix WaveformComparisonDisplay potentially crashing on invalid track length
As seen at https://github.com/ppy/osu/runs/17415814918#r0s2.
2023-10-05 14:58:55 +09:00
Dean Herbert
5a17a86d1d Merge branch 'master' into clock-fix-attempt-2 2023-10-04 16:57:49 +09:00
Dean Herbert
7908b36b39 Flash dialog popup when attempting to exit editor while exit is being blocked 2023-09-28 15:25:39 +09:00
Dean Herbert
faa0481fc6 Fix editor operating directly on track rather than decoupled clock 2023-09-22 16:22:36 +09:00
Dean Herbert
df08c4e1ad Disable decoupling for OsuGameBase's beatmap implementation
This avoids it ever mutating the underlying track (aka attempting to start
it). Resolves the one caveat mentioned in
aeef92fa710648d4a00edc523e13c17ac6104125.
2023-09-22 12:49:25 +09:00
Dean Herbert
600651795b Change FramedBeatmapClock to always be decoupled 2023-09-22 12:49:25 +09:00
Salman Ahmed
9e4a56d64e
Merge branch 'master' into update-framework 2023-09-21 19:49:20 +03:00
Dean Herbert
bf984388b3 Update clocks in line with framework changes 2023-09-20 21:17:08 +09:00
Dean Herbert
c5397bdbb3
Merge branch 'master' into mania-edit-disable-sv 2023-09-20 14:23:07 +09:00
Dean Herbert
1a37543d28 Rename SliderVelocity to SliderVelocityMultiplier to distinguish from Velocity 2023-09-06 19:01:08 +09:00
Hồ Nguyên Minh
d5a89c4c45 Fix formatting 2023-09-04 13:32:42 +07:00
Hồ Nguyên Minh
b17a55d6a8 Add length check for slider velocity 2023-09-04 10:43:05 +07:00
Wleter
fc4069f794 let SelectionBox perform flip with scale handles 2023-09-01 13:01:51 +02:00
Dean Herbert
0f5eff1230 Merge branch 'master' into mania-edit-disable-sv 2023-09-01 19:08:48 +09:00
Wleter
14ee0ee395
Merge branch 'ppy:master' into skin-editor-selection-negative-scaling 2023-08-29 17:30:55 +02:00
Wleter
d56ab0fe9a change names 2023-08-29 17:25:52 +02:00
Wleter
07e126241d working negative scaling 2023-08-28 16:41:55 +02:00
Dean Herbert
081fb308e1 Merge branch 'master' into new-overlay-sfx 2023-08-24 18:29:00 +09:00
Dean Herbert
8120c3f87a
Merge branch 'master' into precise-rotation-2 2023-08-19 23:25:42 +09:00
Dan Balasescu
a2fd7707a1 Allow toggling SVs in the editor 2023-08-18 18:55:24 +09:00
Dean Herbert
9023059bc0 Convert to switch statement 2023-08-18 17:27:09 +09:00
OliBomby
360f9750e1 Allow selecting empty control point groups 2023-08-17 16:30:18 +02:00
Jamie Taylor
d10d7b6ea4
Change some component samples to go better with overlay pop-in samples 2023-08-17 18:36:37 +09:00
Jamie Taylor
3d7ba0e18c
Add pop-in/pop-out sfx to more overlays 2023-08-17 18:36:37 +09:00
Bartłomiej Dach
19f892687a
Add precise rotation control to osu! editor 2023-08-16 11:37:52 +02:00
Bartłomiej Dach
bdf87e43db
Merge branch 'master' into slider-with-textbox-instantaneous 2023-08-16 10:48:45 +02:00
Dean Herbert
5bd7370439 Add log output when editor is creating a fresh beatmap 2023-08-16 14:23:17 +09:00
Joseph Madamba
49f5d6813e
Block beatmap editor from testing/exiting/exporting when saving fails 2023-08-04 22:08:25 -07:00
Bartłomiej Dach
2e2b0c4e41
Move SliderWithTextBoxInput to more general namespace 2023-08-01 01:01:36 +02:00
Bartłomiej Dach
ebe5dd2ac9
Interface with SelectionRotationHandler via DI rather than explicit passing 2023-07-30 20:21:41 +02:00
Bartłomiej Dach
262f25dce8
Make SelectionRotationHandler a Component 2023-07-30 20:18:33 +02:00
Bartłomiej Dach
821cd08f34
Merge branch 'master' into selection-operations-refactor 2023-07-30 19:29:06 +02:00
Bartłomiej Dach
e208f38bcb
Merge pull request #24361 from peppy/fix-editor-global-music-hotkey-conflicts
Disallow interacting with the global track state in `Player` and `Editor`
2023-07-30 12:28:53 +02:00
Dean Herbert
945d89e955 Move disables to loading screens for better coverage of edge cases 2023-07-30 13:45:42 +09:00
Bartłomiej Dach
c6f0cf50ca
Use better safety in rectangular grid
- Checking `DrawSize != Vector2.Zero` is too specific. It could also
  crash on zero-height-but-non-zero-width, or
  zero-width-but-non-zero-height.

- Take the `gridCache.Validate()` call out of the zero checks, because
  even if the width or height are zero, not generating anything is valid
  and there is no reason to validate every frame until `gridCache` gets
  invalidated again.
2023-07-28 22:57:02 +02:00
Dean Herbert
0e4db9b439 Add safety in RectangularPositionSnapGrid that size is greater than zero
Would crash otherwise
2023-07-28 16:25:40 +09:00
Dean Herbert
7fd6bb9d5f Fix a couple of code style issues in SelectionBox 2023-07-26 14:04:38 +09:00
Dean Herbert
39c2bb240b Apply NRT to SelectionBoxRotationHandle. 2023-07-26 14:04:21 +09:00
Bartłomiej Dach
3b9f250c1b
Merge branch 'master' into menu-star-fountains 2023-07-25 21:58:13 +02:00
Dean Herbert
3485b72eaa Disallow interacting with the global track state in Player and Editor 2023-07-25 20:20:53 +09:00
Dean Herbert
157b1f301b Rename AllowTrackAdjustments to more understandable ApplyModTrackAdjustments 2023-07-25 20:20:53 +09:00
Dean Herbert
eac6271bd0 Add new property to avoid overlapping usages 2023-07-25 18:14:03 +09:00
Bartłomiej Dach
a201152b04
Add xmldoc to SelectionRotationHandler 2023-07-23 20:56:22 +02:00
Bartłomiej Dach
aec3ca250c
Migrate SelectionHandler to use SelectionRotationHandler 2023-07-23 20:56:22 +02:00
Bartłomiej Dach
ba8ebefb50
Add basic structure for new rotation handler 2023-07-23 20:56:22 +02:00
Bartłomiej Dach
4622255cc7
Move out helper methods to static class 2023-07-23 18:24:20 +02:00
Bartłomiej Dach
9f68bb4e4a
Merge pull request #24333 from peppy/editor-menu-spacer
Adjust metrics of editor menu spacers (and make visible)
2023-07-23 15:25:27 +02:00
Dean Herbert
4bf300d64d
Merge pull request #24186 from OliBomby/legacy-export
Add ability to export beatmaps from editor in a stable-compatible format
2023-07-23 15:25:06 +09:00
Dean Herbert
4ea8495c61 Adjust metrics of editor menu spacers (and make visible) 2023-07-23 14:12:37 +09:00
Dean Herbert
fb34ee94c2 Move export/save options to bottom of menu 2023-07-23 14:07:31 +09:00
Dean Herbert
20359c90bc Adjust localisations slightly 2023-07-23 14:06:00 +09:00
Dean Herbert
d11e56b8bb Add common Export string and use in editor 2023-07-23 14:03:50 +09:00
Bartłomiej Dach
d1c69283b2
Merge branch 'master' into editor-key-count 2023-07-22 16:11:21 +02:00
Bartłomiej Dach
f985bdc10f
Make difficulty sliders private set 2023-07-22 15:55:20 +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
Dean Herbert
82a5ba66e1 Align mode switcher with rest of interface 2023-07-21 15:27:42 +09:00
Dean Herbert
cdcb10e0e7 Fix timeline centre point being ever-so-slight off 2023-07-21 15:26:41 +09:00
Dean Herbert
f489dbd7a9 Reduce width of right toolbar ever so slightly (and use more shared constants) 2023-07-21 14:39:15 +09:00
Dean Herbert
870f3e324a Adjust "test" button to better align with rest of interface 2023-07-21 14:26:33 +09:00
Dean Herbert
ca3d1538ae Merge branch 'master' into editor-metrics 2023-07-21 14:26:32 +09:00
Dean Herbert
b29a2081ac Merge branch 'master' into menu-star-fountains 2023-07-21 14:21:16 +09:00
Bartłomiej Dach
07e0a703d7
Adjust inline comment 2023-07-20 20:51:39 +02:00
Bartłomiej Dach
708dd355cd
Merge branch 'master' into editor-cyclic-selection 2023-07-20 20:19:46 +02:00
Bartłomiej Dach
511948ba56
Add xmldoc to ApplySelectionOrder() 2023-07-20 19:16:04 +02:00
Bartłomiej Dach
f3a95d4c13
Merge branch 'master' into menu-star-fountains 2023-07-19 21:26:41 +02:00
Dean Herbert
cf3949c9e2 Fix double-click handling when cyclic selection is enabled
Removes the limitations of cyclic selection as a result.
2023-07-19 17:21:20 +09:00
Dean Herbert
5ade093c5a Change editor to always perform selection of closest object 2023-07-19 16:56:16 +09:00
Dean Herbert
55a41b0887 Fix overlap between header text and menu items 2023-07-19 15:13:20 +09:00
Dean Herbert
871056790b Mark editor tile as non-localisable 2023-07-19 15:01:20 +09:00
OliBomby
395dd23966 Put 'Export package' and 'Export legacy package' in one nested menu 2023-07-18 12:37:37 +02:00
OliBomby
5d82190b70 Merge remote-tracking branch 'upstream/master' into legacy-export 2023-07-18 12:18:49 +02:00
Dean Herbert
fe70f24925 Update design of summary timeline current time marker 2023-07-14 17:00:42 +09:00
Dean Herbert
e6b8cd0c06 Add editor header 2023-07-14 16:55:12 +09:00
Dean Herbert
57abb15724 Update design of timeline centre marker and adjust surrounding paddings 2023-07-14 16:37:57 +09:00
Dean Herbert
00e9746174 Implement longer design for timing point piece 2023-07-14 16:37:56 +09:00
Dean Herbert
6b222cfafd Fix slight misalignment so timeline is now completely centered 2023-07-14 14:29:13 +09:00
Dean Herbert
01750dd091 Update metrics of checkboxes and backgrounds to match design better 2023-07-14 14:29:02 +09:00
Dean Herbert
5b2e704264 Move beat divisor control inside of TimelineArea and adjust metrics to match design 2023-07-14 14:19:04 +09:00
Dean Herbert
ebaf63b764 Apply NRT to timeline related classes 2023-07-14 14:04:12 +09:00
Dean Herbert
56acc9e3dd Change BeatDivisorControl to retrive bindable divisor via DI 2023-07-14 14:03:25 +09:00
Dean Herbert
20e4e2581a Change IBeatSyncProvider.Clock to always be non-null 2023-07-13 22:13:40 +09:00
Susko3
2dcd790442 Resolve Clipboard via DI 2023-07-11 11:42:31 +02:00
OliBomby
06e5ef88c0 legacy export broken 2023-07-11 02:30:16 +02:00
Bartłomiej Dach
45194b2b4a
Fix pressing Ctrl-C in composer not copying timestamp to system clipboard 2023-07-09 18:21:43 +02:00
Bartłomiej Dach
9eec1337b3
Use slightly different condition for better UX 2023-07-01 21:39:08 +02:00
Bartłomiej Dach
183777f8df
Fix edge cases where selection buttons go outside playfield bounds
Addresses
https://github.com/ppy/osu/discussions/23599#discussioncomment-6300885.
2023-07-01 21:27:17 +02:00
Bartłomiej Dach
e4e08c0f5f
Fix selection handlers eating hotkey presses they didn't handle 2023-06-28 20:48:22 +02:00