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

43286 Commits

Author SHA1 Message Date
Dean Herbert
b58ba5f5f1
Just give in to silly code quality inspection 2024-07-10 23:02:19 +09:00
Salman Ahmed
bb9a2b705e Remove unnecessary math min 2024-07-10 16:29:28 +03:00
Salman Ahmed
846fd73ac9 Fix notification toast tray potentially hiding some notifications 2024-07-10 16:15:02 +03:00
Salman Ahmed
7d667ac46b Fix confirm exit dialog overflowing from too many ongoing operations 2024-07-10 16:06:53 +03:00
Bartłomiej Dach
c8a64c5950
Remove setup screen controls that do nothing useful
Before I go with a hammer to redesign these, I want to remove stuff that
does nothing first.

Hard-breaks API to allow rulesets to specify an enumerable of custom
sections rather than two specific weird ones.

For specific rulesets:

- osu!:
  - Stack leniency slider merged into difficulty section.
- osu!taiko:
  - Approach rate and circle size sliders removed.
  - Colours section removed.
- osu!catch:
  - No functional changes.
- osu!mania:
  - Special style toggle merged into difficulty section.
  - Colours section removed.
2024-07-10 14:53:16 +02:00
Salman Ahmed
ce93455aa8 Extend behaviour to sample edit popover 2024-07-10 15:16:10 +03:00
Salman Ahmed
94f51c92e0 Select all text when focusing a number box 2024-07-10 15:16:10 +03:00
Bartłomiej Dach
d879527329
Merge pull request #28803 from peppy/fix-break-overlay-visuals
Fix break overlay progress bar becoming a pancake near end of break
2024-07-10 13:31:09 +02:00
Bartłomiej Dach
d9e285395d
Merge pull request #28802 from peppy/fix-download-progress-bar-visuals
Fix beatmap card progress bar becoming pancake when starting
2024-07-10 13:25:02 +02:00
Dean Herbert
b6741ee4ea
Fix back-to-front exit blocking conditionals 2024-07-10 20:00:34 +09:00
Dean Herbert
75344f9c5c
Fix break overlay progress bar becoming a pancake near end of break 2024-07-10 19:28:37 +09:00
Dean Herbert
6cee0210c3
Fix(?) xmldoc 2024-07-10 19:22:49 +09:00
Dean Herbert
1381b3c0c5
Merge pull request #28801 from bdach/break-generation-caching
Improve performance of automatic break regeneration
2024-07-10 19:21:16 +09:00
Dean Herbert
2ba1ebe410
Fix beatmap card progress bar becoming pancake when starting 2024-07-10 19:19:49 +09:00
Bartłomiej Dach
b881c25b17
Pool summary timeline break visualisations to reduce allocations 2024-07-10 11:42:28 +02:00
Bartłomiej Dach
343090e3b1
Do not regenerate breaks unless meaningful change to object start/end times is detected
Tangentially found when profiling https://github.com/ppy/osu/pull/28792.

For reproduction, import https://osu.ppy.sh/beatmapsets/972#osu/9007,
move any object on the playfield, and observe a half-second freeze
when ending the drag.
2024-07-10 11:42:25 +02:00
Dean Herbert
704e7e843f
More xmldoc across new methods and classes 2024-07-10 18:34:48 +09:00
Dean Herbert
aa16c72e06
Add test coverage of external editing 2024-07-10 18:34:47 +09:00
Dean Herbert
3beca64cc5
Attempt to stay on correct difficulty 2024-07-10 18:34:46 +09:00
Dean Herbert
27ab54882b
Add loading segments and tidy things up 2024-07-10 18:34:46 +09:00
Dean Herbert
74aa05fa6e
Improve UX and styling of external edit screen 2024-07-10 18:34:45 +09:00
Dean Herbert
118162c631
Add sub screen to limit user interactions 2024-07-10 18:34:45 +09:00
Dean Herbert
d3c66e2404
Add basic flow for mounting beatmaps for external editing 2024-07-10 18:29:51 +09:00
Salman Ahmed
337f05f9a4 Fix loading (but not showing) a sheared overlay hiding displayed footer content
Identified by tests. See https://github.com/ppy/osu/actions/runs/9869382635/job/27253010485 & https://github.com/ppy/osu/actions/runs/9869382635/job/27253009622.

