1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-23 19:52:57 +08:00
Commit Graph

45519 Commits

Author SHA1 Message Date
Dean Herbert
ea725e2caf
Merge pull request #31524 from smoogipoo/user-panel-status
Display up-to-date online status in user panels
2025-02-05 19:22:27 +09:00
Salman Alshamrani
c389dbc711 Extend panel input area to cover gaps 2025-02-05 05:20:26 -05:00
Salman Alshamrani
fc5832ce67 Support variable spacing between carousel items 2025-02-05 05:20:26 -05:00
Dean Herbert
c37fa261c3
Merge pull request #31789 from bdach/distance-snap-fix
Fix distance snap grid not properly working due to multiple issues
2025-02-05 18:41:46 +09:00
Bartłomiej Dach
e5943e460d
Unify ConfigureAwait() calls across method 2025-02-05 10:28:42 +01:00
Bartłomiej Dach
c5deb9f36b
Use alternative lockless solution for atomic cancellation token recreation 2025-02-05 10:28:25 +01:00
Dean Herbert
b7aa71c975
Adjust xmldoc slightly to convey the disposal pattern 2025-02-05 18:24:07 +09:00
Dean Herbert
9b79cf6c61
Merge pull request #31784 from bdach/bss/wizard-appearance
Implement visual appearance of beatmap submission wizard
2025-02-05 17:34:30 +09:00
Dean Herbert
5c9e84caf0
Add lock object 2025-02-05 17:31:54 +09:00
Bartłomiej Dach
4f629478b8
Merge pull request #31779 from peppy/menu-fade-out
Change menus to fade out with a slight delay so settings changes are visible
2025-02-05 09:29:56 +01:00
Dean Herbert
14273824dc
Fix Carousel.FilterAsync not working when called from a non-update thread
I was trying to be smart about things and make use of our
`SynchronisationContext` setup, but it turns out to not work in all
cases due to the context being missing depending on where you are
calling the method from.

For now let's prefer the "works everywhere" method of scheduling the
final work back to update.
2025-02-05 16:40:11 +09:00
Dean Herbert
2356d3e2d0
Refactor OsuContextMenu to avoid code duplication 2025-02-05 16:34:15 +09:00
Dean Herbert
09d26fbf5e
Minor adjustments 2025-02-05 15:58:34 +09:00
NecoDev
13fa49d5b5
Merge branch 'master' into pr 2025-02-05 14:53:20 +08:00
NecoDev
db7b665f4d Removed unused using
For https://github.com/ppy/osu/pull/31780
2025-02-05 13:31:57 +08:00
Dean Herbert
20c4badbba
Merge pull request #31795 from peppy/update-framework
Update framework
2025-02-04 23:53:55 +09:00
Dean Herbert
099ce39531
Use same delay in context menus 2025-02-04 23:21:41 +09:00
Dean Herbert
0d7bbd63fc
Merge branch 'master' into user-panel-status 2025-02-04 22:56:19 +09:00
Dean Herbert
15ed029dd1
Merge pull request #31260 from smoogipoo/multiplayer-free-style
Add support for "freestyle" in multiplayer
2025-02-04 22:40:38 +09:00
Dean Herbert
87ff8778c6
Merge pull request #31791 from bdach/unify-selection-behaviour
Always select the closest control point group regardless of whether it has a timing point on entering timing screen
2025-02-04 22:32:22 +09:00
Bartłomiej Dach
23ec27e911
Merge branch 'master' into distance-snap-fix 2025-02-04 13:50:14 +01:00
Dean Herbert
386fb55392
Update framework 2025-02-04 21:48:45 +09:00
Dean Herbert
a93dabd33f
Merge branch 'master' into multiplayer-free-style 2025-02-04 21:48:39 +09:00
Bartłomiej Dach
41cf3696f2
Merge branch 'master' into bss/wizard-appearance 2025-02-04 13:48:35 +01:00
Dean Herbert
82ccce8099
Merge pull request #31783 from bdach/bss/form-button
Implement "form button" control
2025-02-04 21:45:11 +09:00
Bartłomiej Dach
2dbf30a096
Select timing point on enter if no effect point is active at the time
Noticed during testing.
2025-02-04 12:44:05 +01:00
Bartłomiej Dach
a0b6610054
Always select the closest control point group regardless of whether it has a timing point 2025-02-04 12:35:02 +01:00
Bartłomiej Dach
731f100aaf
Fix incorrect snapping behaviour when previous object is not snapped to beat 2025-02-04 11:45:15 +01:00
Dean Herbert
6c6063464a
Remove Scheduler.AddOnce from updateSpecifics
To keep things simple, let's not bother debouncing this. The debouncing
was causing spectating handling to fail because of two interdependent
components binding to `BeatmapAvailability`:

