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

40666 Commits

Author SHA1 Message Date
Jamie Taylor
17aa079cb1
Use new tiered 'back' samples 2023-11-08 22:21:24 +09:00
Jamie Taylor
fc1a0cf645
Update ButtonSystem to use new sample names 2023-11-08 22:21:24 +09:00
Dean Herbert
5ac285ed2f
Merge pull request #25380 from frenzibyte/fix-create-difficulty-crash
Fix editor crash when creating a new difficulty in a non-existent beatmap
2023-11-08 18:56:00 +09:00
Dean Herbert
626cfae3fe
Merge pull request #25386 from EVAST9919/bar-graph-smooth
Ensure `BarGraph`'s draw quad is thick enough
2023-11-08 17:24:37 +09:00
Dean Herbert
6c6baab115
Reword comment to explain why 2023-11-08 16:41:30 +09:00
Joseph Madamba
c8d276281a Fix flags not showing on kudosu rankings
The `country` attribute is optional and not included in the kudosu rankings response so use `country_code` instead.
2023-11-07 16:09:48 -08:00
Joseph Madamba
387de7ec24 Add ability to view kudosu rankings 2023-11-07 15:58:17 -08:00
Salman Ahmed
2ef17c56b1 Remove unused local 2023-11-08 02:13:35 +03:00
Salman Ahmed
18c71c95cc Merge branch 'master' into gameplay-hud-redesign/counters 2023-11-08 02:12:37 +03:00
Salman Ahmed
07b7e13633 Place health display in front of the score wedge 2023-11-08 02:07:24 +03:00
Salman Ahmed
4de5454538 Bring back left-side line next to health display
Makes the score counter not look weird when it reaches 8 digits
2023-11-08 02:07:15 +03:00
Salman Ahmed
fdc714a248 Support percentages and ignore dot characters in wireframes part 2023-11-08 02:06:14 +03:00
Salman Ahmed
d30bac3f49 Move "required display digits" feature to reside in argon score counter 2023-11-08 02:06:14 +03:00
Salman Ahmed
e6d3085353 Update accuracy counter design 2023-11-08 02:06:14 +03:00
Salman Ahmed
cbea2db4be Support absolute-sized health bar and use it for default layout 2023-11-08 02:06:14 +03:00
Andrei Zavatski
b092b0093a Make sure bar draw quad is thick enough 2023-11-07 17:43:40 +03:00
Dean Herbert
c00a1d948a
Merge branch 'master' into better-touch-settings 2023-11-07 23:21:59 +09:00
Dean Herbert
3e257f1e6c
Remove unused using statements 2023-11-07 23:21:51 +09:00
Susko3
fcd73e62d2 Remove mobile specific changes
Will be added back in a separate PR
2023-11-07 13:06:14 +01: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
Susko3
7385c3c97b Move InputSettings children creation code to BDL
- Avoids now obsolete variable name
- Makes changing to touch detection easier (access to session statics in BDL)
2023-11-07 00:17:15 +01:00
Susko3
05d9418718 Rename setting to TouchDisableGameplayTaps for better visibility when searching 2023-11-07 00:13:46 +01:00
Salman Ahmed
0dbba13686 Split argon score sprite text and update combo counter design 2023-11-07 01:59:36 +03:00
Salman Ahmed
7c1c62ba8a Remove argon combo wedge and update combo counter position 2023-11-07 01:59:36 +03:00
Salman Ahmed
ce36884ef0 Make score wireframes display up to required digits count 2023-11-07 01:59:36 +03:00
Salman Ahmed
4c7db4c262 Make score counter right-aligned 2023-11-07 01:59:36 +03:00
Salman Ahmed
754e05213c Update argon score wedge design 2023-11-07 01:59:36 +03:00
Salman Ahmed
01e59d134a Adjust health bar settings on default components initialiser to match new layout 2023-11-07 01:59:36 +03:00
Susko3
a4ac50cf86 Revert "Rename popup/binding string to Toggle gameplay clicks/taps"
This reverts commit 0d8bfedf5d.
2023-11-06 21:10:04 +01:00
Dean Herbert
ed02335e3e
Merge pull request #25377 from bdach/system-mod-better-colours 2023-11-07 05:08:47 +09:00
Susko3
f8b5ecc92a Update UI to use the new setting 2023-11-06 21:07:15 +01:00
Susko3
ea357bafdd Fix tests by using the correct setting for touch input 2023-11-06 20:53:22 +01:00
Susko3
d6e7145e1c Add new setting for GameplayDisableTaps 2023-11-06 20:42:40 +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
Bartłomiej Dach
a136f272cf
Just use yellow for system mods 2023-11-06 16:40:57 +01:00
Joshua Hegedus
f897c21b3f
partial change 2023-11-06 15:25:12 +01:00
Joshua Hegedus
a01f6187f4
testing the tooltip 2023-11-06 14:52:06 +01:00
Bartłomiej Dach
4bc36a6c90
Fix unused variable 2023-11-06 12:18:02 +01:00
Joshua Hegedus
034f53da4b
added isEnabled to tooltip 2023-11-06 11:54:57 +01:00
Bartłomiej Dach
39ad91feea
Make debug input toggle post notifications 2023-11-06 11:50:04 +01:00
Bartłomiej Dach
6deac9a5a4
Use better colours for system mods 2023-11-06 11:41:23 +01: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
Bartłomiej Dach
682668ccf0
Remove touch device toasts entirely 2023-11-06 10:54:32 +01:00
Bartłomiej Dach
204cd541e2
Use placeholder mod icon for touch device 2023-11-06 10:14:56 +01:00
Bartłomiej Dach
97fee6143c
Rename touch "input handlers" to detectors 2023-11-06 10:08:19 +01:00
Bartłomiej Dach
408ae84111
Merge pull request #25375 from peppy/reset-rotation-skin-editor
Add skin editor dropdown items to reset rotation and scale
2023-11-06 09:38:48 +01:00
Bartłomiej Dach
41cd9a4db6
Merge pull request #25374 from peppy/add-skinnable-player-name
Add player name skin component
2023-11-06 09:34:11 +01:00
Joshua Hegedus
4a70f2435c
fixed showUsernameTooltip 2023-11-06 09:22:50 +01:00
Joshua Hegedus
b45d8c785c
fixed review findings 2023-11-06 08:38:34 +01:00
Dean Herbert
0915ac8891
Use left aligned text for non-rotate key counter 2023-11-06 16:32:12 +09:00
Dean Herbert
1f0b914251
Add skin editor dropdown items to reset rotation and scale 2023-11-06 16:18:33 +09:00
Dean Herbert
40d081ee2d
Add note about Width requirement in UserGridPanel 2023-11-06 16:05:50 +09:00
Bartłomiej Dach
7ba07ab530
Add protections against handling system mods in mod presets 2023-11-06 08:05:42 +01:00
Bartłomiej Dach
3c72c5bccd
Steer touch input flag via bindable rather than config manager 2023-11-06 07:48:09 +01:00
Bartłomiej Dach
11bd801795
Use more intelligent default for TouchInputActive 2023-11-06 07:44:25 +01:00
Dean Herbert
e2b07628fb
Add player name skin component
3 minute implementation.