This change also prevents the initial `PopOut` call in overlays from calling `clearActiveOverlayContainer`, since it's not in the update thread and it's never meant to be called at that point anyway (it's supposed to be accompanied by a previous `PopIn` call adding the footer content).
2024-07-10 11:56:35 +03:00
Salman Ahmed
002679ebb0 Ask for VisibilityContainer explicitly 2024-07-10 11:14:22 +03:00
Bartłomiej Dach
95783bd6c2
Merge pull request #28789 from peppy/fix-deletes-reappearing
Fix deleted beatmap sets potentially reappearing due to pending update requests
2024-07-10 09:14:10 +02:00
Dean Herbert
9a88281ab0
Merge branch 'master' into footer-v2-integration 2024-07-10 15:33:05 +09:00
Dean Herbert
4fe3f39d22
Merge pull request #28682 from frenzibyte/footer-v2-overlay-content
Add implementation for `ScreenFooter` to house footer content of sheared overlays
2024-07-10 15:08:00 +09:00
Dean Herbert
cd9973b6f9
Merge pull request #28740 from bdach/daily-challenge/better-results
Improve results displays in daily challenge screen
2024-07-10 14:17:21 +09:00
Dean Herbert
f281019358
Rename method to match provided argument 2024-07-10 14:00:15 +09:00
Dean Herbert
4e1240c349
Migrate ShearedOverlayContainer to NRT 2024-07-10 13:54:27 +09:00
Joseph Madamba
8c81ba3357 Fix preview track persisting to play after leaving multi/playlists room 2024-07-09 14:36:24 -07:00
Dean Herbert
123d3d2ff8
Add similar special case for insert after removal 2024-07-09 20:44:55 +09:00
Dean Herbert
0e2e44a2f5
Add failing test case showing editor save then delete failure 2024-07-09 20:41:22 +09:00
Salman Ahmed
ed1f3a1eb4 Merge branch 'master' into footer-v2-integration 2024-07-09 13:48:40 +03:00
Salman Ahmed
b17af86491 Merge branch 'master' into footer-v2-overlay-content 2024-07-09 13:41:44 +03:00
Bartłomiej Dach
ca4c0aa7e2
Remove unused using 2024-07-09 10:57:21 +02:00
Bartłomiej Dach
13c8370823
Merge pull request #28786 from Joehuu/sort-direction-caret-transition
Add caret transition to beatmap listing sort tab items
2024-07-09 10:52:11 +02:00
Dean Herbert
920c0e4d25
Fix deleted beatmap sets potentially reappearing due to pending update requests 2024-07-09 17:08:26 +09:00
Dean Herbert
63b4327978
Ensure beatmap set is always detached when updating
Slight performance improvement by doing the detach as early as possible.
2024-07-09 17:08:25 +09:00
Bartłomiej Dach
877ade3053
Merge pull request #28787 from peppy/adjust-editor-fades
Adjust editor transparent tweens to be less "flashy"
2024-07-09 10:08:14 +02:00
Bartłomiej Dach
5d5dd0de00
Redesign bottom timeline pieces to match stable better 2024-07-09 09:25:22 +02:00
Bartłomiej Dach
29b8948609
Slim down bottom timeline
This removes the BPM display, which is commonly cited to have
no functional purpose by users, and reduces the height of the bottom bar
in exchange for more space for the playfield.
2024-07-09 09:25:22 +02:00
Bartłomiej Dach
50818da166
Ensure timeline ticks aren't hidden by other pieces
Addresses https://github.com/ppy/osu/issues/28667.
2024-07-09 09:25:22 +02:00
Dean Herbert
aadcc5384d
Adjust editor transparent tweens to be less "flashy"
Touched on in https://github.com/ppy/osu/discussions/28581.

After a bit more usage of the editor I do agree with this and think that
making the fades a bit more gentle helps a lot.
2024-07-09 16:16:19 +09:00
Dean Herbert
ee9e329db3
Inhibit original callback from firing when sending initial changeset 2024-07-09 16:05:58 +09:00
Dean Herbert
2423bbb776
Ensure realm subscriptions always fire initial callback with null ChangeSet
We expect this to be the case, but it turns out that it [may be
coalesced](https://www.mongodb.com/docs/realm-sdks/dotnet/latest/reference/Realms.IRealmCollection-1.html#Realms_IRealmCollection_1_SubscribeForNotifications_Realms_NotificationCallbackDelegate__0__Realms_KeyPathsCollection_):

> Notifications are delivered via the standard event loop, and so can't
> be delivered while the event loop is blocked by other activity. When
> notifications can't be delivered instantly, multiple notifications may
> be coalesced into a single notification. This can include the
> notification with the initial collection.

Rather than struggle with handling this locally every time, let's fix
the callback at our end to ensure we receive the initial null case.

I've raised concern for the API being a bit silly with realm
(https://github.com/realm/realm-dotnet/issues/3641).
2024-07-09 15:47:43 +09:00
Joseph Madamba
cd968d4185 Add caret transition to beatmap sort tab items 2024-07-08 16:46:35 -07:00
Dean Herbert
c100d1ab65
Merge pull request #28769 from peppy/carousel-realm-simplification
Simplify realm model tracking in `BeatmapCarousel` (and fix hard delete handling)
2024-07-09 01:40:10 +09:00
Dan Balasescu
9c2a0576fb
Merge pull request #28776 from bdach/fix-composer-disappearing
Fix composer disappearing when undoing change to control points
2024-07-09 00:54:38 +09:00
Dean Herbert
9a61adc4bc
Ensure other lists are cleared when realm is reset 2024-07-08 23:59:20 +09:00
Bartłomiej Dach
275b959c02
Fix composer disappearing when undoing change to control points
As mentioned in https://github.com/ppy/osu/issues/28752.
Regressed in https://github.com/ppy/osu/pull/28444.
2024-07-08 16:28:54 +02:00
Bartłomiej Dach
877b5768fc
Merge branch 'master' into sorted-breaks 2024-07-08 15:59:32 +02:00
Bartłomiej Dach
0d22c9a9c6
Pass comparer in all usages for consistency 2024-07-08 15:58:21 +02:00
Salman Ahmed
b33e54d064 Enforce IBeatmap.Breaks to be sorted chronologically 2024-07-08 16:06:38 +03:00
Bartłomiej Dach
2cad8d3684
Merge branch 'master' into time-accurate 2024-07-08 14:19:57 +02:00
Bartłomiej Dach
d5158d1035
Fix incorrect changes around success callback refactor 2024-07-08 13:36:30 +02:00
OliBomby
2822ba2377 Fix CurrentTimeAccurate being inaccurate if seeking smoothly in the same frame and a transform is already active 2024-07-08 13:30:11 +02:00
Bartłomiej Dach
0fe2c45e1d
Fix editor playback control not removing correct adjustment
Closes https://github.com/ppy/osu/issues/28768.

great job past me 🤦🤦🤦🤦🤦🤦🤦🤦🤦🤦🤦
2024-07-08 13:21:42 +02:00
Dean Herbert
c0a1696538
Merge pull request #28762 from frenzibyte/change-chevron-display
Change display of "expanded" chevrons in many UI components to use scale instead of rotation
2024-07-08 20:05:59 +09:00
Dean Herbert
8f271170e9
Coalesce beatmap updates 2024-07-08 20:05:18 +09:00
Dean Herbert
1095137a5b
Simplify tracking of hidden beatmaps
Handling a few extra events is preferrable to keeping a second realm
subscription live.
2024-07-08 20:05:18 +09:00
Dean Herbert
151c448535
Simplify tracking of beatmap sets in BeatmapCarousel 2024-07-08 20:05:18 +09:00
Dean Herbert
910153c2e0
Fix sizing / padding of collection dropdown header 2024-07-08 19:32:28 +09:00
Dan Balasescu
b2bdb67a3e
Merge pull request #28765 from bdach/editor-menu-max-height
Fix editor menus overflowing off screen
2024-07-08 19:13:30 +09:00
Dan Balasescu
44ebec07bb
Merge pull request #28767 from bdach/editor-test-play-ur-counter-crash
Fix editor player crashing with UR counter present in skin
2024-07-08 19:13:19 +09:00
Salman Ahmed
2fcc61edfa
Merge branch 'master' into audio-ducking-fx 2024-07-08 12:50:46 +03:00
Bartłomiej Dach
14a93bfc1a
Merge pull request #28553 from frenzibyte/mod-select-customisation-panel
Detach mod customisation area from the footer and replace with an overlay panel display
2024-07-08 11:26:21 +02:00
Salman Ahmed
784a9ae743
Merge branch 'master' into audio-ducking-fx 2024-07-08 12:26:10 +03:00
Bartłomiej Dach
db7774485a
Fix editor player crashing with UR counter present in skin
Closes https://github.com/ppy/osu/issues/28764.
2024-07-08 11:14:32 +02:00
Bartłomiej Dach
2ceedb0f93
Fix editor menus overflowing off screen
Closes https://github.com/ppy/osu/issues/28750.

Yes this is not the perfect change to fix this (which would probably be
some framework change to take bounds of the parenting input manager into
account). I really do not want to go there and would like to just fix
this locally and move on. Due to the game-wide scaling container this
sorta works for any resolution anyhow.
2024-07-08 11:05:39 +02:00
Joseph Madamba
73d164e0d0 Add chevron transition to CommentRepliesButton 2024-07-08 00:32:54 -07:00
Dean Herbert
03bd6069d8
Add slight animation when revert to default button is displayed
This also fixes the transforms running too often (could make the initial
transform take longer than expected if adjusting a slider bar, for
instance).
2024-07-08 15:50:27 +09:00
Joseph Madamba
9532146978 Fix content overflowing to border
The +2 for the top isn't really needed for the original purpose as content fades out now, but visually, having the header and content spacing looks more correct.
2024-07-07 23:12:20 -07:00
Salman Ahmed
7dc901df11 Do not be lenient on nullability of dropdown 2024-07-08 08:54:05 +03:00
Salman Ahmed
58e236a247 Add transition to dropdown chevrons 2024-07-08 08:48:52 +03:00
Salman Ahmed
4c2ae07eba Use scale instead of rotation in ChevronButton (used in top-right of comments section) 2024-07-08 08:48:07 +03:00
Salman Ahmed
dc630ddc9d Use scale instead of rotation in news month sidebar 2024-07-08 08:45:44 +03:00
Salman Ahmed
be039b85ad Use scale instead of rotation in profile cover toggle button 2024-07-08 08:32:29 +03:00
Salman Ahmed
5223e0aeae Use scale instead of rotation for overlay scroll button 2024-07-08 08:31:33 +03:00
Salman Ahmed
22f2f83695 Rescale chevron up and down instead 2024-07-08 08:07:57 +03:00
Salman Ahmed
a0ffe9bcbc Remove unnecessary HandlePositionalInput override 2024-07-08 07:58:40 +03:00
Salman Ahmed
0c5a1410d3 Add fade transition to content during open/close 2024-07-08 07:54:37 +03:00
Dean Herbert
3650f3c479
Allow multiple ducks with same parameters 2024-07-08 13:52:40 +09:00
Dean Herbert
0067450b22
Change volume parameter to double 2024-07-08 13:47:57 +09:00
Dean Herbert
5907e0d1eb
Make DuckDuration non-zero by default 2024-07-05 18:39:13 +09:00
Dean Herbert
7efb4ce30a
Fix multiple disposals resulting in assert being hit 2024-07-05 18:39:12 +09:00
Dean Herbert
717f7ba9f0
Better support multiple concurrent ducking operations 2024-07-05 18:12:40 +09:00
Bartłomiej Dach
4c59ec1d94
Fix incorrect ternary state computation for bank toggles
Closes https://github.com/ppy/osu/issues/28741.

Regressed in a7b066f3ee.

The intent of the original change there was to ensure that addition
banks being set will put the ternary state toggles in indeterminate
state (to at least provide a visual indication that the selection does
not use a single bank). This would previously not be the case due to
the use of `.All()` in the original condition (a single object/node
was considered to have a bank enabled if and only if *all* samples
within it used it). However the attempt to fix that via switching
to `Any()` was not correct.

The logic used in the offending commit operates on extracted `Samples`
and `NodeSamples` from the selection, and would consider the ternary
toggle:

- fully off if none of the samples/node samples contained a sample with
  the given bank,
- indeterminate if the some of the samples/node samples contained a
  sample with the given bank,
- fully on if at least one sample from every samples/node samples
  contained a sample with the given bank.

This is a *two-tiered* process, as in first a *binary* on/off state is
extracted from each object's samples/node samples, and *then* a ternary
state is extracted from all objects/nodes. This is insufficient to
express the *desired* behaviour, which is that the toggle should be:

- fully off if *none of the individual samples in the selection* use
  the given bank,
- indeterminate if *at least one individual sample in the selection*
  uses the given bank,
- fully on if *all individual samples in the selection* use the given
  bank.

The second wording is flattened, and no longer tries to consider "nodes"
or "objects", it just looks at all of the samples in the selection
without concern as to whether they're from separate objects/nodes
or not.

To explain why this discrepancy caused the bug, consider a single object
with a `soft` normal bank and `drum` addition bank. Selecting the object
would cause a ternary button state update; as per the incorrect logic,
there were two samples on the object and each had its own separate
banks, so two ternary toggles would have their state set to `True`
(rather than the correct `Indeterminate`), thus triggering a bindable
feedback loop that would cause one of these banks to win and actually
overwrite the other.

Note that the addition indeterminate state computation *still* needs
to do the two-tiered process, because there it actually makes sense (for
a selection to have an addition fully on rather than indeterminate,
*every* object/node *must* contain that addition).
2024-07-05 09:27:21 +02:00
Bartłomiej Dach
6907d3d3b5
Merge branch 'master' into nodesample-inherit 2024-07-05 08:12:47 +02:00
Bartłomiej Dach
ab8623ec48
Merge pull request #28727 from OliBomby/inherit-addition
Allow inheriting addition bank from previous hitobject when using auto bank assignment
2024-07-05 08:12:30 +02:00
Dean Herbert
20ba6ca867
Add mention of return type for Duck method 2024-07-05 15:11:11 +09:00
Dean Herbert
554740af10
Adjust ducking API to use a parameters record 2024-07-05 15:04:40 +09:00
Dean Herbert
0d858ce8f8
Change default easings to In/Out for all ducking operations 2024-07-05 13:51:41 +09:00
Dean Herbert
ec4623d49f
Reduce duck length slightly on toolbar ruleset selector 2024-07-05 13:51:29 +09:00
Dean Herbert
4528daf7fa
Update resources 2024-07-05 13:15:15 +09:00
Dean Herbert
0696e2df32
Apply nullability to ducking methods 2024-07-05 12:58:34 +09:00
Dean Herbert
7f84e377ab
Merge branch 'music-controller-nullability' into audio-ducking-fx 2024-07-05 12:57:39 +09:00
Dean Herbert
d21eec9542
Apply nullability to MusicController 2024-07-05 12:50:15 +09:00
Dan Balasescu
aaef5c189d
Merge pull request #28739 from peppy/fix-skin-fallbacks
Fix incorrect skin fallback order when beatmap skin is present
2024-07-05 12:05:57 +09:00