Binding to update the screen's `Beatmap` after a download completes:

5874706117/osu.Game/Screens/OnlinePlay/Match/RoomSubScreen.cs (L266-L267)

Binding to attempt a load request:

8bb7bea04e/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSubScreen.cs (L67)

The first must update the beatmap before the second runs, else gameplay
will not load due to `Beatmap.IsDefault`.
2025-02-04 18:41:28 +09:00
Dean Herbert
599b59cb14
Add expanded state to sample drawable representations 2025-02-04 18:06:16 +09:00
Dan Balasescu
2f90bb4d67
Watch global user presence while in spectator screen 2025-02-04 17:55:50 +09:00
Dan Balasescu
61419ec9c8
Refactor user presence watching to be tokenised 2025-02-04 17:54:03 +09:00
Dean Herbert
58560f8acf
Add tracking of expansion states for groups and sets 2025-02-04 17:51:51 +09:00
Bartłomiej Dach
4dd4e52e6d
Implement visual appearance of beatmap submission wizard 2025-02-04 09:06:33 +01:00
Bartłomiej Dach
3893303988
Implement "form button" control 2025-02-04 09:05:33 +01:00
Bartłomiej Dach
6e59cab928
Merge pull request #31764 from peppy/beatmap-carousel-v2-grouping
Add group support to beatmap carousel v2
2025-02-04 08:13:54 +01:00
Dean Herbert
1e1fb5476e
Merge pull request #31734 from bdach/simplify-slider-encoding-logic
Fix multi-segment-type sliders getting mangled on legacy export
2025-02-04 15:08:44 +09:00
Dean Herbert
ec88c5ed75
Merge pull request #31776 from frenzibyte/carousel-v2-depth-ordering
Fix depth ordering in new carousel not being relative to selected item
2025-02-04 13:02:21 +09:00
Dean Herbert
e454fa558c
Adjust group traversal logic to handle cases where keyboard selection redirects 2025-02-04 02:55:59 +09:00
Dean Herbert
b433eef138
Remove redundant conditional check 2025-02-04 02:41:39 +09:00
Bartłomiej Dach
2d6f64e891
Fix code quality 2025-02-03 15:18:03 +01:00
Bartłomiej Dach
df37768ff4
Remove unused method
Only used in test code.
2025-02-03 14:01:51 +01:00
Bartłomiej Dach
a1185df2eb
Refactor IDistanceSnapProvider to accept slider velocity objects as a reference
Method signatures are also changed to be a lot more explicit as to what
inputs they expect.
2025-02-03 14:00:57 +01:00
Dean Herbert
c7780c9fdc
Refactor how grouping is performed 2025-02-03 20:40:52 +09:00
Bartłomiej Dach
1793b8ccb4
Merge pull request #31775 from peppy/avoid-beatmap-access-beat-sync-container
Avoid accessing `WorkingBeatmap.Beatmap` every update call
2025-02-03 12:24:05 +01:00
Bartłomiej Dach
b60a8341e4
Merge pull request #31778 from peppy/editor-menu-mutual-exclusive
Make distance snap settings mutually exclusive
2025-02-03 11:58:34 +01:00
Dean Herbert
99192404f1
Tidy up WorkingBeatmap passing in ctor 2025-02-03 19:26:14 +09:00
Dean Herbert
8bb7bea04e
Rename freestyle select screen classes for better discoverability 2025-02-03 19:21:21 +09:00
Dean Herbert
37abb1a21b
Tidy up button construction code 2025-02-03 19:09:58 +09:00
Dean Herbert
444e0970d6
Standardise naming to use "Freestyle" not "FreeStyle" 2025-02-03 19:01:59 +09:00
Dean Herbert
f24716563c
Merge branch 'master' into user-panel-status 2025-02-03 18:31:28 +09:00
NecoDev
55f46e3b66 Added warning 2025-02-03 16:47:38 +08:00
Dean Herbert
df51d345c5
Change menus to fade out with a slight delay so settings changes are visible
Useful for cases like https://github.com/ppy/osu/pull/31778, where a
change to one setting can affect another.
2025-02-03 17:38:17 +09:00
Dean Herbert
26a8fb6984
Make distance snap settings mutually exclusive 2025-02-03 17:34:55 +09:00
Bartłomiej Dach
ee7d281e73
Merge branch 'master' into fix-limit-distance-snap-to-current 2025-02-03 08:57:27 +01:00
Dean Herbert
b9f840c32e
Merge pull request #31742 from smoogipoo/fix-results-persistent-sounds
Fix results screen sounds persisting after exit
2025-02-03 16:39:47 +09:00
Salman Alshamrani
c587958f38 Apply depth ordering relative to selected item 2025-02-03 02:34:29 -05:00
Dean Herbert
a23de0b188
Avoid accessing WorkingBeatmap.Beatmap every update call
Notice in passing.