Addresses https://github.com/ppy/osu/discussions/25340.
2023-11-06 15:24:16 +09:00
ratinfx
277cf7dc12 Ensure every SelectedItem is alive and has Blueprint 2023-11-05 18:26:51 +01:00
Susko3
9947897c5f Use appropriate clicks/taps text in player loader input settings 2023-11-05 12:53:40 +01:00
Susko3
0d8bfedf5d Rename popup/binding string to Toggle gameplay clicks/taps 2023-11-05 12:44:22 +01:00
Susko3
fa1d1df594 Rename mouse button string to Disable clicks during gameplay 2023-11-05 12:43:14 +01:00
Susko3
86fb33cb90 Add disable taps checkbox to touch input settings 2023-11-05 12:40:06 +01:00
Salman Ahmed
1d4f4cf4c3 Merge branch 'master' into gameplay-hud-redesign/counters 2023-11-05 02:02:36 +03:00
Salman Ahmed
6c3169a0ed Remove PP wedge and logic for gameplay layout 2023-11-05 01:56:54 +03:00
Salman Ahmed
a23dfbeab5 Revert "Abstractify PP counter logic from the "Triangles" implementation"
This reverts commit daf4a03fd0.
2023-11-05 01:55:54 +03:00
Salman Ahmed
58a830fc5b Revert "Add "Argon" performance points counter"
This reverts commit 56eeb117ce.
2023-11-05 01:55:54 +03:00
Salman Ahmed
1c844a155e Remove health line detail 2023-11-05 01:55:54 +03:00
Salman Ahmed
91cf237fc1 Revert health display settings changes 2023-11-05 01:55:54 +03: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
Joshua Hegedus
ec290ae953
added tests 2023-11-04 19:03:23 +01:00
Joshua Hegedus
a70bfca501
added usergrid for tooltip 2023-11-04 17:57:37 +01:00
ratinfx
60f62faec3 Renamed Editor method 2023-11-04 03:30:38 +01:00
ratinfx
f854e78bb0 Added ExclamationTriangle Icon to notifications 2023-11-04 03:29:05 +01:00
ratinfx
43ab7f4942 Added OpenEditorTimestamp base implementation 2023-11-04 02:01:18 +01:00
Joseph Madamba
16731ff85f
Fix text positioning 2023-11-02 20:42:28 -07:00
Joseph Madamba
b3dfe19472
Fix UprightAspectMaintainingContainer not being centred 2023-11-02 20:42:28 -07:00
Joseph Madamba
090601b485
Apply peppy's upright key counter attempt diff
Co-Authored-By: Dean Herbert <pe@ppy.sh>
2023-11-02 20:42:23 -07:00
Bartłomiej Dach
a78fab0e7d
Do not hardcode ruleset name in touch device detection toast 2023-11-03 00:17:29 +01:00
Bartłomiej Dach
a613292802
Fix unknown mod test failure 2023-11-02 23:44:40 +01:00
Bartłomiej Dach
8e9006b5d5
Declare Touch Device incompatible with Autopilot
With Autopilot active, Touch Device no longer matters.
2023-11-02 22:57:05 +01:00
Bartłomiej Dach
0dd0a84312
Move player touch handler to SubmittingPlayer
Shouldn't be there in `ReplayPlayer`.
2023-11-02 22:56:43 +01:00
Bartłomiej Dach
8784dd42c0
Do not attempt to turn on Touch Device in song select with autoplay active 2023-11-02 22:56:43 +01:00
Bartłomiej Dach
3a6d65d395
Touch up PlayerTouchInputHandler 2023-11-02 21:24:58 +01:00
Bartłomiej Dach
4532d0ecdf
Add logging & debug facility for touch input interceptor 2023-11-02 21:24:58 +01:00
Bartłomiej Dach
c588f434e5
Fix song select touch handler causing crashes when song select is suspended 2023-11-02 21:24:58 +01:00
Bartłomiej Dach
ef555ed0cf
Fix test failures 2023-11-02 21:24:58 +01:00
Bartłomiej Dach
f2df02b60f
Automatically activate touch device mod in player 2023-11-02 21:24:58 +01:00
Bartłomiej Dach
2f6ff893b5
Automatically activate and deactivate touch device mod in song select 2023-11-02 19:45:48 +01:00
Bartłomiej Dach
980c900f43
Add component for game-wide touch detection 2023-11-02 19:32:56 +01:00
Bartłomiej Dach
68efb3c110
Mark ModTouchDevice as always valid for submission 2023-11-02 19:25:57 +01:00
Bartłomiej Dach
9f11a04cc7
Generalise notion of 'touch device' mod 2023-11-02 19:14:05 +01:00
Dean Herbert
818432fab4
Fix non-classic osu! combo not matching expectations 2023-11-02 19:27:55 +09:00
Dean Herbert
57d8b5ddc9
Merge pull request #25328 from bdach/mod-cleanups-docs
Clean up mod usability flags
2023-11-01 15:48:47 +09:00
Bartłomiej Dach
a90f8dd4f6
Seal a few more multiplayer playability flags of rate-changing mods
Not really changing anything, just tightening things down to curb
possible funny business.
2023-10-31 16:20:33 +01:00
Bartłomiej Dach
955e2ed051
Seal UnknownMod
Not a class for extension.
2023-10-31 16:18:09 +01:00
Bartłomiej Dach
a644c75957
Mark ModScoreV2 as invalid for multiplayer
Doesn't do much for the client; mostly a safety for osu-web's sake,
as without the change it could theoretically fail to validate the mod
properly in multiplayer contexts.
2023-10-31 16:16:59 +01:00
Bartłomiej Dach
456f4ebba2
Seal ModScoreV2
Nobody should ever need to extend it.
2023-10-31 16:16:14 +01:00
Bartłomiej Dach
3a2645efb1
Seal ModAutoplay playability flags
Can't do much more than that due to the unfortunate fact of Cinema
inheriting from Autoplay.
2023-10-31 16:15:10 +01:00
Bartłomiej Dach
7ea298a1b6
Add xmldoc to Mod playability flags 2023-10-31 16:13:44 +01:00
Bartłomiej Dach
9f5a280bc2
Fix key binding row fire-and-forgetting writes
Intends to fix test failures as seen in https://github.com/ppy/osu/actions/runs/6692350567/job/18181352642#step:5:129

This is what happens if you carelessly fire and forget.

The working theory (that I'm not sure I have the tools to conclusively
confirm) is that the async write from the key binding changing could
fire _after_ the section is reset.

I briefly considered having the test wait for the change, but given that
the entirety of the surrounding flow is using sync operations, this just
looks like a bug to me. And there's no real sane way to inject async
into that flow due to dependence on `OsuButton.Action`.
2023-10-31 12:25:09 +01:00
Bartłomiej Dach
bc2acc3e93
Merge pull request #25318 from peppy/fix-follow-point-scrathces
Fix potential texture corruption when cropping gameplay textures of weird aspect ratios
2023-10-31 11:02:59 +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
Dean Herbert
0d44b5af90
Fix potential texture corruption when cropping gameplay textures of weird aspet ratios
Closes https://github.com/ppy/osu/issues/25273.
2023-10-31 17:36:23 +09: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
7ceced7012
Scope TestPauseWithLargeOffset to focus on what matters
See https://github.com/ppy/osu/actions/runs/6693917410/job/18186111009

This test is to make sure we don't seek before the original
pause time, so I've exposed that value precisely to avoid
CI woes.
2023-10-31 14:47:04 +09:00
Dean Herbert
3060cf1438
Merge pull request #25286 from frenzibyte/search-text-box-select-all
Automatically select existing search text when opening settings
2023-10-31 12:14:00 +09:00
Bartłomiej Dach
88e10dd051
Update framework 2023-10-30 20:19:52 +01: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
b2d3aa982d
Merge branch 'master' into fix-click-through-timeline 2023-10-30 12:52:00 +01: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
fbba3787d1
Merge pull request #25190 from frenzibyte/match-skin-element-animation-support
Match capability of animating legacy skin elements with osu!(stable)
2023-10-30 18:25:06 +09:00
Dean Herbert
8828562512
Merge pull request #25277 from Susko3/fix-cut-in-filter-textbox
Fix cut and copy not working in song select search filter textbox
2023-10-30 18:18:46 +09:00
Bartłomiej Dach
2dc2469507
Merge pull request #25303 from peppy/last-played-import-score-update
Update the last played date of a beatmap when importing a replay by the local user
2023-10-30 10:12:27 +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
Salman Ahmed
39abb8e408 Only run "select all on focus" behaviour on desktop platforms 2023-10-30 11:54:19 +03:00
Dean Herbert
66fa09ba66
Merge pull request #25287 from frenzibyte/fix-user-profile-support-banners
Update user profile overlay to show more than one tournament banner
2023-10-30 17:32:20 +09:00
Bartłomiej Dach
a000c06900
Merge branch 'master' into last-played-import-score-update 2023-10-30 09:29:07 +01:00
Bartłomiej Dach
19d10e5e45
Merge pull request #25300 from peppy/better-submission-logging
Improve log output surrounding score submission
2023-10-30 09:04:06 +01:00
Dean Herbert
4ae9b40a78
Update resources 2023-10-30 16:35:14 +09:00
Dean Herbert
caddbacfe8
Merge branch 'master' into gameplay-hud-redesign/counters 2023-10-30 16:35:10 +09:00
Dean Herbert
c1c8e2968f
Move operation to after user population 2023-10-30 15:46:09 +09:00
Dean Herbert
96dd7b3333
Update the last played date of a beatmap when importing a replay by the local user 2023-10-30 15:44:16 +09:00
Dean Herbert
a91b704d21
Fix some new nullable inspections 2023-10-30 15:10:10 +09:00
Dean Herbert
a8c3f59845
Clean up type display for web requests in logs 2023-10-30 15:07:35 +09:00
Dean Herbert
d90f29a5ff
Improve log output surrounding score submission 2023-10-30 15:07:26 +09:00
Salman Ahmed
c7bc8e6865 Move behaviour to settings search text box only 2023-10-30 06:41:01 +03:00
Salman Ahmed
984c30ded6 Load each tournament banner as soon as it is loaded 2023-10-30 06:20:15 +03:00
Salman Ahmed
922ad80cfc Update user profile overlay to show more than one tournament banner 2023-10-29 01:50:07 +03:00
Salman Ahmed
ec9ae12bbd Update API response model to accept array of tournament banners 2023-10-29 01:43:49 +03:00
Salman Ahmed
d877536dc0 Select all text content in SearchTextBox on focus 2023-10-29 01:03:38 +03:00
Susko3
366e41f111 Use local workaround instead of disabling clipboard entirely 2023-10-28 12:23:23 +02:00
Salman Ahmed
6526955b09
Merge branch 'master' into legacy-font-fixed-width 2023-10-28 04:46:30 +03:00
Salman Ahmed
bac306879a Minor reword on documentation 2023-10-28 03:18:13 +03:00
Salman Ahmed
dca5716709
Merge branch 'master' into legacy-font-fixed-width 2023-10-28 02:45:23 +03:00
Bartłomiej Dach
9ce2c1f49c
Exclude video events from being accounted for when calculating storyboard time bounds
Closes https://github.com/ppy/osu/issues/25263.