Comes with overheads that can be easily avoided. Left a note for a
future (slightly more involved) optimisation.
2025-02-03 16:30:31 +09:00
Dan Balasescu
9033a4d480
Remove unused using 2025-02-03 14:20:56 +09:00
Dan Balasescu
210fa14759
Play sound via results screen instead 2025-02-03 14:15:46 +09:00
Dean Herbert
6a18d18feb
Fix null handling when no items are populated but a selection is made 2025-02-03 02:39:45 +09:00
Dean Herbert
9c34819ff4
Add test coverage for grouped selection 2025-02-03 02:39:45 +09:00
Dean Herbert
645c26ca19
Simplify keyboard traversal logic 2025-02-03 02:24:27 +09:00
Dean Herbert
d74939e6e9
Fix backwards traversal of groupings and allow toggling groups without updating selection 2025-02-03 02:24:27 +09:00
Dean Herbert
764f799dcb
Improve selection flow using early exit and invalidation 2025-02-03 02:24:27 +09:00
Dean Herbert
d5dc55149d
Add initial difficulty grouping support 2025-02-03 02:24:27 +09:00
Dean Herbert
3cde11ab77
Re-enable masking by default 2025-02-03 02:24:26 +09:00
Dean Herbert
f65be009a3
Merge pull request #31747 from bdach/do-not-reset-online-info-on-save
Do not reset online information when saving beatmap
2025-02-02 22:24:56 +09:00
Dean Herbert
cf3a379b1c
Merge pull request #31368 from frenzibyte/mobile-fix-mania
Improve osu!mania playability on mobile devices
2025-02-01 14:49:46 +09:00
Dean Herbert
334b578fb6
Merge pull request #31733 from bdach/bss/abstract-out-wizard
Abstract out `WizardOverlay` for multi-step wizard type screens
2025-02-01 14:10:35 +09:00
Bartłomiej Dach
7ef8616703
Fix broken user-facing messaging when beatmap hash mismatch is detected 2025-01-31 12:22:05 +01:00
Bartłomiej Dach
c3981f1097
Do not reset online info on beatmap save 2025-01-31 12:21:42 +01:00
Bartłomiej Dach
8718483c70
Avoid moving already placed objects temporally when "limit distance snap to current time" is active 2025-01-31 09:51:13 +01:00
Bartłomiej Dach
20280cd195
Do not double up first control point of path 2025-01-31 09:01:42 +01:00
Dan Balasescu
cf2d0e6911
Fix results screen sounds persisting after exit 2025-01-31 16:22:37 +09:00
Bartłomiej Dach
b4f63da048
Move control point double-up logic to LegacyBeatmapExporter
Done for two reasons:

- During review it was requested for the logic to be moved out of
  `BezierConverter` as `BezierConverter` was intended to produce
  "lazer style" sliders with per-control-point curve types,
  as a future usability / code layering concern.