In some circumstances, stable allows skipping twice if a particularly
long storyboarded intro is being displayed:

    https://github.com/peppy/osu-stable-reference/blob/master/osu!/GameModes/Play/Player.cs#L1728-L1736

`AllowDoubleSkip` is calculated thus:

    3ea48705eb/osu!/GameModes/Play/Player.cs#L1761-L1770

and `leadInTime` is calculated thus:

    3ea48705eb/osu!/GameModes/Play/Player.cs#L1342-L1351

The key to watch out for here is `{first,last}EventTime`. `EventManager`
will calculate it on-the-fly as it adds storyboard elements:

    3ea48705eb/osu!/GameplayElements/Events/EventManager.cs#L253-L256

However, this pathway is only used for sprite, animation, sample,
and break events. Video and background events use the following pathway:

    https://github.com/peppy/osu-stable-reference/blob/master/osu!/GameplayElements/Events/EventManager.cs#L368

Note that this particular overload does not mutate either bound.
Which means that for the purposes of determining where a storyboard
starts and ends temporally, a video event's start time is essentially
ignored.

To reflect that, add a clause that excludes video events from
calculations of `{Earliest,Latest}EventTime`.
2023-10-27 22:24:17 +02:00
Bartłomiej Dach
99e590c8dd
Fix legacy sprite texts not matching stable with respect to fixed width
stable's `pSpriteText` has a `TextConstantSpacing` flag, that is
selectively enabled for some usages. In particular, these are:

- mania combo counter (not yet implemented)
- taiko combo counter (not yet implemented)
- score counter
- accuracy counter
- scoreboard entries (not yet implemented)

Everything else uses non-fixed-width fonts.

Hilariously, `LegacySpinner` _tried_ to account for this by changing
`Font` to have `fixedWidth: false` specified, only to fail to notice
that `LegacySpriteText` changes `Font` in its BDL, making the property
set do precisely nothing. For this reason, attempting to set `Font`
on a `LegacySpriteText` will now throw.
2023-10-27 20:14:39 +02:00
Bartłomiej Dach
c9cb0561f7
Move maxSizePerGlyph optional ctor param to init-only property
I'm doing this as I'm about to add more similar properties to
`LegacySpriteText` and I don't want to create a twenty-argument
constructor monstrosity.
2023-10-27 19:48:10 +02:00
Dean Herbert
5a9d4170e8
Merge pull request #24794 from bdach/score-encoding-cleanup
Correctly handle multiple online score ID types
2023-10-28 02:29:56 +09:00
Dean Herbert
4ed30342db
Merge pull request #25264 from bdach/quick-retry-f-rank
Fix quick retry immediately after completion marking score as failed
2023-10-28 02:29:21 +09:00
Bartłomiej Dach
35f30d6135
Scale back debug assertion
The import preparation task can actually be non-null when exiting even
if the player hasn't passed:

- fail beatmap
- click import button to import the failed replay
2023-10-27 14:39:58 +02:00
Bartłomiej Dach
5ad962070c
Fix skin editor freezing game if opened during active gameplay 2023-10-27 14:34:30 +02:00
Bartłomiej Dach
dc7f5cd6ed
Add preventive assertions concerning submission flow state 2023-10-27 13:30:51 +02:00
Bartłomiej Dach
2d5b1711f6
Share !HasPassed condition 2023-10-27 13:27:48 +02:00
Bartłomiej Dach
96d784e06b
Delete ScoreInfo.HasReplay as no longer needed 2023-10-27 12:39:54 +02:00
Bartłomiej Dach
86a8ab6db6
Fix quick retry immediately after completion marking score as failed
Closes https://github.com/ppy/osu/issues/25247.

The scenario involved here is as follows:

1. User completes beatmap by hitting all notes.
2. `checkScoreCompleted()` determines completion, and calls
   `progressToResults(withDelay: true)`.
3. `progressToResults()` schedules `resultsDisplayDelegate`, which
   includes a call to `prepareAndImportScoreAsync()`, a second in the
   future.
4. User presses quick retry hotkey.
   This calls `Player.Restart(quickRestart: true)`,
   which invokes `Player.RestartRequested`,
   which in turn calls `PlayerLoader.restartRequested(true)`,
   which in turn causes `PlayerLoader` to make itself current,
   which means that `Player.OnExiting()` will get called.
5. `Player.OnExiting()` sees that `prepareScoreForDisplayTask` is null
   (because `prepareAndImportScoreAsync()` - which sets it -
   is scheduled to happen in the future), and as such assumes that
   the score did not complete. Thus, it marks the score as failed.
6. `Player.Restart()` after invoking `RestartRequested` calls
   `PerformExit(false)`, which then will unconditionally call
   `prepareAndImportScoreAsync()`. But the score has already been marked
   as failed.

The flow above can be described as "convoluted", but I'm not sure I have
it in me right now to try and refactor it again. Therefore, to fix,
switch the `prepareScoreForDisplayTask` null check in
`Player.OnExiting()` to check `GameplayState.HasPassed` instead, as it
is not susceptible to the same out-of-order read issue.
2023-10-27 12:17:03 +02:00
Dean Herbert
f931f4c324
Remove reundant interface specification 2023-10-27 18:19:44 +09:00
Dean Herbert
fc25e24397
Merge branch 'master' into score-encoding-cleanup 2023-10-27 18:03:38 +09:00
Bartłomiej Dach
fdb81bfa4c
Rename methods to not mention "source clock" anymore 2023-10-26 19:38:52 +02:00
Bartłomiej Dach
565ae99e0d
Fix StopUsingBeatmapClock() applying adjustments to track it was supposed to stop using
- Closes https://github.com/ppy/osu/issues/25248
- Possibly also closes https://github.com/ppy/osu/issues/20475

Regressed in e33486a766.

`StopUsingBeatmapClock()` intends to, as the name says, stop operating
on the working beatmap clock to yield its usage to other components on
exit. As part of that it tries to unapply audio adjustments so that
other screens can apply theirs freely instead.

However, the aforementioned commit introduced a bug in this. Previously
to it, `track` was an alias for the `SourceClock`, which could be
mutated in an indirect way via `ChangeSource()` calls. The
aforementioned commit made `track` a `readonly` field, initialised in
constructor, which would _never_ change value. In particular, it would
_always_ be the beatmap track, which meant that
`StopUsingBeatmapClock()` would remove the adjustments from the beatmap
track, but then at the end of the method, _apply them onto that same
track again_.

This was only saved by the fact that clock adjustments are removed again
on disposal of the `MasterGameplayClockContainer()`. This - due to async
disposal pressure - could explain infrequently reported cases wherein
the track would just continue to speed up ad infinitum.

To fix, fully substitute the beatmap track for a virtual track at the
point of calling `StopUsingBeatmapClock()`.
2023-10-26 19:38:52 +02:00
Bartłomiej Dach
7779554360
Merge branch 'master' into fix-catch-distance-snap-grid 2023-10-26 17:50:15 +02:00
Dean Herbert
a463c37320
Merge pull request #25243 from bdach/song-select-volume-scroll-blocked
Fix left side of carousel blocking volume adjust hotkeys
2023-10-27 00:23:47 +09:00
Salman Ahmed
c51513705a
Merge branch 'master' into fix-catch-distance-snap-grid 2023-10-26 17:44:33 +03:00
Bartłomiej Dach
2fa2217381
Fix left side of carousel blocking volume adjust hotkeys
Closes https://github.com/ppy/osu/issues/25234.

A little ad-hoc, but probably fine...?
2023-10-26 16:26:35 +02:00
Bartłomiej Dach
5d6a58d443
Add failing test scene for scroll handling in song select 2023-10-26 16:24:16 +02:00
Salman Ahmed
54b69333f0
Merge branch 'master' into double-click-disabled-slider 2023-10-26 17:01:46 +03:00
Bartłomiej Dach
79910df959
Fix catch distance snap provider not hiding slider properly
Regressed in https://github.com/ppy/osu/pull/25171.

The old code was kinda dependent on correct order of setting `Disabled`.
`CatchHitObjectComposer` would disable distance spacing in its BDL, and
then via the base `DistancedHitObjectComposer.LoadComplete()`, the
slider would be faded out. The switch to composition broke that
ordering.