- It is also relevant for encode-decode stability. With how the logic
  was structured between the Bezier converter and the legacy beatmap
  encoder, the encoder would leave behind per-control-point Bezier curve
  specs that stable ignored, but subsequent encodes and decodes in lazer
  would end up multiplying the doubled-up control points ad nauseam.
  Instead, it is sufficient to only specify the curve type for the
  head control point as Bezier, not specify any further curve types
  later on, and instead just keep the double-up-control-point for new
  implicit segment logic which is enough to make stable cooperate
  (and also as close to outputting the slider exactly as stable would
  have produced it as we've ever been)
2025-01-30 15:28:47 +01:00
Bartłomiej Dach
d3b233b08f
Merge pull request #31732 from KareVulli/fix-timeline-selection
Fix stacked objects selection order on editor timeline
2025-01-30 14:31:42 +01:00
Bartłomiej Dach
749704344c
Move implicit slider path segment handling logic to Bezier converter
The logic in `LegacyBeatmapEncoder` that was supposed to handle
the lazer-exclusive feature of supporting multiple slider segment types
in a single slider was interfering rather badly with the Bezier
converter. Generally it was a bit difficult to follow, too.

The nice thing about `BezierConverter` is that it is *guaranteed* to
only output Bezier control points. In light of this, the same double-up-
-the-control-point logic that was supposed to make multiple slider
segment types backwards-compatible with stable can be placed in
the Bezier conversion logic, and be *much* more understandable, too.
2025-01-30 14:03:51 +01:00
Dean Herbert
8a887abe51
Merge pull request #31663 from nekodex/friend-notification-samples
Add unique samples for friend online/offline notifications
2025-01-30 19:45:30 +09:00
Bartłomiej Dach
d8c63a443f
Merge pull request #31685 from frenzibyte/two-factor-authentication-code
Do not display autocorrect suggestions in two factor verification code text box
2025-01-30 11:15:09 +01:00
Dean Herbert
5f2532932e
Merge branch 'master' into friend-notification-samples 2025-01-30 18:29:26 +09:00
Bartłomiej Dach
31c4461fbb
Abstract out WizardOverlay for multi-step wizard type screens
To be used in the editor, for the beatmap submission wizard.

I've recently been on record for hating "abstract" as a rationale to do
anything, but seeing this commit ~3 months after I originally made it,
it still feels okay to do for me in this particular case. I think the
abstraction is loose enough, makes sense from a code reuse and UX
consistency standpoint, and doesn't seem to leak any particular
implementation details. That said, it is both a huge diffstat and also
potentially controversial, which is why I'm PRing first separately.
2025-01-30 09:39:08 +01:00
Marvin Helstein
ec99fc1141 Move ApplySelectionOrder override from EditorBlueprintContainer to ComposeBlueprintContainer 2025-01-30 10:27:36 +02:00
Dan Balasescu
48b1c7398e
Merge pull request #31655 from bdach/deabstractify-editor-snap
Refactor editor object snapping to remove bad abstractions
2025-01-30 01:38:42 +09:00
Dan Balasescu
7750468e31
Merge pull request #31726 from peppy/room-settings-button
Make multiplayer change room settings more obvious as to what it does
2025-01-30 00:42:00 +09:00
Dan Balasescu
007bf87a6b
Merge pull request #31723 from peppy/fix-unstable-rate-incrementatl
Fix incremental unstable rate calculation not matching expectations
2025-01-29 23:54:59 +09:00
Dan Balasescu
ca7a36d3d6
Remove unused usings 2025-01-29 23:32:44 +09:00
Bartłomiej Dach
75ef67e959
Merge branch 'master' into two-factor-authentication-code 2025-01-29 13:15:30 +01:00
Dean Herbert
bc930e8fd3
Minimal clean-up to get things bearable
I plan to do a full refactor of `RoomSubScreen` at first opportunity.
2025-01-29 20:02:04 +09:00
Dean Herbert
e8d0d2a1d9
Combine more methods to simplify flow futher 2025-01-29 19:56:37 +09:00
Dean Herbert
a6814d1a8a
Make multiplayer change room settings more obvious as to what it does
"Edit" felt really weird.
2025-01-29 19:48:04 +09:00
Dean Herbert
07bff22200
Fix delay before difficulty panel displays fully 2025-01-29 19:30:57 +09:00
Bartłomiej Dach
d87720da1b
Merge branch 'master' into fix-editor-textbox-regressions 2025-01-29 11:25:16 +01:00
Dean Herbert
facc9a4dc3
Fix reference hashsets getting emptied before used 2025-01-29 19:15:28 +09:00
Dean Herbert
c70ff11085
Remove new bindables from RoomSubScreen 2025-01-29 19:06:14 +09:00
Dean Herbert
05200e8970
Add missing partial 2025-01-29 19:05:28 +09:00
Dean Herbert
d3f9804ef1
Combine more methods to simplify flow 2025-01-29 18:45:02 +09:00
Dean Herbert
9db8e0b7ac
Merge branch 'master' into friend-notification-samples 2025-01-29 17:43:56 +09:00
Dean Herbert
bf40f071eb
Code quality pass 2025-01-29 17:43:49 +09:00
Dean Herbert
4c83ef83ee
Update resources 2025-01-29 17:34:03 +09:00