To fix, stop relying on ordering and just respond to changes as they
come. That's what bindables are for.
2023-10-26 15:46:32 +02:00
Bartłomiej Dach
b078748724
Merge pull request #25235 from peppy/add-ctrl-r-quick-retr
Add ability to quick retry using Ctrl-R
2023-10-26 15:27:04 +02:00
Bartłomiej Dach
cbb2a0dd70
Use both score ID types to deduplicate score on solo results screen 2023-10-26 15:09:59 +02:00
Bartłomiej Dach
c3e9f5184f
Fix SoloScoreInfo not copying over legacy score ID when converting to ScoreInfo 2023-10-26 15:09:34 +02:00
Bartłomiej Dach
900530080f
Make SoloScoreInfo implement IScoreInfo 2023-10-26 14:58:35 +02:00
Bartłomiej Dach
526ee6e140
Remove IScoreInfo : IHasNamedFiles inheritance 2023-10-26 14:58:33 +02:00
Dean Herbert
238e8175ae
Add ability to quick retry using Ctrl-R
Matches osu!stable
2023-10-26 21:26:26 +09:00
Bartłomiej Dach
3b9c4c9d53
Do not revert to default value when double-clicking disabled slider
Closes https://github.com/ppy/osu/issues/25228.
2023-10-26 12:11:26 +02:00
Dean Herbert
4cca70ee19
Fix iOS AOT compilation failure due to SharpCompress library upgrade 2023-10-26 17:42:28 +09:00
Bartłomiej Dach
ca4b09f8ef
Merge branch 'master' into score-encoding-cleanup 2023-10-26 09:04:05 +02:00
Salman Ahmed
07e7d533bf Bake external scale factors into glyph scale 2023-10-26 10:01:27 +03:00
Salman Ahmed
e119e045e4 Update "Argon" skin components layout and use the new components 2023-10-26 09:13:09 +03:00
Salman Ahmed
df80b4dcab Update "Argon" health display specifications to match design
Also adds a little white bar next to the display to match with the
components below it (score/accuracy/combo counters).
2023-10-26 09:12:05 +03:00
Salman Ahmed
50af1574cf Add "Argon" background wedges 2023-10-26 09:10:56 +03:00
Salman Ahmed
56eeb117ce Add "Argon" performance points counter 2023-10-26 09:10:10 +03:00
Salman Ahmed
daf4a03fd0 Abstractify PP counter logic from the "Triangles" implementation 2023-10-26 09:09:55 +03:00
Salman Ahmed
0aa0562dc0 Add "Argon" combo counter 2023-10-26 09:09:55 +03:00
Salman Ahmed
1f36acca1a Add "Argon" accuracy counter 2023-10-26 09:09:52 +03:00
Salman Ahmed
9ca672d689 Add "Argon" total score counter 2023-10-26 08:58:25 +03:00
Bartłomiej Dach
5e059a362f
Merge pull request #25223 from peppy/prompt-before-save-for-export
Fix editor not prompting before saving beatmap for export
2023-10-25 12:03:26 +02:00
Bartłomiej Dach
2a075065d8
Merge pull request #25217 from peppy/update-country-codes
Update country code names to match database
2023-10-25 08:31:28 +02:00
Dean Herbert
6934e045df
Fix editor not prompting before saving beatmap for export 2023-10-25 14:39:46 +09:00
Dean Herbert
23ea128f30
Merge branch 'master' into velocity-based-ball-animation 2023-10-25 14:01:19 +09:00
Dean Herbert
da07066a74
Add note about CountryCode being at parity with osu_countries 2023-10-25 13:03:03 +09:00
Dean Herbert
34505b3933
Merge pull request #25185 from bdach/minimum-sample-volume 2023-10-24 22:04:43 +09:00
Bartłomiej Dach
19be0055d5
Merge pull request #24921 from Pasi4K5/diff-name-search
Add ability to search for difficulty names using square brackets
2023-10-24 12:07:02 +02:00
Dean Herbert
c9161a7bfc
Remove incorrect copy paste fail 2023-10-24 17:32:01 +09:00
Bartłomiej Dach
abfe2ce0fe
Fix comment 2023-10-24 10:05:20 +02:00
Dean Herbert
fcb366af4d
Add diff= support for more advanced usages 2023-10-24 16:09:05 +09:00
Dean Herbert
6865d8894d
Simplify implementation and remove unsupported test coverage 2023-10-24 16:01:32 +09:00
Bartłomiej Dach
05d7516479
Merge pull request #25182 from peppy/song-select-scroll-improvemets
Improve mouse interactions at song select
2023-10-24 08:26:20 +02:00
Bartłomiej Dach
0e5a521695
Merge pull request #25157 from peppy/spinner-anti-cheese-final
Fix spinner cheese by accounting for spin directionality
2023-10-24 08:13:32 +02:00
Dean Herbert
1274829193
Block scroll and click operations on the left side of song select 2023-10-24 14:51:40 +09:00
Dean Herbert
17070707b5
Update and add remaining country codes to match database 2023-10-24 14:46:58 +09:00
Dean Herbert
11c949d091
Sort countries alphabetically 2023-10-24 14:45:25 +09:00
Dean Herbert
1591246afb
Update country code names to match database
Required for ASS / osu-web cross-compatibility
2023-10-24 13:53:31 +09:00
Pasi4K5
c5339f440e Apply code review suggestions 2023-10-23 23:30:54 +02:00
Dean Herbert
baf4130f3a
Fix test clock no longer accounting for rate changes 2023-10-23 22:28:40 +09:00
Dean Herbert
15c1fcbf96
Set ManualClock rate to 0 to avoid interpolation causing test errors 2023-10-23 20:29:36 +09:00
Andrei Zavatski
b18a5e63b7 Remove nullable disable 2023-10-23 13:29:46 +03:00
Andrei Zavatski
ac1783fa94 Fix comment 2023-10-23 13:26:59 +03:00
Andrei Zavatski
1dbdbd6de6 Merge branch 'master' into comments-image-size 2023-10-23 13:22:31 +03:00
Dean Herbert
fc1254ba47
Update resources 2023-10-23 16:15:56 +09:00
Salman Ahmed
8ed660d863 Remove incorrect logic 2023-10-23 01:58:25 +03:00
Salman Ahmed
12bb4b697c Support retrieving textures in argon skin from game resources 2023-10-23 01:24:32 +03:00
Andrei Zavatski
e1e9c3d7b3 Fix incorrect height limit 2023-10-22 00:33:26 +03:00
Andrei Zavatski
71718bd761 Limit comment sprite height 2023-10-22 00:11:59 +03:00
Salman Ahmed
491f119988 Add animation support for legacy osu!mania column lights 2023-10-21 00:22:34 +03:00
Salman Ahmed
ac8c2a173b Apply velocity into legacy slider ball animation rate 2023-10-20 22:47:45 +03:00
Bartłomiej Dach
c58a47760e
Merge pull request #25167 from peppy/fix-circle-radius
Fix circle scale not matching stable due to missing multiplier
2023-10-20 20:59:53 +02:00
Bartłomiej Dach
12282fff5c
Disallow setting sample volume lower than 5% in editor 2023-10-20 15:50:21 +02:00
Bartłomiej Dach
b321d556b6
Enforce minimum gameplay sample volume of 5% 2023-10-20 15:50:13 +02:00
Jamie Taylor
fbf8f52f7d
Add audio feedback for when keys are pressed during key binding 2023-10-20 21:01:37 +09:00
Jamie Taylor
6b28f85615
Change RevertToDefaultButton and BackButton to use Default sampleset instead 2023-10-20 21:01:36 +09:00
Jamie Taylor
6dc4dbde13
Reduce LoginOverlay pop-in/pop-out sample panning to match NowPlayingOverlay 2023-10-20 21:01:36 +09:00
Jamie Taylor
e17c94d09d
Change ruleset button hover samples to Default instead of Button to match other toolbar buttons 2023-10-20 21:01:36 +09:00
Jamie Taylor
bf608a6b08
Use Button sample set for NewsCard 2023-10-20 21:01:36 +09:00
Jamie Taylor
ba6e36bd67
Remove NowPlayingOverlay custom pop-in/pop-out samples in favour of the generic overlay ones 2023-10-20 21:01:36 +09:00
Jamie Taylor
6e8a4c2eff
Fix toolbar ruleset buttons not having hover sounds 2023-10-20 21:01:36 +09:00
Dean Herbert
906b700aca
Fix fudge not being applied 2023-10-20 20:18:14 +09:00
Dean Herbert
a26e0bda35
Merge pull request #25179 from bdach/insufficient-sample-point-query-leniency
Fix insufficient leniency when querying sample points
2023-10-20 20:07:32 +09:00
Dean Herbert
0ae0b0c353
Fix carousel "reset position" marging not scaling with UI scale correctly 2023-10-20 20:04:26 +09:00
Dean Herbert
137a1d948d
Allow interacting with the carousel anywhere in empty space at song select 2023-10-20 20:04:11 +09:00
Susko3
5bbbca3e44 Also support D for those with muscle memory from stable 2023-10-20 12:22:00 +02:00
Dean Herbert
3fb74cb5f9
Move helper method to LegacyRulesetExtensions and stop applying rounding allowance to catch
As discussed, it isn't used in stable like this. Was a mistake.
2023-10-20 18:57:14 +09:00
Dean Herbert
2ba6286470
Merge branch 'master' into fix-circle-radius 2023-10-20 18:53:36 +09:00
Susko3
4a3a4ee17f Change beatmap listing key to B to match Ctrl-B shortcut 2023-10-20 11:47:00 +02:00
Bartłomiej Dach
c89081589c
Fix insufficient leniency when querying sample points 2023-10-20 10:26:16 +02:00
Dean Herbert
686c45e21b
Merge branch 'master' into legacy-tick-test-coverage 2023-10-20 16:41:32 +09:00
Bartłomiej Dach
2c6bf9e346
Remove unused using directive 2023-10-19 20:45:47 +02:00
Dean Herbert
013b5fa916
Move beat snap grid implementation details to ScrollingHitObjectComposer 2023-10-19 23:54:34 +09:00
Dean Herbert
52c2eb93de
Merge branch 'master' into taiko-beat-snap-grid 2023-10-19 23:53:01 +09:00
Bartłomiej Dach
144ef5a87c
Remove DistancedHitObjectComposer 2023-10-19 11:46:30 +02:00
Bartłomiej Dach
dcfd6a0a8a
Remove DistancedHitObjectComposer inheritance from osu! composer 2023-10-19 11:46:30 +02:00
Bartłomiej Dach
3ab083b696
Split IPositionSnapProvider from IDistanceSnapProvider
In preparation to remove `DistancedHitObjectComposer`, split off
`IPositionSnapProvider` from `IDistanceSnapProvider`.

`DistancedHitObjectComposer` was not touching `IPositionSnapProvider`'s
only interface member at all, it was just forwarding it for subclasses
to override to their own leisure.
2023-10-19 11:45:24 +02:00
Dean Herbert
040d0970f2
Use DifficultyRange helper method in one more place 2023-10-18 23:54:18 +09:00
Dean Herbert
3a5490892c
Centralise and repair circle size calculations game-wide 2023-10-18 19:50:42 +09:00
Bartłomiej Dach
cff69d63a6
Add inline commentary in Mod{Day,Night}core about different speed adjustments 2023-10-18 12:27:16 +02:00
Dean Herbert
9907adc337
Take in IBindables and tidy up multiplier handling 2023-10-18 17:39:13 +09:00
Dean Herbert
161890292f
Move audio adjustment hookup to own method for clarity 2023-10-18 17:38:11 +09:00
Dean Herbert
e56ff33271
Also share ScoreMultiplier implementation 2023-10-18 17:23:50 +09:00
Dean Herbert
43238b0cee
Split common functionality from rate adjust mods into helper class 2023-10-18 17:23:50 +09:00
Dean Herbert
eabfcfbf2a
Merge branch 'master' into pitch_change 2023-10-18 16:33:03 +09:00
Dan Balasescu
939b55020c
Merge branch 'master' into legacy-tick-test-coverage 2023-10-18 15:21:31 +09:00
Joseph Madamba
18e8ca6245 Add ability to revert slider settings to default when double-clicking nub 2023-10-17 21:41:03 -07:00
Bartłomiej Dach
e927267c4d
Merge pull request #25155 from peppy/fix-new-inspections
Fix various new rider EAP inspections
2023-10-17 17:04:39 +02:00
Dean Herbert
d9fc532a9f
Merge pull request #25152 from bdach/key-binding-deduplication
Clear pre-existing bindings of same key combination to single action
2023-10-17 17:49:51 +09:00
Dean Herbert
e081fa48a2
Fix various other inspections 2023-10-17 17:48:51 +09:00
Dean Herbert
5341a335a6
Bypass Parent nullability checks for now 2023-10-17 17:48:45 +09:00
Bartłomiej Dach
7abd7fe658
Remove redundant explicit array type specification 2023-10-17 10:26:02 +02:00
Dean Herbert
4885c55ef0
Merge branch 'master' into key-binding-deduplication 2023-10-17 17:17:44 +09:00
Dean Herbert
4381169a3f
Combine selection and input handling logic for beat snap grids across all rulesets 2023-10-17 17:09:42 +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
Bartłomiej Dach
4cfc95c673
Add backwards migration of catch dash binding 2023-10-17 09:43:40 +02:00
Dean Herbert
1b9acdf55c
Abstract out common implementation of BeatSnapGrid 2023-10-17 16:42:52 +09:00
Dean Herbert
d26d4b8b79
Cache IScrollingInfo at a HitObjectComposer level automatically 2023-10-17 16:42:22 +09:00
Dean Herbert
165cd07428
Persist the state of "show speed changes" between editor sessions
Addresses https://github.com/ppy/osu/discussions/25149.
2023-10-17 16:01:02 +09:00
Dan Balasescu
d2a3f14d5b
Merge branch 'master' into mania-bonus-refactor 2023-10-17 13:28:04 +09:00
Bartłomiej Dach
828cedea33
Fix bindings being cleared if multiple bindings for same action have the same combination
This actually seems to be the case in catch (dash is bound to shift
twice). This is annoying but harmless, so let's work around it for now
to avoid ruining users' configs.
2023-10-16 22:20:26 +02:00
Bartłomiej Dach
9c6166ec3d
Add migration to remove duplicate bindings 2023-10-16 22:20:26 +02:00
Bartłomiej Dach
639c96e60c
Prevent ruleset input managers from reading duplicate bindings 2023-10-16 21:02:24 +02:00
Bartłomiej Dach
90c44cee54
Implement method to deduplicate keybindings 2023-10-16 20:51:57 +02:00
Bartłomiej Dach
79273b88f6
Add stub of method to deduplicate bindings (and failing test) 2023-10-16 20:48:52 +02:00
Bartłomiej Dach
f2436a5ecb
Remove no longer used scoring difficulty attributes 2023-10-16 12:36:58 +02:00
Bartłomiej Dach
e2192806e4
Use ID rather than SoloScoreID
The latter is apparently not going to be a thing anymore.
2023-10-16 12:02:55 +02:00
Bartłomiej Dach
fb2293821a
Allow watching replay from multi/playlist results screens 2023-10-16 11:20:02 +02:00
Bartłomiej Dach
c4af8591a5
Preserve OnlineID when importing scores
Previously, for lazer scores, the ID returned from `osu-web` was
discarded and replaced with -1, due to the fact that the appropriate
structures for unification with stable, as well as unification across
solo and multiplayer, were not in place yet.

Now we're at the point where scores from all the aforementioned sources
receive a `solo_scores` DB row, and as such, we can start treating
`solo_scores`-scheme IDs as canonical "online IDs" for a score.
2023-10-16 11:20:02 +02:00
Bartłomiej Dach
d5a733d244
Use solo score ID as OnlineID when converting from MultiplayerScore 2023-10-16 11:20:02 +02:00
Bartłomiej Dach
b144cfd55c
Add LegacyOnlineID handling to places that definitely need it
Mostly places that can interact with imported replays.

There are other places that use the online ID as a sort tiebreaker, or
to check presence of a score on results screens, but they should
probably still continue to only use `OnlineID`, since all scores with a
legacy online ID should have an online ID, but the converse is not
generally true.
2023-10-16 11:20:02 +02:00
Bartłomiej Dach
c53f4c144c
Encode/decode new OnlineID into/from LegacyReplaySoloScoreInfo 2023-10-16 11:20:02 +02:00
Bartłomiej Dach
fa519984df
Move legacy online ID encode/decode to legacy property 2023-10-16 11:20:02 +02:00
Bartłomiej Dach
c1a817fec6
Add LegacyOnlineID with backwards migration 2023-10-16 11:20:02 +02:00
Bartłomiej Dach
9cd33d9bb2
Merge pull request #25139 from peppy/collection-ordering-fix
Fix collections not being sorted alphabetically in context menus
2023-10-16 10:53:43 +02:00
Bartłomiej Dach
ee3ddacf46
Merge pull request #25140 from peppy/manage-collections-drag-handles-bye-bye
Remove drag handles from manage collections dialog for now
2023-10-16 10:47:38 +02:00
Dean Herbert
7139592e43
Fix collections not being sorted correctly in context menus 2023-10-16 16:03:12 +09:00
Dean Herbert
36112302d6
Remove drag handles from manage collections dialog for now
The realm implementation doesn't support this.
2023-10-16 15:51:18 +09:00
Dean Herbert
48832c64ac
Fix health bar animating when it shouldn't be
It wasn't correctly checking the current underlying health, which could
be zero in usages of `AccumulatingHealthProcessor`, for instance.

Closes #25046.
2023-10-16 13:12:04 +09:00
Dean Herbert
67a8a51ec7
Merge branch 'master' into generic-error-sfx 2023-10-14 03:56:41 +09:00
Dean Herbert
d4627a2402
Update resources 2023-10-14 03:48:59 +09:00
Bartłomiej Dach
c762241268
Merge branch 'master' into fix-hr-cs-mania-adjustment 2023-10-13 14:08:05 +02:00
Jamie Taylor
d97b618d02
Use new generic-error sample in appropriate places 2023-10-13 21:06:50 +09:00
Dean Herbert
3d5736188e
Merge pull request #25112 from bdach/dangerous-button-shades
Fix dangerous buttons using different shades of pink
2023-10-13 20:43:24 +09:00
Bartłomiej Dach
af89d69fc4
Fix dangerous buttons using different shades of pink 2023-10-13 13:16:24 +02:00
Bartłomiej Dach
a88779e588
Use dimmed placeholder text instead of empty box on cleared bindings 2023-10-13 13:10:04 +02:00
Dean Herbert
6358a5e210
Merge pull request #25105 from bdach/multiple-keys-one-binding
Disallow binding multiple bindings in a single section to one key
2023-10-13 20:01:33 +09:00
Bartłomiej Dach
a1c68b66f2
Rename KeyBindingRow parts to appease CodeFileSanity 2023-10-13 12:06:25 +02:00
Bartłomiej Dach
ea766b792d
Update localisation keys to match localisable member names 2023-10-13 11:58:55 +02:00
Bartłomiej Dach
5f51b8a7c9
Merge pull request #25097 from peppy/results-screen-progress-fast
Show results immediately if user hits "back" key after finishing gameplay
2023-10-13 11:54:34 +02:00
Dean Herbert
17b6ebbfbf
Avoid using a bindable in KeyBindingConflictPopover where data is never mutated 2023-10-13 18:40:21 +09:00
Dean Herbert
9b0c4acdef
Split KeyBindingRow out into partial pieces 2023-10-13 18:29:06 +09:00
Dean Herbert
8e609b6f1d
Switch records to classes for sanity
I don't have anything against records except for the capitalisation when
including the paramter names in a constructor.

ie. `new Record(This: 1);`
2023-10-13 18:19:12 +09:00
Bartłomiej Dach
d5557bbbfb
Merge pull request #25005 from minetoblend/multiplayer-invites
Add ability to invite players to multiplayer rooms
2023-10-13 11:09:28 +02:00
Dean Herbert
d7a06059f2
Rename string properties to give more hinting to localisers 2023-10-13 17:49:48 +09:00
Bartłomiej Dach
e04a57d67f
Use less dodgy method of specifying allowable notification types 2023-10-13 10:31:00 +02:00
Bartłomiej Dach
79cec7707d
Privatise setter 2023-10-13 09:56:46 +02:00
Dean Herbert
3787348448
Change Perfect judgement to not give extra score 2023-10-13 16:29:02 +09:00
Bartłomiej Dach
61b8d035fe
Use dangerous colour for "apply new" button 2023-10-13 09:08:13 +02:00
Dean Herbert
37411f923e
Merge branch 'master' into multiple-keys-one-binding 2023-10-13 15:07:12 +09:00