1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-15 13:07:24 +08:00
Commit Graph

35063 Commits

Author SHA1 Message Date
Dean Herbert
aa65b73f19
Merge branch 'master' into add-notif-externalbutton 2022-07-28 12:17:36 +09:00
Dean Herbert
f44a4c8652 Reorder file content to match expectations 2022-07-28 12:13:47 +09:00
Dean Herbert
f01c397220 Apply nullability 2022-07-28 12:12:46 +09:00
Andrew Hong
f097064eea Adjust to reviews 2022-07-27 21:52:38 -04:00
Andrew Hong
ac39d3a142 "Copied URL" -> "URL copied" 2022-07-27 21:52:28 -04:00
Nitrous
9088caa377
move LegacyComboCounter to osu.Game.Skinning 2022-07-28 08:36:26 +08:00
Nitrous
45c11f2b7b
account for gameplay start time 2022-07-28 08:01:38 +08:00
Dean Herbert
804bb33aed Hook up remaining data flows 2022-07-27 19:35:09 +09:00
Dean Herbert
438067a18b Convert realm data propagation to more correctly use Live<T>
wip
2022-07-27 19:35:09 +09:00
Dean Herbert
41393616d8 Replace BeatmapCollection with RealmBeatmapCollection 2022-07-27 19:35:09 +09:00
Dean Herbert
9c543fef48 Remove CollectionManager 2022-07-27 18:45:33 +09:00
Nitrous
a222278710
remove unused using 2022-07-27 16:01:35 +08:00
Nitrous
37e642b0bd
make SongProgress abstract
- move unrelated logic to `DefaultSongProgress`
- make `LegacySongProgress` inherit `SongProgress`
2022-07-27 15:19:21 +08:00
Nitrous
a12676c25d
scale down graph from bleeding through border 2022-07-27 14:35:18 +08:00
Andrew Hong
2d4655f61e Add Toast Notification to Copy URL 2022-07-27 02:25:40 -04:00
Dean Herbert
6b73f7c7ec Split out legacy import path from realm manager 2022-07-27 15:04:09 +09:00
Dean Herbert
e6a3659581 Guard against NewModifiedIndices being empty 2022-07-27 14:23:47 +09:00
Dean Herbert
24d75612e2 Always attempt to follow selection, even if difficulty name / metadata change 2022-07-27 14:18:53 +09:00
Dean Herbert
d8e605d8aa Fix broken tests due to badly reimplemented copy-pasted code 2022-07-27 13:58:01 +09:00
Dean Herbert
62ca3aada6 Transfer TODO comment across to copy-pasted implmentation 2022-07-27 13:53:27 +09:00
Dean Herbert
b803ec543f Remove unused combo DI retrieval 2022-07-27 13:50:03 +09:00
Dean Herbert
8105d4854a Fix beatmap carousel not maintaining selection if currently selected beatmap is updated 2022-07-27 13:33:48 +09:00
Nitrous
842ab3c5c1
remove unused using 2022-07-27 09:41:58 +08:00
Nitrous
3abf44da91
Merge branch 'master' into pie-chart-progress 2022-07-27 08:53:23 +08:00
Nitrous
a2320aeb27
replace SongProgress with LegacySongProgress 2022-07-27 08:52:27 +08:00
Nitrous
6b0f3674c3
implement LegacySongProgress 2022-07-27 08:51:55 +08:00
Dean Herbert
c30e8047ab
Merge pull request #19375 from novialriptide/contextmenu-external-beatmap
Add ContextMenu to beatmap external link
2022-07-26 19:06:10 +09:00
Dan Balasescu
b47f674ddb
Merge pull request #19400 from peppy/button-select-allow-more
Always allow selecting the top-most button using the select binding
2022-07-26 18:49:42 +09:00
Dan Balasescu
bc60552694
Merge pull request #19402 from peppy/debugger-attached-audio-warning-disable
Don't show audio playback issue notification if debugger is attached
2022-07-26 18:49:33 +09:00
Dan Balasescu
8f7dff5c2c
Merge pull request #19378 from peppy/beatmap-update-test
Add separate beatmap update flow to handle edge cases better
2022-07-26 18:49:20 +09:00
Dean Herbert
e782590b3c Don't show audio playback issue notification if debugger is attached
I've hit this countless times recently when debugging during the startup
procedure.
2022-07-26 18:20:46 +09:00
Dean Herbert
9173271900 Fix new update pathway not actually being used 2022-07-26 17:58:09 +09:00
Dean Herbert
1539fa704b Always allow selecting the top-most button using the select binding 2022-07-26 17:46:23 +09:00
Dean Herbert
6ff44ed2c6
Merge pull request #19399 from frenzibyte/carousel-order-stability
Maintain sort stability by using carousel item ID as a fallback
2022-07-26 17:33:30 +09:00
Dean Herbert
7f75184a01
Merge branch 'master' into beatmap-update-test 2022-07-26 17:27:36 +09:00
Andrew Hong
003aec86ae Rearrange sizeaxes 2022-07-26 04:27:22 -04:00
Andrew Hong
aaf6ec05bb Remove notification upon copy 2022-07-26 04:19:54 -04:00
Dean Herbert
4c22b55ce3 Fix incorrect handling if an update is processed with no changes 2022-07-26 17:00:28 +09:00
Dan Balasescu
412d42b907
Merge pull request #19393 from peppy/fix-statistics-panel
Avoid potential realm fetch after disposal in `StatisticsPanel`
2022-07-26 16:32:59 +09:00
Salman Ahmed
a4f6f2b9eb Make item ID comparer static 2022-07-26 09:55:37 +03:00
Dean Herbert
9939866f7d Revert one more missed change 2022-07-26 15:54:10 +09:00
Dean Herbert
8370ca9765 Add ImportAsUpdate method to IModelImporter to avoid otehr changes 2022-07-26 15:49:04 +09:00
Salman Ahmed
693ac8750c Remove remaining uses of "child" terminology in non-drawable components 2022-07-26 09:43:47 +03:00
Salman Ahmed
d7ef4170be Maintain sort stability by using carousel item ID as fallback 2022-07-26 09:40:41 +03:00
Dean Herbert
4efe09e7c2
Merge pull request #19377 from frenzibyte/fix-timeline-tests
Fix intermittent timeline zoom test failures
2022-07-26 15:18:35 +09:00
Dean Herbert
99bdf41717 Avoid potential realm fetch after disposal in StatisticsPanel
As seen at https://github.com/ppy/osu/runs/7513799859?check_suite_focus=true.
2022-07-26 15:12:23 +09:00
Dan Balasescu
1b2158ff04 Remove unused method 2022-07-26 14:15:59 +09:00
Dean Herbert
ef10145d6f Rename MenuCursorContainer and clean up code 2022-07-26 14:11:52 +09:00
Dean Herbert
ee0c67e114 Add ability to make cursor show even during touch input
I completely disagree with this from a UX perspective, but it's come up
so often that I figure we should just let users bone themselves.
2022-07-26 14:08:00 +09:00
Andrew Hong
a8e315abf0 Refactor 2022-07-25 17:16:33 -04:00
Andrew Hong
46c4e78477 Add notification and another menuitem 2022-07-25 16:59:00 -04:00
Dean Herbert
d41ac36a69 Fix scenario where import is expected to be empty 2022-07-25 23:59:27 +09:00
LukynkaCZE
a7c92fe5d6
Merge branch 'ppy:master' into add-missing-icons-to-recent-profile-section 2022-07-25 14:56:00 +02:00
Dean Herbert
8a0c8f5fd8 Fix some realm pieces not being cleaned up 2022-07-25 19:51:19 +09:00
Dean Herbert
2e14d8730c Move implementation of updating a beatmap to BeatmapImporter 2022-07-25 19:51:19 +09:00
Dean Herbert
2363a3fb7b Persist DateAdded over beatmap updates 2022-07-25 19:51:19 +09:00
Dean Herbert
e5ad07454c Ensure previous version prior to update loses online info after marked pending delete 2022-07-25 19:51:19 +09:00
Dean Herbert
912218e123 Ensure scores are transferred after beatmap update if difficulty hash didn't change 2022-07-25 19:51:19 +09:00
Dean Herbert
b7f6413bce Fix old version of beatmap potentially not being deleted during update flow
This can happen if the online IDs are not present in the `.osu` files.
Previously this was only working due to the early logic in the import
process (that relies on matching all online IDs perfectly).
2022-07-25 19:51:19 +09:00
Dean Herbert
6a3e8e31de Centralise calls to reset online info of a BeatmapInfo 2022-07-25 19:51:19 +09:00
Salman Ahmed
1b6ebcfd87 Remove SubmittableScore and replace with SoloScoreInfo extension method 2022-07-25 13:43:43 +03:00
Salman Ahmed
d04df19c7e Remove APIScore and replace its final usage 2022-07-25 13:13:46 +03:00
Dan Balasescu
068063a43a
Merge pull request #19371 from peppy/fix-working-cache-invalidation
Fix calls to `GetWorkingBeatmap` invalidating cache too often
2022-07-25 18:29:46 +09:00
Dan Balasescu
1d48cee230
Merge pull request #19373 from peppy/fix-negative-star-rating-display
Fix star ratings which are still being calculated showing as "-1" at song select
2022-07-25 18:20:30 +09:00
Dan Balasescu
6937296192
Merge pull request #19374 from peppy/fps-counter-no-scheduler
Refactor `FPSCounter` to not use scheduled tasks
2022-07-25 18:19:59 +09:00
Salman Ahmed
48bcf57066 Mark SetupZoom and parameterless ZoomableScrollContainer ctor as protected 2022-07-25 12:07:50 +03:00
Salman Ahmed
07c6b44864 Fix Timeline attempting to setup zoom with unloaded track 2022-07-25 12:07:50 +03:00
Salman Ahmed
123930306b Refactor ZoomableScrollContainer to allow setting up zoom range and initial zoom after load 2022-07-25 12:07:50 +03:00
Salman Ahmed
678acabf7e
Merge branch 'master' into log-diffcalc-failure 2022-07-25 11:16:31 +03:00
Andrew Hong
f1534da683 Formatting issues 2022-07-25 04:13:05 -04:00
Andrew Hong
fcf767e28b Add contextmenu to beatmap external link 2022-07-25 04:07:33 -04:00
Dean Herbert
2dd99ef1fd Refactor FPSCounter to not use scheduled tasks
While on the surface this looks harmless (ignoring allocations),
`Scheduler` doesn't clear cancelled tasks until they reach their
execution time. This can cause an increase in time spent processing the
scheduler itself.

I don't think a per-frame updating component should use scheduled tasks
in this way in the first place, so I've just rewritten the logic to
avoid that overhead altogether.
2022-07-25 16:26:48 +09:00
Salman Ahmed
4d90e6bbac Flip method to read better 2022-07-25 10:03:06 +03:00
Dean Herbert
6bf2645b1a Fix StarRatingDisplay not handling negative numbers as "pending" 2022-07-25 15:44:54 +09:00
Salman Ahmed
e402e919ab Display placeholder for user profile scores 2022-07-25 09:40:20 +03:00
Dean Herbert
2ec90e37bb Fix calls to GetWorkingBeatmap invalidating cache too often
With recent changes, the pathway between refetching (on request) and
refetching (on requirement due to unpopulated files) was combined.
Unfortunately this pathway also added a forced invalidation, which
should not have been applied to the second case.

Closes https://github.com/ppy/osu/issues/19365.
2022-07-25 15:30:49 +09:00
Salman Ahmed
f54cee0270 Display placeholder for leaderboard top scores 2022-07-25 09:18:04 +03:00
Salman Ahmed
91d1c9686c Separate unprocessed PP placeholder to own class 2022-07-25 09:07:51 +03:00
Salman Ahmed
54eb2b98a9 Display exclamation triangle on scores with unprocessed PP 2022-07-25 07:30:57 +03:00
Salman Ahmed
3beb1da3de Merge branch 'master' into beatmap-overlay-null-pp 2022-07-25 07:18:03 +03:00
Dean Herbert
12e2e63a1c
Merge pull request #19349 from bdach/mod-overlay/presets-column
Implement basic appearance of mod preset column
2022-07-25 13:10:47 +09:00
Dan Balasescu
3d97b74813 Log beatmap difficulty retrieval failures during score calculation 2022-07-25 13:03:47 +09:00
Salman Ahmed
fa9daa6899 Fix TestSceneReplayRecorder not using score provided by gameplay state 2022-07-25 05:21:27 +03:00
Salman Ahmed
e0266b0d81 Reword comment slightly 2022-07-25 04:39:14 +03:00
Salman Ahmed
f5a5887669 Fix players potentially not displaying in spectator after restart 2022-07-25 04:21:53 +03:00
Bartłomiej Dach
446485f804
Move localisation string to common location 2022-07-24 23:30:52 +02:00
Bartłomiej Dach
8af9cfbe40
Add readonly modifier 2022-07-24 23:29:18 +02:00
Bartłomiej Dach
6a67d76d7c
Add basic mod preset column implementation 2022-07-24 16:39:04 +02:00
Bartłomiej Dach
b2f8934117
Extract base mod select column presentation logic 2022-07-24 16:39:03 +02:00
Salman Ahmed
4332e6cae9 Fix OsuSliderBar throwing on negative draw width 2022-07-24 08:34:24 +03:00
Salman Ahmed
7c477e6f22 Fix beatmap overlay leaderboard not handling null PP scores properly 2022-07-24 04:20:49 +03:00
LukynkaCZE
1aa0d49d81 Code Quality 2022-07-23 12:27:24 +02:00
Dean Herbert
f1791e79e3 Add error logging for background processing failures 2022-07-23 19:22:16 +09:00
LukynkaCZE
9db06fafd0 Fix code formatting 2022-07-23 12:16:11 +02:00
LukynkaCZE
33b442d5d0 Add missing icons to UserProfileRecentSection 2022-07-23 12:06:30 +02:00
Salman Ahmed
836cb0927c
Merge branch 'master' into disable-backgorund-beatmap-processor-for-tests 2022-07-23 11:55:24 +03:00
Salman Ahmed
840ad8fad2 Fix background beatmap processor resetting star ratings in tests 2022-07-23 11:10:59 +03:00
Salman Ahmed
2829a7e836
Merge branch 'master' into beatmap-overlay-modded-stats 2022-07-23 10:38:13 +03:00
Salman Ahmed
661c79baf6 Add explanatory comment 2022-07-23 10:16:11 +03:00
Adam Baker
06462c13dd Overwrite IBindable<ReadOnlyList<Mod>> cache in BeatmapSetOverlay
Implement fix as suggested
2022-07-22 23:15:24 -05:00
Adam Baker
d451bc8fda Revert commits
This reverts commit 28586c704d.

This reverts commit d9d35bb847.
2022-07-22 22:25:49 -05:00
Dean Herbert
98593fbba1
Merge pull request #19287 from bdach/mod-overlay/preset-panel 2022-07-23 11:18:51 +09:00
Dean Herbert
db632c0d6e Inline rolling duration 2022-07-23 02:38:00 +09:00
Dean Herbert
475679ca66 Fix DI failure 2022-07-23 02:27:47 +09:00
Dean Herbert
bb46ba66e0 Simplify TotalScoreCounter tick playback logic 2022-07-23 02:27:17 +09:00
Bartłomiej Dach
d0e15d04cc
Merge branch 'master' into mod-overlay/preset-panel 2022-07-22 19:23:09 +02:00
Bartłomiej Dach
f3ceabc53f
Rename ModSelect{Overlay -> }Panel 2022-07-22 19:17:22 +02:00
Dean Herbert
9f045209b9 Simplify score panel balance adjustment 2022-07-23 02:09:08 +09:00
Dean Herbert
e08e4fc426 Update framework 2022-07-23 00:04:14 +09:00
Dean Herbert
9c0d793896 Update resources 2022-07-23 00:04:11 +09:00
Jamie Taylor
62d4d4b055
Add dynamic panning fun to score panel sfx 2022-07-22 21:03:47 +09:00
Jamie Taylor
89da21b6de
Add total score counter sfx 2022-07-22 21:03:47 +09:00
Jamie Taylor
6ce8e74e6b
Add panel appearance sounds 2022-07-22 21:03:46 +09:00
Dan Balasescu
d9105c9785
Merge pull request #19272 from peppy/beatmap-background-reprocessing
Add background beatmap processing
2022-07-22 20:33:26 +09:00
Dean Herbert
63fe4f265f
Merge pull request #19263 from frenzibyte/fix-failed-score-statistics
Populate failed scores with "miss" results for all remaining hitobjects
2022-07-22 20:16:16 +09:00
Adam Baker
d9d35bb847 Set BeatmapSetHeaderContent details to not show modded values 2022-07-22 05:43:56 -05:00
Adam Baker
28586c704d Add showModdedValue parameter to StatisticRow 2022-07-22 05:43:05 -05:00
Dean Herbert
bfafb4480e
Merge pull request #19296 from smoogipoo/fix-timeline-focus-point
Fix timeline zoom focus point when using zoom buttons
2022-07-22 17:43:36 +09:00
Dan Balasescu
1d69090301
Merge pull request #19295 from frenzibyte/filter-control-available-area
Fix sorting mode not filling up to usable area in filter control
2022-07-22 17:20:40 +09:00
Dan Balasescu
83f696e757
Merge pull request #19279 from peppy/fps-counter-cleanup
Cleanup pass on `FPSCounter`
2022-07-22 17:20:32 +09:00
Dan Balasescu
e1df50c8ff Fix timeline zoom focus point when using buttons 2022-07-22 17:03:05 +09:00
Dean Herbert
72916d708c
Merge pull request #19294 from peppy/fix-timeline-feedback-loop
Fix timeline `alt`+`scroll` zoom not correctly zooming to current mouse position
2022-07-22 16:05:38 +09:00
Dean Herbert
be0d73f951
Merge branch 'master' into fps-counter-cleanup 2022-07-22 15:39:37 +09:00
Dean Herbert
1774a96455
Merge pull request #19278 from Cwazywierdo/timeline-relative-zoom
Make editor timeline zoom relative to song length
2022-07-22 15:37:47 +09:00
Dan Balasescu
5444ce0cc9
Merge pull request #19277 from peppy/fps-counter-no-rolling-counter
Avoid using `RollingCounter` in fps counter
2022-07-22 15:28:13 +09:00
Dean Herbert
6eb42d08ce Fix timeline zoom receiving feedback from bindable changes
This causes the focal point zooming to not work (as the focal point is
lost). There's no need to handle ongoing changes to
`BeatmapInfo.TimelineZoom` because it is not a property which is changed
at runtime.
2022-07-22 15:25:57 +09:00
Salman Ahmed
3b913bb9ad Fix sorting mode not filling up to usable area in filter control 2022-07-22 09:15:48 +03:00
Dean Herbert
4cec9a085a Combine both calls to use same pathway 2022-07-22 14:59:20 +09:00
Dan Balasescu
f87efae115
Merge pull request #19293 from peppy/skin-editor-save-hotkey
Add the ability to save in the skin editor using system save hotkey
2022-07-22 14:43:34 +09:00
Dean Herbert
f713253d1b Fix formatting inconsistencies in empty ctors 2022-07-22 14:00:29 +09:00
Dean Herbert
92f59ce9a0 Add the ability to save in the skin editor using system save hotkey 2022-07-22 13:10:18 +09:00
LukynkaCZE
ed94d7fce8 Fix requested changes 2022-07-22 02:46:17 +02:00
Adam Baker
997fe00cdc Fix zoom delta math 2022-07-21 17:29:13 -05:00
Adam Baker
d69dc457ba Extract zoom delta method 2022-07-21 17:28:43 -05:00
LukynkaCZE
ebe386c288
Merge branch 'ppy:master' into editor-save-toast 2022-07-22 00:25:23 +02:00
Bartłomiej Dach
a3090003de
Add tooltip showing contents of mod preset 2022-07-21 23:29:21 +02:00
Bartłomiej Dach
bdff7f1ef4
Implement basic appearance of mod preset panels 2022-07-21 23:29:21 +02:00
Bartłomiej Dach
de0a076eb6
Add model class for mod presets 2022-07-21 23:29:21 +02:00
Bartłomiej Dach
6cd18fad99
Fix code inspections after base panel class extraction 2022-07-21 23:29:08 +02:00
Bartłomiej Dach
d796b7d53c
Extract base mod select overlay panel presentation logic 2022-07-21 22:37:00 +02:00
Dean Herbert
b9f5074c13 Merge branch 'fps-counter-no-rolling-counter' into fps-counter-cleanup 2022-07-22 02:22:01 +09:00
Dean Herbert
b3aa496ba7 Add handling of realm disposed exceptions 2022-07-22 00:14:30 +09:00
Dean Herbert
0eeafea500 Increase responsiveness to change slightly 2022-07-21 23:37:32 +09:00
Dean Herbert
c140601c2d Cleanup pass on FPSCounter 2022-07-21 23:02:31 +09:00
Dean Herbert
fc6445caea Rate limit updates for good measure 2022-07-21 22:55:45 +09:00
Dean Herbert
3d2603e0eb Remove unused classes 2022-07-21 22:51:35 +09:00
Dean Herbert
3fad481a96 Avoid using RollingCounter in fps counter
It wasn't made to be updated every frame, and it shows. Inaccurate for
reasons I'm not really interested in investigating, because I don't want
to incur the `Transorm` overhead in the first place for an fps counter.

Was only used originally out of convenience.
2022-07-21 22:50:02 +09:00
Adam Baker
a4f071fe53 Make zoom sensitivity relative to containers max zoom 2022-07-21 08:26:48 -05:00
Dean Herbert
5db4d9437a Add missing using statement 2022-07-21 21:39:24 +09:00
Dan Balasescu
6fac34c721
Merge pull request #19274 from peppy/fix-fps-counter-fps-inaccuracy
Fix draw FPS being inaccurate due to using `ElapsedFrameTime`
2022-07-21 20:55:14 +09:00
Dan Balasescu
2001d79bb2
Merge pull request #19269 from peppy/fix-update-button-test-failure
Fix `UpdateBeatmapSetButton` intermittent test failure
2022-07-21 20:36:00 +09:00
Dean Herbert
4c4939d18d Fix draw FPS being inaccurate due to using ElapsedFrameTime
Had a feeling this would be the case.

Basically, we're calculating on the update thread and checking the last
value of draw thread's `ElapsedFrameTime`. In the case that value is
spiky, a completely incorrect fps can be displayed.

I've left the spike display do use `ElapsedFrameTime`, as
`FramesPerSecond` is too averaged to see spikes.
2022-07-21 19:17:58 +09:00
Dean Herbert
fb728fbed1 Fix FPS counter not being wide enough to show large fps numbers 2022-07-21 18:56:39 +09:00
Dean Herbert
94cd641fb4 Change migration to trigger reprocessing on every local beatmap
Was originally relying on the fact that this would be triggered due to a
null `LastOnlineUpdate`, but wouldn't cover the case of beatmaps with no
`OnlineID`.
2022-07-21 18:31:12 +09:00
Dean Herbert
1374738a0d Add test coverage 2022-07-21 18:20:46 +09:00
Dean Herbert
d5e0dba9da Change default value of StarRating to -1 2022-07-21 18:20:46 +09:00
Dean Herbert
04f48d8862 Add better log output and sleeping during gameplay sections 2022-07-21 18:20:46 +09:00
Dean Herbert
57a41c6897 Add basic background processor 2022-07-21 18:20:46 +09:00
Dean Herbert
68f28ff660 Add last applied version to RulesetInfo 2022-07-21 18:15:25 +09:00
Dean Herbert
aca19a005e Add versioning to difficulty calculators 2022-07-21 18:15:25 +09:00
Salman Ahmed
559254db31
Merge branch 'master' into fix-update-button-test-failure 2022-07-21 11:15:43 +03:00
Salman Ahmed
aa7c16ee5f
Merge branch 'master' into change-carousel-item-terminology 2022-07-21 10:29:13 +03:00
Dan Balasescu
defadeef47
Merge pull request #19250 from peppy/fps-counter
Add game-side FPS counter
2022-07-21 16:26:38 +09:00
Dean Herbert
fc0c9f76bd Fix UpdateBeatmapSetButton intermittent test failure
Carousel would only expire items when off-screen. This meant that for a
case (like a test) where items are generally always on-screen,
`UpdateBeatmapSet` calls would result in panels remaining hidden but not
cleaned up.
2022-07-21 16:24:48 +09:00
Dean Herbert
3cfe624af1 Fix one more missed method with incorrect terminology 2022-07-21 16:16:41 +09:00
Dean Herbert
a05d7f4d8c Change carousel terminology to not use Children / InternalChildren 2022-07-21 16:06:06 +09:00
Dean Herbert
07e1763a70 Tweak velocity a bit more (and simplify in multiple places) 2022-07-21 14:25:11 +09:00
Salman Ahmed
a97170a272 Keep Rank bindable enabled on score fail 2022-07-21 08:16:17 +03:00
Salman Ahmed
9df49db45f Include bonus/ignore judgements in statistics fill logic 2022-07-21 08:13:09 +03:00
Salman Ahmed
ad09e728fd Move Passed assignment inside FailScore 2022-07-21 08:12:06 +03:00
TacoGuyAT
2f16174d3d Changed control points set to private; Cleanup 2022-07-21 07:25:44 +03:00
Salman Ahmed
c1bcbd9c8a Fix fail score not handling bonus/tick-only beatmaps 2022-07-21 07:20:59 +03:00
Dean Herbert
56106e43d2 Avoid div-by-zero 2022-07-21 13:06:43 +09:00
Dean Herbert
311a0a3de0 Always show counter temporarily when aim FPS changes 2022-07-21 12:57:40 +09:00
Dean Herbert
705ff06ea5 Better handle spikes and significant changes 2022-07-21 12:50:39 +09:00
Dean Herbert
285516b111 Fix isDisplayed never actually being set 2022-07-21 12:40:27 +09:00
TacoGuyAT
d6c3a52494 Added missing braces 2022-07-21 06:38:33 +03:00
TacoGuyAT
ed8e065a86 Logo triangles speed and beat sync tweaks 2022-07-21 06:13:45 +03:00
Dean Herbert
728e22fbce Improve tooltip display when running single thread 2022-07-21 12:06:22 +09:00
Salman Ahmed
0f0b19da4a Populate score with remaining "miss" statistics on fail/exit 2022-07-21 06:01:36 +03:00
Salman Ahmed
c4089b71bd Store maximum score results from simulated autoplay 2022-07-21 06:00:41 +03:00
Dean Herbert
e1a577ea48
Adjust spacing to make things feel more even
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-07-21 11:59:51 +09:00
Dean Herbert
57ecc3a6df
Remove unnecessary negative spacing from thread names
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-07-21 11:59:26 +09:00
Dean Herbert
c7313b4198
Fix alignment glitching due to non-matching anchor/origin
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-07-21 11:58:28 +09:00
Dean Herbert
75453b78c0 Adjust colours and metrics 2022-07-21 00:09:46 +09:00
Dean Herbert
f54aff2ece Add global key binding for FPS toggle 2022-07-21 00:09:46 +09:00
Dean Herbert
0a1744faca Add to game and bind with configuration setting 2022-07-20 23:49:19 +09:00
Dean Herbert
0fb959a565 Stay displayed while hovering 2022-07-20 23:49:19 +09:00
Dean Herbert
03e644e548 Choose colours based on relative performance goals 2022-07-20 23:49:19 +09:00
Dean Herbert
0c3d43026d Add initial structure for fps counter 2022-07-20 23:49:19 +09:00
Dan Balasescu
7dfc18a0e3
Merge pull request #19208 from frenzibyte/remove-score-multiplier-on-custom-mod-settings
Remove score multiplier on difficulty-increasing mods with customised settings
2022-07-20 20:12:59 +09:00
Dean Herbert
62133fa069
Merge pull request #19246 from frenzibyte/fix-wiki-navigation
Fix wiki overlay not handling path redirection properly
2022-07-20 20:08:11 +09:00
Dan Balasescu
2b399ec7ad
Merge branch 'master' into date-submitted-ranked 2022-07-20 18:36:57 +09:00
Salman Ahmed
5e933cb466
Improve comment wording
Co-authored-by: Dean Herbert <pe@ppy.sh>
2022-07-20 09:43:32 +03:00
Dan Balasescu
de29078db2 Remove nullable disables 2022-07-20 15:16:40 +09:00
Dan Balasescu
f9c02c34b6 Merge branch 'master' into beatmap-update-online-flow 2022-07-20 15:15:51 +09:00
Salman Ahmed
474c1a8a7a Fix wiki overlay not handling path redirection properly 2022-07-20 09:06:11 +03:00
Salman Ahmed
e7f35701db Add failing test case 2022-07-20 09:06:11 +03:00
Salman Ahmed
6ce6f6f7df
Merge branch 'master' into remove-score-multiplier-on-custom-mod-settings 2022-07-20 08:57:43 +03:00
Dean Herbert
af4d7feb9b
Merge pull request #19244 from frenzibyte/highlight-perfect-ticks
Highlight perfect slider tick/end values in beatmap info leaderboards
2022-07-20 14:44:03 +09:00
Dan Balasescu
6c0d7f8099
Merge pull request #19235 from andy840119/remove-nullable-disable-in-the-mods
Remove nullable disable annotation in the mods.
2022-07-20 14:39:32 +09:00
Dan Balasescu
c4e32742dc
Merge pull request #19234 from Cwazywierdo/edit-map-carousel
Fix multiplayer map selection carousel opening to wrong map
2022-07-20 13:53:41 +09:00
Dean Herbert
2a76a04619 Update framework 2022-07-20 13:41:36 +09:00
Dan Balasescu
1fae683b33
Merge pull request #19240 from peppy/fix-mouse-floating-position
Fix floating mouse position not running correctly in single thread mode
2022-07-20 13:32:21 +09:00
Dan Balasescu
ebb9861377
Merge branch 'master' into remove-nullable-disable-in-the-mods 2022-07-20 13:28:28 +09:00
Adam Baker
cecf654a7b
Update osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSubScreen.cs
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-07-19 18:58:59 -05:00
Salman Ahmed
ae6aab2555
Merge branch 'master' into edit-map-carousel 2022-07-20 02:43:47 +03:00
Salman Ahmed
990d3ffb39
Merge branch 'master' into fix-editor-clap-finish-order 2022-07-20 02:26:40 +03:00
Salman Ahmed
1270abdf42 Highlight perfect slider tick/end values in beatmap info leaderboards 2022-07-20 00:53:10 +03:00
LukynkaCZE
5987acfbca Fixed code formatting 2022-07-19 22:59:25 +02:00
LukynkaCZE
51a0b5afdc Skin Editor 2022-07-19 22:18:19 +02:00
LukynkaCZE
a00da279b7 Beatmap Editor Save Toast 2022-07-19 21:38:23 +02:00
Salman Ahmed
4210ec6502 Merge branch 'master' into remove-score-multiplier-on-custom-mod-settings 2022-07-19 19:21:26 +03:00
Salman Ahmed
89653b74c7 Only add setting tracker when customisation is permitted 2022-07-19 19:21:16 +03:00
Dean Herbert
7be5c638e4 Fix floating mouse position not running correctly in single thread mode
Noticed while testing on iOS. Previously, the interpolation was being
done in input handling but using the update thread clock, leading to
incorrect application.
2022-07-20 00:22:45 +09:00
Dean Herbert
87afa7317b Update framework 2022-07-19 23:12:49 +09:00
Dean Herbert
25028bb7fa Fix editor clap/finish buttons being ordered against expectations 2022-07-19 22:36:11 +09:00
Adam Baker
4164f260b3 Fix code quality errors 2022-07-19 08:12:12 -05:00
為什麼
317558f876 Mark the shader as non-nullable because shader should always has the value.
And initialize the breaks to avoid get the null instance.
2022-07-19 20:39:41 +08:00
為什麼
3af093cb27 Remove the null check because bindable should always have the value. 2022-07-19 20:39:41 +08:00
為什麼
ce1bb206c8 Initialize some bindables for prevent get the null instance. 2022-07-19 20:39:41 +08:00
andy840119
1f9f2b413e Remove the nullable disable annotation.
Also, mark as nullable for some properties.
2022-07-19 20:39:41 +08:00
Dean Herbert
6357223341 Fix incorrect DI fetch and apply nullability to ModelDownloader 2022-07-19 20:06:34 +09:00
Dean Herbert
30daa0fd44 Add ranked and submitted date storage and filtering 2022-07-19 19:55:56 +09:00
Dean Herbert
07874efa7f Set last online update to actual value provided by data source 2022-07-19 19:39:51 +09:00
Dean Herbert
17046b0553 Add basic handling of download failures 2022-07-19 19:01:23 +09:00
Dean Herbert
a16bf35581 Rename button class and add basic progress display 2022-07-19 18:29:36 +09:00
Dean Herbert
da360af15a Fix vertical centering of button 2022-07-19 18:29:36 +09:00
Dean Herbert
eaf4f6dbb7 Add beatmap update button 2022-07-19 18:29:36 +09:00
Dean Herbert
6adcf82d2e Add change ingester to handle passing of online changes to correct target components 2022-07-19 17:57:01 +09:00
Dean Herbert
cd39f444ef Expose event from OnlineMetadataClient rather than calling BeatmapUpdater directly 2022-07-19 17:57:01 +09:00
Dean Herbert
6ea380d649 Add new properties to BeatmapInfo to track online hash and updates 2022-07-19 17:57:01 +09:00
Dean Herbert
12e5bc3f3d Fix BeginPlayingInternal firing actual errors when beatmap not available online 2022-07-19 17:14:57 +09:00
Adam Baker
5008a73774 Make add item button open to the last beatmap in queue 2022-07-19 02:04:19 -05:00
Dean Herbert
2716bd41d9 Use more correct json casing in APIScoresCollection
osu-web API is already returning both of these casings for backwards
compatibility, but the former will be removed at some point.

e540276721/app/Http/Controllers/BeatmapsController.php (L314-L315)
2022-07-19 15:34:17 +09:00
Dan Balasescu
c07f78409e
Merge pull request #19189 from peppy/peform-actions-after-reconnect
Fix creating multiplayer game during server migration not joining new room correctly
2022-07-19 14:46:29 +09:00
Dean Herbert
8c680643fd
Merge pull request #19225 from frenzibyte/reduce-bindable-allocation
Reduce `Bindable` allocations in hitobject classes via lazy initialisation
2022-07-19 14:45:46 +09:00
Adam Baker
59018ab5ba Fix multiplayer queue edit button opening to the wrong beatmap 2022-07-18 23:21:16 -05:00
Salman Ahmed
8f80a22ef9 Fix osu! and catch hitobjects no longer scaled to 1 by default 2022-07-19 07:00:13 +03:00
Salman Ahmed
5ddb5a3d74 Introduce HitObjectProperty<T> 2022-07-19 05:39:10 +03:00
Bartłomiej Dach
6f37487528
Replace calls to defective Humanizer methods with correct version 2022-07-18 22:34:58 +02:00
Bartłomiej Dach
ffa9a83a4f
Add own fixed copy of defective Humanizer methods 2022-07-18 21:37:31 +02:00
Dean Herbert
afa831f6fe Update framework 2022-07-19 01:18:09 +09:00
Salman Ahmed
f1133ca8f6
Merge branch 'master' into fix-multiplayer-participant-panel-null-ruleset 2022-07-18 18:15:32 +03:00
Dean Herbert
e14e2cca45
Merge pull request #19212 from peppy/fix-audio-equality-fuck
Fix audio/background equality not correctly using `BeatmapInfo` local filenames
2022-07-18 19:28:51 +09:00
Salman Ahmed
2befcfedbb
Merge branch 'master' into fix-multiplayer-participant-panel-null-ruleset 2022-07-18 12:24:47 +03:00
Dean Herbert
0c75245806
Merge pull request #19139 from frenzibyte/score-country-storage
Support storing user country on databased scores
2022-07-18 18:13:57 +09:00
Dean Herbert
22a9e7e275 Fix audio/background equality not correctly using BeatmapInfo local filenames 2022-07-18 17:05:21 +09:00
Salman Ahmed
b5c7d07ba8
Merge branch 'master' into fix-user-profile-overlay 2022-07-18 10:27:33 +03:00
Dean Herbert
b8c90266de
Merge pull request #19209 from 3stantedja/make-contracted-stats-titlecase
Make sure stats name are title-cased when score panel is contracted
2022-07-18 16:26:20 +09:00
Dean Herbert
933a41554b
Merge pull request #19187 from peppy/fix-reconnect-new-spectator-session
Fix spectator client not correctly reconnecting after shutdown
2022-07-18 16:25:04 +09:00
Dean Herbert
1e151baae8 Use Unknown instead of default 2022-07-18 16:24:08 +09:00
Dean Herbert
51f91fe62e Update naming 2022-07-18 16:17:20 +09:00
Dean Herbert
eddf106f7c
Merge branch 'master' into score-country-storage 2022-07-18 16:12:40 +09:00
Dean Herbert
a7f19cc796
Merge pull request #19137 from frenzibyte/country-enum
Replace `Country` class with enumeration
2022-07-18 16:12:24 +09:00
Salman Ahmed
e86a35fe33 Fix NRE on footer button mods 2022-07-18 10:09:14 +03:00
Salman Ahmed
045602b27d
Merge branch 'master' into fix-reconnect-new-spectator-session 2022-07-18 09:55:19 +03:00
Salman Ahmed
e4d11febc5 Remove no longer necessary fallback 2022-07-18 09:47:40 +03:00
Dean Herbert
a21cd1cd47
Merge pull request #19169 from tsunyoku/retry-icon
Change retry button icon from ArrowCircleLeft to Redo
2022-07-18 15:47:24 +09:00
Salman Ahmed
84c1c26a7f
Merge branch 'master' into fix-user-profile-overlay 2022-07-18 09:45:25 +03:00
Dean Herbert
e8b57379b2
Merge pull request #19210 from peppy/non-null-ended-at
Make `SoloScoreInfo.EndedAt` non-null
2022-07-18 15:42:33 +09:00
Salman Ahmed
1b302910b1
Merge branch 'master' into fix-reconnect-new-spectator-session 2022-07-18 09:30:29 +03:00
Dean Herbert
a036632c8b Fix potential crash when attempting to create mod display using null ruleset 2022-07-18 15:30:21 +09:00
Dean Herbert
21bf7ee448 Turn on nullability in ParticipantPanel 2022-07-18 15:27:55 +09:00
Salman Ahmed
018da74fe8 Replace default with CountryCode.Unknown 2022-07-18 08:54:35 +03:00
Salman Ahmed
cf99849478 CountryCode.XX -> CountryCode.Unknown 2022-07-18 08:45:54 +03:00
Salman Ahmed
05d692bd55 Move Country to end of class 2022-07-18 08:43:41 +03:00
Dean Herbert
566bad0b5f Make SoloScoreInfo.EndedAt non-null
Seems to already be the case for databased scores. Will be assured by
https://github.com/ppy/osu-web/issues/9116.

I've updated the `osu-score-statistics-processor` with this
consideration.
2022-07-18 14:42:43 +09:00
Salman Ahmed
ef6e16b1cb UserCountry -> Country 2022-07-18 08:40:43 +03:00
Salman Ahmed
100c53f9ef Country -> CountryCode 2022-07-18 08:40:34 +03:00
Dean Herbert
0533249d11 Update all OnlineSpectatorCalls to InvokeAsync 2022-07-18 14:34:02 +09:00
Salman Ahmed
eddae7b143 Fix mod overlay and footer not updating multiplayer on settings change 2022-07-18 07:38:56 +03:00
Salman Ahmed
6bfa5e53e0 Add property for whether mod uses default configuration 2022-07-18 07:29:03 +03:00
Fyra Tedja
6ad7723d60 Make sure stats name are title-cased when score panel is contracted 2022-07-17 22:13:08 -06:00
Salman Ahmed
b33f8aa0fc Fix "Start Chat" on multiplayer/playlist chat not opening overlay 2022-07-18 06:45:00 +03:00
Salman Ahmed
a1a9132600
Merge branch 'master' into silence-ruleset-config-failures 2022-07-18 05:52:12 +03:00
Salman Ahmed
7e4ce89981 Include mod settings in profile score mod icons 2022-07-18 04:03:18 +03:00
Salman Ahmed
dc8dabfdf1
Merge branch 'master' into silence-ruleset-config-failures 2022-07-18 03:52:40 +03:00
Salman Ahmed
ee98ebf801
Merge branch 'master' into silence-missing-background 2022-07-18 03:46:35 +03:00
Dean Herbert
f8685bf7d6
Merge pull request #19195 from NotGumballer91/make-autoplay-incompatible-with-adaptivespeed
Make Autoplay Incompatible with Adaptive Speed
2022-07-18 03:58:48 +09:00
tsunyoku
5875f53e07 remove unused import 2022-07-17 18:16:30 +01:00
tsunyoku
032cc6c670 use type annotation for nullable BeatmapSet 2022-07-17 18:15:36 +01:00
tsunyoku
a5d7075ef1 simplify beatmap metadata logic in DrawableProfileScore 2022-07-17 18:10:47 +01:00
tsunyoku
8791edf84c set Beatmap.BeatmapSet to BeatmapSet property in SoloScoreInfo 2022-07-17 18:10:33 +01:00
Dean Herbert
4e8bf1da52 Don't sent ruleset configuration failures to sentry 2022-07-18 01:23:46 +09:00
NotGumballer91
028653eb97
Update ModAdaptiveSpeed.cs 2022-07-18 00:10:49 +08:00
NotGumballer91
1caab78bdc
Update ModAutoplay.cs 2022-07-18 00:09:31 +08:00
tsunyoku
7a6666996f rename item to model in CreateDrawableItem 2022-07-17 14:50:53 +01:00
tsunyoku
486fbd2531 create instance of BeatmapInfo for use in ScoreBeatmapMetadataContainer 2022-07-17 14:47:04 +01:00
tsunyoku
c73eff7c89 add BeatmapSet to SoloScoreInfo 2022-07-17 14:46:22 +01:00
tsunyoku
7135329c8c remove `PaginatedProfileScoreSubsectio, revert profile score drawables 2022-07-17 14:22:27 +01:00
tsunyoku
c2277031f0 add Beatmap to SoloScoreInfo 2022-07-17 14:21:55 +01:00
tsunyoku
3a8b5d48b9 update PaginatedScoreContainer to use new class and format 2022-07-17 14:09:14 +01:00
tsunyoku
ef4237c4ac create special subsection class for paginated profile scores 2022-07-17 14:08:31 +01:00
tsunyoku
e8d88e29c6 change DrawableProfileScore and DrawableProfileWeightedScore to take SoloScoreInfo and APIBeatmap instead of APIScore 2022-07-17 14:08:04 +01:00
tsunyoku
1f288157f4 change GetUserScoresRequest to return SoloScoreInfo instead of APIScore 2022-07-17 14:07:05 +01:00
Dean Herbert
51071be315 Don't show "missing background" messages to user
Bit of an oversight.

As reported on [twitter](https://twitter.com/emyl___/status/1548627793075998720) and somewhere else i forgot.
2022-07-17 21:20:51 +09:00
Dean Herbert
55a8a3563b Change MultiplayerMatchSubScreen to not immediately leave the room on connection loss
Instead, we can rely on `MultiplayerClient.Room` going `null`.
2022-07-17 21:19:10 +09:00
Dean Herbert
da7edd5d49 Perform actions after server reconnection 2022-07-17 21:09:48 +09:00
Dean Herbert
8e7e1e6b51 Fix spectator client not correctly reconnecting after shutdown 2022-07-17 21:07:11 +09:00
Salman Ahmed
9382636da9 Catch and log exceptions from mod setting copy failure 2022-07-17 06:34:50 +03:00
Salman Ahmed
6636e462dc Fix SoloScoreInfo not carrying mod settings in conversion methods 2022-07-17 06:18:59 +03:00
tsunyoku
bbb2398a8b change retry button icon from ArrowCircleLeft to Redo 2022-07-17 00:46:29 +01:00
Dean Herbert
9e945197dc Use "Unknown" instead of "Alient" for unknown countries 2022-07-16 14:49:14 +09:00
Dean Herbert
5df9f06480
Merge pull request #19136 from frenzibyte/handle-user-request-failure
Fix login overlay not displaying error message for disabled accounts
2022-07-16 14:40:28 +09:00
Salman Ahmed
69d967172a Remove unencessary null coalesce 2022-07-16 06:39:05 +03:00
Salman Ahmed
d0fe4fe15a Fix user population logic not including country 2022-07-16 06:39:05 +03:00
Salman Ahmed
4e7156cee8 Store user country on databased scores 2022-07-16 06:39:05 +03:00
Salman Ahmed
4968859e69 Rename placeholder display flag property to make sense 2022-07-16 06:07:53 +03:00
Salman Ahmed
9c81241f4c Fix potential nullref on APIUser.Country
We need NRT sooner than later...
2022-07-16 06:02:05 +03:00
Salman Ahmed
08f1280aa8 Add UsedImplicitly specification to silence unused member inspection
Also applied to `Language` while at it.
2022-07-16 05:04:24 +03:00
Salman Ahmed
e62049f4a9 Update various usages of Country inline with new enum 2022-07-16 05:04:24 +03:00
Salman Ahmed
1b2b42bb8a Update CountryStatistics to use code for country enum 2022-07-16 05:04:24 +03:00
Salman Ahmed
00f4c8052e Update APIUser to provide enum from serialised country code 2022-07-16 05:04:24 +03:00
Salman Ahmed
4ea8fd75cc Replace Country class with enumeration 2022-07-16 04:41:30 +03:00
Salman Ahmed
20a109a2b3
Merge branch 'master' into update-resources 2022-07-16 00:55:40 +03:00
Salman Ahmed
b42f49aeaa Handle APIException from user request during logging in 2022-07-16 00:38:53 +03:00
Salman Ahmed
e6236ba088 Update save score button to check availability after import
Previously was relying on whether `SaveReplay` returns null, but since
I've changed it to use the standard "prepare score for import" path, the
button has to check for local availability after import since that path
doesn't return null on fail.
2022-07-15 23:39:52 +03:00
Salman Ahmed
6285442b7d Fix failed scores not prepared before import 2022-07-15 22:57:12 +03:00
Salman Ahmed
8f7b3cf11a Merge branch 'master' into Save-Score-Failed 2022-07-15 22:10:19 +03:00
Dean Herbert
c64b5cc48b Update resources 2022-07-16 02:47:08 +09:00
Salman Ahmed
838e9ec12e
Merge branch 'master' into placeholder-fixes 2022-07-15 20:22:25 +03:00
Dean Herbert
cbbc8fdfb1
Merge pull request #19126 from peppy/lazer-leaderboards
Show leaderboard scores from new data source
2022-07-16 01:53:16 +09:00
Dean Herbert
2beed6d7b7 Allow failed scores to fail in replay playback 2022-07-15 20:45:48 +09:00
Dean Herbert
d325c534ab Check whether score is already imported and show correct state for save button 2022-07-15 20:45:37 +09:00
Dean Herbert
cf38b15332
Merge pull request #19124 from frenzibyte/song-select-metadata-search
Change clicking source/tags on song select to filter instead of searching online
2022-07-15 19:16:31 +09:00
Dean Herbert
0200ef1d48 Make delegate firing more safe to being set later than BDL 2022-07-15 19:06:44 +09:00
Dean Herbert
0e788ac714 Simplify bindable logic greatly 2022-07-15 19:02:12 +09:00
Dean Herbert
8a48cb701d Tidy up implementation and remove unnecessary enum 2022-07-15 19:02:04 +09:00
Dean Herbert
ab6665d88c
Merge branch 'master' into Save-Score-Failed 2022-07-15 18:02:58 +09:00
Dean Herbert
e12e480393 Only expose bindable string rather than full textbox 2022-07-15 18:01:35 +09:00
Dean Herbert
105ffdbbdd Update framework 2022-07-15 17:57:14 +09:00
Dean Herbert
437e01427c Fix beatmap listing not entering correct search mode when arriving before LoadComplete 2022-07-15 17:53:44 +09:00
Dean Herbert
ba0a158740 Show search online prompt even when no beatmaps are available locally 2022-07-15 17:50:10 +09:00
Dean Herbert
c8c79d2185 Standardise HasReplay implementation (and remove from persisting to realm) 2022-07-15 16:14:21 +09:00
Dean Herbert
6122d2a525 Add "F" ScoreRank to handle old scores which have this specified
Not sure on the future of this, but given it is used in the
save-failed-reply pull request (#18785) I think it's fine to add back
for now.

Without this, JSON parsing of older scores in server-side storage will
fail on missing enum type.
2022-07-15 15:58:54 +09:00
Dean Herbert
688fcb256f Update score retrieval endpoint to access new storage 2022-07-15 15:47:25 +09:00
Dean Herbert
966882013d Remove classic mod attribution to SoloScoreInfo conversion path 2022-07-15 15:47:05 +09:00
Dan Balasescu
c1dd1cfead
Merge pull request #19082 from peppy/api-solo-score-model
Add and consume `SoloScoreInfo`
2022-07-15 15:20:18 +09:00
Dean Herbert
36b06f87a4
Merge pull request #19037 from frenzibyte/drawable-playlist-item-collection
Allow adding playlist items to beatmap collections via context menu
2022-07-15 15:04:39 +09:00
Salman Ahmed
7e80a71020 Replace download tracker with local querying 2022-07-15 08:16:36 +03:00
Salman Ahmed
254d22de1c Use proper variable name 2022-07-15 07:44:56 +03:00
Salman Ahmed
86d019c2b2 Enable NRT on BeatmapDetails 2022-07-15 06:52:06 +03:00
Salman Ahmed
97c3eea3aa Fix beatmap details source and tags not filtering on song select 2022-07-15 06:51:50 +03:00
Salman Ahmed
eafa11555a Allow specifying custom search action to metadata sections 2022-07-15 06:41:03 +03:00
Dean Herbert
cd085cbd97
Merge pull request #19114 from frenzibyte/fix-potential-dialog-test-failure
Fix dialog overlay potentially pushing dialog while not loaded
2022-07-15 12:34:19 +09:00
Salman Ahmed
aea786ea0c Fix minor typo 2022-07-15 05:56:49 +03:00
Dan Balasescu
3806416541
Merge pull request #19107 from peppy/first-run-language-selection
Add language selection to first run overlay
2022-07-14 22:58:32 +09:00
Dean Herbert
ebe0cfefd8 Ensure that multiple BeatmapSetInfo already in realm don't cause import failures
Really this shouldn't happen but I managed to make it happen. Until this
comes up again in a way that matters, let's just fix the LINQ crash from
`SingleOrDefault`.

I've tested this to work as expected in the broken scenario.
2022-07-14 18:21:41 +09:00
Dean Herbert
08396ba486 Adjust colouring to avoid weird banding during transition period 2022-07-14 14:47:25 +09:00
Dean Herbert
5dff48a1e0 Fix button selection animation not playing smoothly when new glyphs are loaded 2022-07-14 14:40:25 +09:00
Dean Herbert
5c6b4e498d Protect against a potential early call to LanguageButton.Selected 2022-07-14 14:31:59 +09:00
Dean Herbert
227871e8df Refactor hide logic a touch for better readability 2022-07-14 14:00:33 +09:00
Salman Ahmed
dccd81dbc7 Use BindValueChanged to handle changes between push time and schedule execution 2022-07-14 07:07:32 +03:00
Salman Ahmed
b96faedbe6 Fix dialog overlay hiding early-pushed dialog on initial PopOut call 2022-07-14 07:06:57 +03:00
Salman Ahmed
c59784c49f Always schedule popup dialog push 2022-07-14 07:06:03 +03:00
Salman Ahmed
1222123541 Rename method and parameter 2022-07-14 07:05:19 +03:00
Salman Ahmed
3def8428aa Make scheduling more legible 2022-07-14 06:06:58 +03:00
Salman Ahmed
f83d413b33 Fix dialog overlay potentially pushing dialog while not loaded 2022-07-14 06:05:03 +03:00
Salman Ahmed
a85a70c472 Fix potential nullref in ContextMenuItems 2022-07-14 05:04:28 +03:00
Salman Ahmed
036e64382f Add beatmap details menu item to playlist items 2022-07-14 03:41:47 +03:00
Salman Ahmed
728487b7fb Handle GetBeatmapSetRequest on test room requests handler
Required for `BeatmapSetOverlay` lookups to work under dummy API. Not
100% sure about it, but works for now.
2022-07-14 02:34:55 +03:00
Salman Ahmed
102d0415f1 Merge branch 'master' into drawable-playlist-item-collection 2022-07-14 00:10:49 +03:00
Bartłomiej Dach
bde34380a4
Merge branch 'master' into fix-editor-player-exit-crash 2022-07-13 21:41:25 +02:00
Dean Herbert
7ac04d0478 Fix potential crash when exiting editor test mode 2022-07-14 01:00:18 +09:00
Dean Herbert
31e1e96364 Update framework 2022-07-13 23:25:32 +09:00
Dean Herbert
3b554140db Use grid container to avoid layout changes when changing language 2022-07-13 23:22:55 +09:00
Dean Herbert
0db1caf591 Add language selection to first run overlay 2022-07-13 23:22:55 +09:00
Dan Balasescu
7ed05277f8
Merge pull request #19098 from peppy/last-played
Add "last played" sort mode to song select
2022-07-13 22:44:50 +09:00
Dean Herbert
937692604e Remove mention of autoplay mod for now 2022-07-13 22:37:20 +09:00
Dan Balasescu
afaf8f5189
Merge pull request #19105 from peppy/fix-editor-disposed-track
Fix audio and background file equality incorrectly comparing `BeatmapSet.Hash`
2022-07-13 22:34:36 +09:00
Dan Balasescu
7f59426587
Merge pull request #19096 from peppy/custom-storage-log-output
Add log output for custom storage usage
2022-07-13 22:28:21 +09:00
Dean Herbert
1cfdea911b Fix audio and background file equality incorrectly comparing BeatmapSet.Hash 2022-07-13 19:41:38 +09:00
Dean Herbert
6950223a7d Fix drawable mutation from disposal thread 2022-07-13 19:19:14 +09:00
Dean Herbert
952d97c66e Update comment regarding LoadTrack safety 2022-07-13 19:02:22 +09:00
Dean Herbert
fc274629f8 Add "last played" sort mode to song select
Note that this will consider the most recent play of any beatmap in
beatmap set groups for now, similar to other sort methods.
2022-07-13 16:43:43 +09:00
Dean Herbert
ab3ec80159 Update LastPlayed on gameplay starting in a SubmittingPlayer 2022-07-13 16:43:43 +09:00
Dean Herbert
8820ea4006 Add last played date to BeatmapInfo 2022-07-13 16:36:43 +09:00
Dean Herbert
27ef7fc78e Add log output for custom storage usage
Sometimes I am not sure where my osu! is reading files from. This should
help somewhat.

```csharp
/Users/dean/Projects/osu/osu.Desktop/bin/Debug/net6.0/osu!
[runtime] 2022-07-13 07:22:03 [verbose]: Starting legacy IPC provider...
[runtime] 2022-07-13 07:22:03 [verbose]: Attempting to use custom storage location /Users/dean/Games/osu-lazer-2
[runtime] 2022-07-13 07:22:03 [verbose]: Storage successfully changed to /Users/dean/Games/osu-lazer-2.
[runtime] 2022-07-13 07:22:05 [verbose]: GL Initialized
```
2022-07-13 16:22:51 +09:00
Dean Herbert
0fe3bac173 Store mods to array and update test scenes 2022-07-12 18:00:25 +09:00
Dean Herbert
12a56e36bd Fix ID mapping and move osu-web additions to region to identify them clearly 2022-07-12 18:00:25 +09:00
Dean Herbert
f956955d4d Combine ScoreInfo construction helper methods 2022-07-12 18:00:25 +09:00
Dean Herbert
900e0ace8e Standardise naming and enable NRT 2022-07-12 18:00:25 +09:00
Dean Herbert
1bef2d7b39 Add and consume SoloScoreInfo 2022-07-12 18:00:25 +09:00
Dan Balasescu
bd6f8bde9f
Merge pull request #19079 from peppy/fix-audio-playback-disposed
Fix potential crash during shutdown sequence if intro playback was aborted
2022-07-12 17:29:23 +09:00
Dean Herbert
cad18ebc58 Reword comment to better explain what we are guarding against 2022-07-12 16:46:19 +09:00
Dan Balasescu
ec2d7461c7
Merge pull request #19078 from peppy/score-submit-fail-error-display
Show basic error message when score submission fails
2022-07-12 16:18:17 +09:00
Dean Herbert
cafe30fc4d Fix potential crash during shutdown sequence if intro playback was aborted
Fixes one of the audio related `ObjectDisposedException`s
(https://sentry.ppy.sh/organizations/ppy/issues/92/events/12f282f048cb4a4fae85810e8a70b68d/?project=2&query=is%3Aunresolved&sort=freq&statsPeriod=7d).

Ran into this while testing locally. See
`IntroScreen.ensureEventuallyArrivingAtMenu` for the related cause of
this happening (forced continuing to next screen if the intro doesn't
load in time).
2022-07-12 15:20:30 +09:00
Dean Herbert
b52ea16133 Show basic error message when score submission fails 2022-07-12 15:10:59 +09:00
Dean Herbert
779d512b44 Merge branch 'master' into mod-icon-colors 2022-07-12 14:36:55 +09:00
Dean Herbert
8dbe24fd7c Simplify colour assigning logic and remove system mod colour for now 2022-07-12 14:36:50 +09:00
Dean Herbert
aac3c166de
Merge pull request #19038 from novialriptide/replay-user-bug-fix
Populate user ID for locally imported scores
2022-07-12 13:55:11 +09:00
Dan Balasescu
d82d50e308
Merge pull request #19065 from Ludio235/master
Fix playlist room creation screen pushing content on opening dropdowns
2022-07-12 13:22:38 +09:00
Dan Balasescu
3ca10ac02c
Merge pull request #19063 from Joehuu/fix-samples-cancel-exit
Fix editor playing object samples while paused after cancelling exit
2022-07-12 12:51:27 +09:00
Bartłomiej Dach
cca208b3c7
Merge branch 'master' into replay-user-bug-fix 2022-07-11 21:51:09 +02:00
Bartłomiej Dach
0da4ab765a
Merge branch 'master' into fix-multiplayer-spectator-crash 2022-07-11 21:14:45 +02:00
Salman Ahmed
4f009419b8 Simplify population logic and match code style 2022-07-11 21:51:09 +03:00
Dean Herbert
44d2e001ed Update various dependencies 2022-07-11 20:16:49 +09:00
Andrew Hong (홍준원)
56896e8b41 Move PostImport() 2022-07-11 02:36:52 -04:00
Andrew Hong
10d6027c89 Assign missing UserID to RealmUser 2022-07-11 02:36:51 -04:00
Dean Herbert
0434c10914 Use global WorkingBeatmap in PlayerArea for the time being 2022-07-11 02:57:44 +09:00
Dean Herbert
8b6665cb5b Ensure initial beatmap processing is done inside the import transaction 2022-07-11 02:51:54 +09:00
Dean Herbert
8116a4b6f6 Fix multiplayer spectator crash due to track potentially not being loaded in time 2022-07-11 02:51:40 +09:00
Ludio235
52aef09cd6
Update PlaylistsRoomSettingsOverlay.cs 2022-07-10 02:05:40 +00:00
Joseph Madamba
834bb1f187 Fix editor playing object samples while paused after cancelling exit 2022-07-09 12:14:39 -07:00
Dean Herbert
66f314915d Fix crash on mobile releases when attempting to read any file 2022-07-09 06:01:22 +09:00
cdwcgt
d2406242ae
rename updateTooltip to updateState 2022-07-09 00:38:17 +09:00
cdwcgt
91f471ebe0
disabled button instead of shake
removed `ShakeContainer`
2022-07-09 00:37:53 +09:00
cdwcgt
a38c6704c2
Use ContinueWith, Check is Task empty 2022-07-09 00:23:32 +09:00
Dean Herbert
5651eca06c Merge branch 'master' into custom-ruleset-score-import 2022-07-08 19:03:47 +09:00
Dean Herbert
13e16530a6 Revert most changes to PlayerTestScene 2022-07-08 18:45:18 +09:00
Dean Herbert
e4ebab92c6 Rename lots of weird variables 2022-07-08 18:37:03 +09:00
Dean Herbert
f3a6e646a6 Merge branch 'master' into Save-Score-Failed 2022-07-08 18:32:13 +09:00
Dan Balasescu
113fdf5491
Merge pull request #19032 from peppy/fix-background-loading-too-much
Fix background loading excessively on startup
2022-07-08 18:25:41 +09:00
Adam Baker
7ced84b7ef Replace switch statement with ForModType
In order to make `highlightedColour` dependent on the mod type color, the color is converted to an `osu.Framework.Graphics.Colour4` and calls `Lighten`.
2022-07-08 03:23:58 -05:00
Dean Herbert
e64b2b1682 Assert that test is run headless when required 2022-07-08 15:45:01 +09:00
Dean Herbert
eab3eba70e Move event handlers to LoadComplete 2022-07-08 15:09:16 +09:00
Dean Herbert
32c77ddf71 Avoid triggering SeasonalBackgroundChanged unless actually required 2022-07-08 15:07:30 +09:00
Dan Balasescu
0bc332e90b
Merge pull request #19029 from peppy/fix-skin-import-duplicate
Fix skins potentially being duplicated on batch import
2022-07-08 14:18:14 +09:00
Adam Baker
89f1c75f7a Update mod icon colors 2022-07-07 21:57:18 -05:00
Dean Herbert
1e159eb328
Add back fade to black duration
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-07-08 10:43:50 +09:00
Salman Ahmed
63a06afab2 Add missing license header 2022-07-08 01:59:27 +03:00
Salman Ahmed
67fa15f231 Remove no longer required context menu container in ParticipantsList 2022-07-08 01:42:55 +03:00
Salman Ahmed
7b08501eaf Cover online-play room screens with context menu containers 2022-07-08 01:42:11 +03:00
Salman Ahmed
1d0f2e359a Add collection context menu to room playlist items 2022-07-08 01:40:53 +03:00
Salman Ahmed
a94fb62be3 Split collection toggle menu item to own class 2022-07-08 01:39:45 +03:00
Salman Ahmed
07a08d28c6 Rename parameter and default to 0 2022-07-07 23:31:06 +03:00
Dean Herbert
c53dd4a703 Fix editor saving not updating BeatmapSetInfo's hash 2022-07-08 02:33:14 +09:00
Dean Herbert
15d070668d Move intro screen background to base implementation and use colour fading 2022-07-08 02:12:01 +09:00
Dean Herbert
216150b52d Avoid always loading new background at MainMenu
This was meant to be an optimisation to allow the background to load
while the intro is playing, but as the current default intro loads a
background itself, this was rarely the case and also counter-productive
as it would bypass the equality check and start a second load sequence.
2022-07-08 02:12:01 +09:00
Dean Herbert
789904ccd1 Avoid reloading background unnecessariyl when not yet loaded 2022-07-08 02:12:01 +09:00
Dean Herbert
b83073c2e9 Fix SeasonalBackgroundLoader triggering a background reload when not providing backgrounds 2022-07-08 02:12:01 +09:00
Dean Herbert
f500d5ade6 Simplify error output when hub cannot connect
Full call stack is useless in these cases.

Before:

```csharp

[network] 2022-07-07 16:05:31 [verbose]: OnlineMetadataClient connection error: System.Net.Http.HttpRequestException: Response status code does not indicate success: 403 (Forbidden).
[network] 2022-07-07 16:05:31 [verbose]: at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
[network] 2022-07-07 16:05:31 [verbose]: at Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.NegotiateAsync(Uri url, HttpClient httpClient, ILogger logger, CancellationToken cancellationToken)
[network] 2022-07-07 16:05:31 [verbose]: at Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.GetNegotiationResponseAsync(Uri uri, CancellationToken cancellationToken)
[network] 2022-07-07 16:05:31 [verbose]: at Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.SelectAndStartTransport(TransferFormat transferFormat, CancellationToken cancellationToken)
[network] 2022-07-07 16:05:31 [verbose]: at Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.StartAsyncCore(TransferFormat transferFormat, CancellationToken cancellationToken)
[network] 2022-07-07 16:05:31 [verbose]: at Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.StartAsync(TransferFormat transferFormat, CancellationToken cancellationToken)
[network] 2022-07-07 16:05:31 [verbose]: at Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionFactory.ConnectAsync(EndPoint endPoint, CancellationToken cancellationToken)
[network] 2022-07-07 16:05:31 [verbose]: at Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionFactory.ConnectAsync(EndPoint endPoint, CancellationToken cancellationToken)
[network] 2022-07-07 16:05:31 [verbose]: at Microsoft.AspNetCore.SignalR.Client.HubConnection.StartAsyncCore(CancellationToken cancellationToken)
[network] 2022-07-07 16:05:31 [verbose]: at Microsoft.AspNetCore.SignalR.Client.HubConnection.StartAsyncInner(CancellationToken cancellationToken)
[network] 2022-07-07 16:05:31 [verbose]: at Microsoft.AspNetCore.SignalR.Client.HubConnection.StartAsync(CancellationToken cancellationToken)
[network] 2022-07-07 16:05:31 [verbose]: at osu.Game.Online.HubClientConnector.connect() in /Users/dean/Projects/osu/osu.Game/Online/HubClientConnector.cs:line 119

```

After:

```csharp

[network] 2022-07-07 16:06:59 [verbose]: OnlineMetadataClient connecting...
[network] 2022-07-07 16:06:59 [verbose]: OnlineMetadataClient connect attempt failed: Response status code does not indicate success: 403 (Forbidden).

```
2022-07-08 01:06:40 +09:00
Dean Herbert
cf1da1dd18 Fix skins potentially being duplicated on batch import
Resolves https://github.com/ppy/osu/discussions/19024#discussioncomment-3099200
2022-07-07 22:39:07 +09:00
Dan Balasescu
f109e510ce
Merge branch 'master' into metadata-client 2022-07-07 19:45:52 +09:00
Dan Balasescu
7086779cf4
Merge pull request #19026 from peppy/async-track-operations
Use fire-and-forget async operations on global track
2022-07-07 19:45:03 +09:00
Dan Balasescu
5e3c6d6e56
Merge pull request #19028 from peppy/add-skin-keyword
Allow searching for "skins" to find current skin setting
2022-07-07 19:40:23 +09:00
Dean Herbert
d88fd8a5b0 Allow searching for "skins" to find current skin setting 2022-07-07 18:26:04 +09:00
Dean Herbert
ac216d94a8 Fix transaction not being disposed 2022-07-07 18:15:38 +09:00
Dean Herbert
b5c703b62c Remove unused using statement 2022-07-07 17:59:55 +09:00
Dean Herbert
e2c4c94993 Simplify BeatmapUpdater transaction handling using nested transaction support 2022-07-07 17:37:46 +09:00
Dean Herbert
79bed0abdf Merge branch 'realm-nested-writes' into metadata-client 2022-07-07 17:37:06 +09:00
Dean Herbert
5197d0fa9e Add automatic transaction handling to realm helper methods 2022-07-07 17:36:25 +09:00
Dan Balasescu
d4c539687e
Merge pull request #19022 from peppy/better-file-loading-exceptions
Add local handling of cases where a beatmap's file cannot be found on disk
2022-07-07 17:21:19 +09:00
Dean Herbert
7ef03dd2cb Use fire-and-forget async operations on global track
This avoids any blocking overhead caused by a backlogged audio thread.
Test seem to pass so might be okay?

Note that order is still guaranteed due to the `ensureUpdateThread`
queueing system framework-side.
2022-07-07 17:15:45 +09:00
Dean Herbert
45c5b7e7dd Update framework 2022-07-07 17:13:16 +09:00
Dean Herbert
1a41d3ef20 Allow PlayerTestScene to import the beatmap it's using 2022-07-07 16:42:36 +09:00
Dean Herbert
9d730f8440 Fix custom rulesets not importing scores at all
Replaces the error with the ability to import, minus replays.

Closes https://github.com/ppy/osu/issues/17350 (arguably, but let's go with it for now).
2022-07-07 14:49:23 +09:00
Dean Herbert
e1b434b5dc Fix song select placeholder not showing convert hint for custom rulesets 2022-07-07 14:46:51 +09:00
Dean Herbert
e81cebf27d Change storyboard parsing logic to not completely fail if only .osb read fails
Changes to allow the storyboard to exist if only the `.osu` is
available. Reads better IMO.
2022-07-07 14:33:20 +09:00
Dean Herbert
c4b6893709 Add local handling of cases where a beatmap's file cannot be found on disk 2022-07-07 14:29:19 +09:00
Salman Ahmed
9115072917 Fix flaky tests not running at all with environment variable set 2022-07-07 04:24:10 +03:00
Dan Balasescu
b9acdcdbe2
Merge pull request #19014 from peppy/line-buffered-reader-simplification
Enable NRT and simplify `LineBufferedReader`
2022-07-06 20:27:04 +09:00
Dean Herbert
c2f1069073 Avoid usage of finally in potentially hot path 2022-07-06 19:55:51 +09:00
Dean Herbert
01bc6e5cb7 Revert old behaviour of ReadToEnd 2022-07-06 19:55:51 +09:00
Dan Balasescu
6340caf27d
Merge pull request #19018 from peppy/memory-caching-component-statistics
Add statistics display for `MemoryCachingComponent`s
2022-07-06 19:20:36 +09:00
Dan Balasescu
9f76118ee0
Merge pull request #19015 from peppy/improve-beatmap-parsing-performance
Fix `BeatSyncedContainer` unintentionally blocking on beatmap load
2022-07-06 18:41:07 +09:00
Dean Herbert
a1b6ec60c8 Add statistics display for MemoryCachingComponents
Never sure if these are working as they should (or how well they are
working). This helps quite a bit.
2022-07-06 18:38:40 +09:00
Dean Herbert
12d396a513 Use -1 to specify default buffer size 2022-07-06 15:43:35 +09:00
Dean Herbert
ae49aafde2 Fix BeatSyncedContainer unintentionally blocking on beatmap load 2022-07-06 14:58:06 +09:00
Dean Herbert
a52ea3cabe Enable NRT and simplify LineBufferedReader 2022-07-06 14:57:56 +09:00
Dean Herbert
7053a8507b
Merge pull request #18993 from Joehuu/fix-personal-best-delete-context-menu
Fix personal best score showing delete option on context menu
2022-07-06 14:53:35 +09:00
Dean Herbert
6fb00d84f9 Apply NRT to LoginForm and remove nullability of IAPIProvider 2022-07-06 01:29:00 +09:00
Dean Herbert
3a68f386a8 Add forgotten password link to login form 2022-07-06 01:25:04 +09:00
Dean Herbert
99afbc7b73 Add missing endpoint URLs 2022-07-05 22:15:52 +09:00
Dean Herbert
bdd1bf4da0 Save last processed id to config for now 2022-07-05 21:42:35 +09:00
Dean Herbert
59d0bac728 Hook up update flow to metadata stream 2022-07-05 21:32:00 +09:00
Dean Herbert
b0d4f7aff6 Add recovery logic after disconnection 2022-07-05 21:32:00 +09:00
Dean Herbert
d217d66852 Add OnlineMetadataClient 2022-07-05 21:32:00 +09:00
Dean Herbert
85e589f863
Merge pull request #19005 from Susko3/initial-cookie
Allow MIDI and joysticks to trigger the osu! cookie on the initial screen
2022-07-05 19:26:56 +09:00
Susko3
4c3789ec5d Split into a function 2022-07-05 11:15:37 +02:00
Dean Herbert
33db508301 Add note regarding why the realmRetrievalLock return is done on the async thread 2022-07-05 16:23:10 +09:00
Dean Herbert
5adec2c738 Ensure blocking restoration only completes after update callback work is completed 2022-07-05 14:39:14 +09:00
Dean Herbert
1b98936328 Rename realm ThreadLocal to better convey what it's doing
Every time I looked at this code I have to re-learn what it's doing.
Changing these variable names should help quite a bit.
2022-07-05 13:38:25 +09:00
Susko3
bb0f212448 Trigger the initial cookie with midi and joysticks 2022-07-05 00:38:18 +02:00
Dean Herbert
506409a9c4 Fix realm backup creation failing when run from RealmAccess constructor
At the point of construction, we are not on the update thread, but it
doesn't really matter at this point because there's no other usages.
2022-07-04 16:45:23 +09:00
Dean Herbert
64edc6888d Add test coverage of corrupt realm creating backup 2022-07-04 16:45:23 +09:00
Dean Herbert
925d7b1fdc Update framework 2022-07-04 15:01:01 +09:00
Dan Balasescu
65917fbb99
Merge pull request #18990 from andy840119/remove-nullable-disable-in-the-ruleset-filter
Remove nullable disable annotation in the ruleset filter.
2022-07-04 13:46:31 +09:00
Joseph Madamba
df152421a8 Fix personal best score showing delete option on context menu 2022-07-03 10:23:17 -07:00
Dean Herbert
e4bf2224c6 Update framework 2022-07-03 23:16:51 +09:00
andy840119
59e3d4b9e5 Remove the nullable disable annotation in the Ruleset.Filter namespace. 2022-07-03 21:00:54 +08:00
Dan Balasescu
9bf91835b6
Merge pull request #18962 from peppy/slider-range-control
Move star difficulty filter to song select
2022-07-03 21:58:00 +09:00
Dan Balasescu
385bd5a1b2
Merge pull request #18965 from peppy/mark-flaky-tests
Mark, document and silence remaining flaky tests on standard CI runs
2022-07-03 21:41:14 +09:00
Dan Balasescu
ccc322e100
Merge pull request #18985 from andy840119/remove-nullable-disable-in-the-replays
Remove nullable disable annotation in replays namespace
2022-07-03 21:19:36 +09:00
Dan Balasescu
724fd19038 Remove nullable disables 2022-07-03 21:15:13 +09:00
andy840119
8c2f4b48fc Use debug.assert for better readable. 2022-07-03 19:27:56 +08:00
Dan Balasescu
1ccfd69690
Merge pull request #18978 from peppy/send-beatmap-hash-to-server
Send beatmap hash to server on solo score request
2022-07-03 13:18:17 +09:00
Dean Herbert
052a786eff Only show hover effect on one nub at a time 2022-07-03 03:06:03 +09:00
Dean Herbert
7d8ea5e286 Remove unnecessary proxying 2022-07-03 02:59:10 +09:00
andy840119
0a1543c6e8 Use AsNonNull() instead. 2022-07-02 19:48:32 +08:00
Dean Herbert
2a1777fa85
Merge branch 'master' into fix-player-star-difficulty-display 2022-07-02 18:57:46 +09:00
Salman Ahmed
9b833524c0
Merge branch 'master' into add-realm-blocking-logging 2022-07-02 12:41:36 +03:00
Dean Herbert
b626135940 Fix dragging slider bars on nub not performing correctly relative movement 2022-07-02 17:49:38 +09:00
Dean Herbert
24cd845d1b Update framework 2022-07-02 17:18:50 +09:00
Salman Ahmed
e28ee8bc7a Count time spent upwards to display attempts correctly 2022-07-02 10:46:52 +03:00
Dean Herbert
93809a92d4 Fix clashing error messaging during realm block operations 2022-07-02 16:30:04 +09:00
Salman Ahmed
a4b9097709
Merge branch 'master' into mod-overlay-appear-sfx 2022-07-02 09:28:24 +03:00
Salman Ahmed
19d300e311 Fix player loader not accepting star difficulty updates after display 2022-07-02 09:17:38 +03:00
andy840119
c6d0f0f81b pretend that the beatmap property will not be null.
Not really throw exception will be the better way?
2022-07-02 13:20:46 +08:00
andy840119
ea573f314e Remove the nullable disable annotation in the Rulesets.Replays namespace in the osu.game project. 2022-07-02 13:08:25 +08:00
andy840119
fa5f7c1a00 Remove the nullable disable annotation in the Replays namespace. 2022-07-02 13:03:01 +08:00
Dean Herbert
2cc9c579d4
Merge pull request #18969 from smoogipoo/fix-multiplayer-cross-pollution
Fix cross-pollution of server- and client-side multiplayer objects in tests
2022-07-02 13:18:35 +09:00
Dean Herbert
9e30c1de3e
Merge branch 'master' into mod-overlay-appear-sfx 2022-07-02 12:59:04 +09:00
Dean Herbert
a03abc747b Tidy up comments and simplify bounding box centre logic 2022-07-02 12:58:34 +09:00
Dean Herbert
426c53fe65 Fix potential null being sent to extension method which doesn't support it 2022-07-02 12:50:28 +09:00
Dean Herbert
1fd9c64803 Change song select FooterButton sound 2022-07-02 12:48:33 +09:00
Dean Herbert
4fd47b5fa0 Add more verbose logging to realm blocking process 2022-07-02 12:36:56 +09:00
Dean Herbert
634b6cdbbe Send beatmap has to server on solo score request
Right now, the client does nothing to ensure a beatmap is in a valid
state before requesting to submit a score. There is further work to be
done client-side so it is more aware of this state (already handled for
playlists, but not for the solo gameplay loop), but the solution I have
in mind for that is a bit more involved.

This is not used server-side yet, but I want to get this sending so we
can start using it for some very basic validation.

Will resolve the basic portion of #11922 after implemented server-side.
2022-07-02 12:16:17 +09:00
Dean Herbert
623a99d53a Update resources 2022-07-02 11:58:45 +09:00
Jamie Taylor
9d28d5f8ee
Update SFX for mod overlay show/hide 2022-07-01 20:43:12 +09:00
Dan Balasescu
3b1842a2c2
Merge pull request #18835 from peppy/beatmap-update-flow
Split out beatmap update tasks to `BeatmapUpdater` and invoke from editor save flow
2022-07-01 20:28:04 +09:00
Dean Herbert
0cf58646f4
Merge pull request #18803 from Joehuu/fix-overlay-header-tab-item-localisable-string
Fix profile header tab items not localising
2022-07-01 19:37:57 +09:00
Dean Herbert
6baccad058
Merge pull request #18821 from ggliv/locked-room-filter
Add room access type filter to multiplayer lounge screen
2022-07-01 19:37:43 +09:00
Dan Balasescu
084a65578c Always clone messages incoming from client-side 2022-07-01 19:36:37 +09:00
Dan Balasescu
37acec1952 Isolate client's LocalUser from TestMultiplayerClient 2022-07-01 19:23:41 +09:00
Dan Balasescu
b64c0d011c Isolate client's Room from TestMultiplayerClient 2022-07-01 19:23:25 +09:00
Dan Balasescu
0be858b5bf Rename APIRoom -> ClientAPIRoom, remove unused asserts 2022-07-01 19:21:59 +09:00
Dan Balasescu
1c2ffb3bc4 Fix server-side objects being sent to client 2022-07-01 19:21:53 +09:00
Dean Herbert
b829884861
Merge pull request #18963 from peppy/more-placeholder-suggestions
Add difficulty filter reset to song select "no results" suggestions
2022-07-01 17:55:23 +09:00
Dean Herbert
b460a52faf
Merge pull request #18966 from smoogipoo/fix-flaky-multiplayer-test
Fix test sometimes referencing old ModSelect object
2022-07-01 17:55:06 +09:00
Salman Ahmed
5880b824d0 Simplify description logic for overlay tab items 2022-07-01 11:30:51 +03:00
Dean Herbert
e213c1a4ef Rename enum to explicitly mention it is a filter 2022-07-01 17:27:03 +09:00
Salman Ahmed
7f9ef6c23f Merge branch 'master' into fix-overlay-header-tab-item-localisable-string 2022-07-01 11:27:00 +03:00
Dean Herbert
9911c6cbf0
Merge branch 'master' into locked-room-filter 2022-07-01 17:17:01 +09:00
Salman Ahmed
3bca439c4f
Merge branch 'master' into more-placeholder-suggestions 2022-07-01 10:52:32 +03:00
Dan Balasescu
58c9bb031f Apply PR reviews/fixes 2022-07-01 16:51:15 +09:00
Dan Balasescu
c22e77e481 Fix test sometimes referencing old ModSelect object 2022-07-01 16:46:27 +09:00
Dean Herbert
615c3234d8 Remove non-required NRT hint 2022-07-01 16:25:21 +09:00
Dean Herbert
c4f1660841 Rename ENVVAR in line with previous one (OSU_TESTS_NO_TIMEOUT) 2022-07-01 16:20:34 +09:00
Dean Herbert
1777a6d24a Add attribute to retry flaky tests on normal CI runs 2022-07-01 16:06:18 +09:00
Dean Herbert
58e25a3a01 Fix potential crash in BeatmapLeaderboard during rapid refresh operations 2022-07-01 15:42:35 +09:00
Dan Balasescu
409224560f
Merge pull request #18874 from peppy/realm-fix-async-write-after-disposal
Ensure all async writes are completed before realm is disposed
2022-07-01 15:29:01 +09:00
Dean Herbert
3e0f4e7609 Add test coverage of difficulty filter reset 2022-07-01 15:28:55 +09:00
Dean Herbert
f3af612133 Suggest removing difficulty filter if no matches found at song select 2022-07-01 15:18:04 +09:00
Dean Herbert
545df0a8e8 Display difficulty on nub 2022-07-01 15:17:26 +09:00
Dean Herbert
cb9947b1c9 Align song select components a bit better 2022-07-01 15:17:12 +09:00
Dean Herbert
32139ac13f Tidy up implementation and add basic visual test 2022-07-01 15:16:58 +09:00
Dean Herbert
d54f7fc728 Move slider range control to song select 2022-07-01 14:41:36 +09:00
Dean Herbert
3785027284 Update OsuSliderBar colours to not use transparency 2022-07-01 14:41:36 +09:00
Dan Balasescu
42d56aa640
Merge pull request #18958 from andy840119/remove-nullable-disable-in-the-extension
Remove nullable disable annotation in the extension namespace.
2022-07-01 13:52:12 +09:00
andy840119
48047f2e58 Move the null check in the outside.
AddCursor() should not accept the null value.
2022-06-30 23:29:49 +08:00
andy840119
a5b1f1a688 mark the string as nullable. 2022-06-30 23:23:14 +08:00
andy840119
26de34da84 Remove the nullable disable annotation. 2022-06-30 23:20:40 +08:00
andy840119
e50e0f7339 Remove the nullable disable annotate. 2022-06-30 23:05:09 +08:00
cdwcgt
33209ecd25
remove useless value change 2022-06-30 19:51:58 +09:00
Dean Herbert
447b496eff
Merge branch 'master' into realm-fix-async-write-after-disposal 2022-06-30 19:07:15 +09:00
Dean Herbert
2a73210865 Add xmldoc and update parameter naming for MemoryCachingComponent.Invalidate flow 2022-06-30 17:17:06 +09:00
Dean Herbert
aab4dcefbd Remove unnecessary invalidation handling flow 2022-06-30 17:13:26 +09:00
Dean Herbert
0698471627 Move BeatmapOnlineLookupQueue to inside BeatmapUpdater 2022-06-30 17:03:19 +09:00
Dean Herbert
ef42c6ecdf Add missing xmldoc 2022-06-30 16:51:31 +09:00
Dean Herbert
e34c2f0aca Remove unnecessary nullable-enable 2022-06-30 16:47:26 +09:00
Dean Herbert
82134ad1a6 Allow null parameter to GetWorkingBeatmap for now 2022-06-30 16:46:28 +09:00
Dean Herbert
98938821e5 Merge branch 'master' into beatmap-update-flow 2022-06-30 16:44:17 +09:00
Dean Herbert
356c0501ec Guard again potential nulls in RealmNamedFileUsage
Hopefully help in figuring out https://sentry.ppy.sh/organizations/ppy/issues/3679/?project=2&query=user%3A%22id%3A10078484%22
2022-06-30 15:40:57 +09:00
Dean Herbert
78d86fd3ff Fix PerformWrite not rolling back transaction on exception 2022-06-30 15:15:09 +09:00
Dean Herbert
e89f220e9a
Merge pull request #18949 from smoogipoo/fix-flaky-star-display-test
Ensure PlaylistItem's beatmap is not null
2022-06-30 15:15:06 +09:00
Dan Balasescu
c6520de749 Ensure PlaylistItem beatmap is not null 2022-06-30 14:24:49 +09:00
Dan Balasescu
edc4ace17e Attach DT with NC, SD with PF, and Cinema with Autoplay 2022-06-30 11:52:30 +09:00
Dean Herbert
582175c3a4 Update framework 2022-06-29 22:57:52 +09:00
cdwcgt
fd0d8b1ce3
Add button state, fix async issues, watch replay method
Most borrowed from `ReplayDownloadButton`
2022-06-29 22:50:47 +09:00
Dean Herbert
7cb4e32c17 Add one more lock to appease CI 2022-06-29 22:45:19 +09:00
Dean Herbert
a3b4a515fc Merge branch 'master' into realm-fix-async-write-after-disposal 2022-06-29 22:39:05 +09:00
Dean Herbert
18d465eff7 Guard against NaN star difficulty results 2022-06-29 21:02:29 +09:00
Dean Herbert
32af4e41ea Add back thread safety and locking as required 2022-06-29 20:56:01 +09:00
Salman Ahmed
87e3b44181 Ensure icon is loaded inside try-catch 2022-06-29 13:37:42 +03:00
Salman Ahmed
e3eba58cb6 Catch in triangles intro 2022-06-29 13:37:42 +03:00
Dean Herbert
6c64cea057 Catch a second location 2022-06-29 18:56:15 +09:00
Dean Herbert
b092e6937a Guard against ruleset icon creation failures to avoid whole game death 2022-06-29 18:51:07 +09:00
Dan Balasescu
2989803b71 Merge branch 'master' into speed-acc-scaling 2022-06-29 16:15:20 +09:00
Dan Balasescu
f435f0d8e4
Merge pull request #18920 from andy840119/remove-nullable-disable-in-the-migration
Remove the nullable disable annotations in the class belongs to the migration namespace.
2022-06-29 14:40:11 +09:00
Dan Balasescu
fde5b2cf2b
Merge pull request #18921 from andy840119/remove-nullable-disable-in-the-localisation
Remove the nullable disable annotation in the localisation.
2022-06-29 13:51:50 +09:00
Dan Balasescu
114f1b47c4
Merge branch 'master' into remove-nullable-disable-in-the-migration 2022-06-29 13:11:45 +09:00
Bartłomiej Dach
a0125cbb62
Merge branch 'master' into fix-da-settings-slider-padding 2022-06-28 20:53:07 +02:00
Dean Herbert
ecdb30d215 Fix one more case of collection modification during enumeration
https://sentry.ppy.sh/share/issue/a61c27b2a63a4a6aa80e75873f9d87ca/
2022-06-29 02:28:23 +09:00
Joseph Madamba
aacded0ecf Fix difficulty adjust settings having more padding on sliders 2022-06-28 07:33:05 -07:00
andy840119
de7f2a0bba Remove the nullable disable annotation in the localisation. 2022-06-28 20:59:57 +08:00
andy840119
2269f1046e Remove the nullable disable annotations. 2022-06-28 20:59:03 +08:00
cdwcgt
946178ca41
Remove useless LocalisableDescription 2022-06-28 20:03:21 +09:00
Dean Herbert
7c9c499e19 Update resources (translation updates) 2022-06-28 19:21:46 +09:00
Dean Herbert
c282e19316 Update language initialisation in line with framework LocalisationManager changes 2022-06-28 18:19:48 +09:00
Dean Herbert
975ba83838 Update framework 2022-06-28 18:19:48 +09:00
Dean Herbert
e10ac45fd7 Remove probably redundant realmLock
As far as I can tell all accesses are safe due to update thread
guarantees. The only weird one may be async writes during a
`BlockAllOperations`, but the `Compact` loop should handle this quite
amicably.
2022-06-28 16:55:54 +09:00
Dan Balasescu
d630b62cfc
Merge pull request #18915 from peppy/slider-snaking-test-refactoring
Apply various refactorings to `TestSceneSliderSnaking`
2022-06-28 16:16:35 +09:00
Dan Balasescu
8e4a6c43b5
Merge pull request #18914 from peppy/spectator-playback-test-leniences
Increase leniences on `TestSceneSpectatorPlayback.TestWithSendFailure`
2022-06-28 16:15:51 +09:00
Dean Herbert
6bfd351dec Add logging of GameplayClockContainer seeks 2022-06-28 15:23:29 +09:00
Dean Herbert
35745c83b7 Replace dodgy SetUpSteps overriding with usage of HasCustomSteps 2022-06-28 15:19:02 +09:00
Dean Herbert
22b254e5c5 Handle task exception outside of schedule to avoid unobserved exceptions 2022-06-28 15:09:28 +09:00
Dean Herbert
c1075d113f Add logging around current channel changes and join requests
Tracking down a flaky test
(https://teamcity.ppy.sh/buildConfiguration/Osu_Build/553?hideProblemsFromDependencies=false&expandBuildTestsSection=true&hideTestsFromDependencies=false):

```csharp
TearDown : System.TimeoutException : "PM Channel 1 displayed" timed out
--TearDown
   at osu.Framework.Testing.Drawables.Steps.UntilStepButton.<>c__DisplayClass11_0.<.ctor>b__0()
   at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered)
   at osu.Framework.Testing.TestScene.runNextStep(Action onCompletion, Action`1 onError, Func`2 stopCondition)
--- End of stack trace from previous location ---
   at osu.Framework.Testing.TestSceneTestRunner.TestRunner.RunTestBlocking(TestScene test)
   at osu.Game.Tests.Visual.OsuTestScene.OsuTestSceneTestRunner.RunTestBlocking(TestScene test) in /opt/buildagent/work/ecd860037212ac52/osu.Game/Tests/Visual/OsuTestScene.cs:line 503
   at osu.Framework.Testing.TestScene.RunTestsFromNUnit()
------- Stdout: -------
[runtime] 2022-06-27 23:18:55 [verbose]: 💨 Class: TestSceneChatOverlay
[runtime] 2022-06-27 23:18:55 [verbose]: 🔶 Test:  TestKeyboardNextChannel
[runtime] 2022-06-27 23:18:55 [verbose]: Chat is now polling every 60000 ms
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #1 Setup request handler
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #2 Add test channels
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #3 Show overlay with channels
[runtime] 2022-06-27 23:18:55 [verbose]: Unhandled Request Type: osu.Game.Online.API.Requests.CreateChannelRequest
[network] 2022-06-27 23:18:55 [verbose]: Failing request osu.Game.Online.API.Requests.CreateChannelRequest (System.InvalidOperationException: DummyAPIAccess cannot process this request.)
[runtime] 2022-06-27 23:18:55 [verbose]: Unhandled Request Type: osu.Game.Online.API.Requests.CreateChannelRequest
[network] 2022-06-27 23:18:55 [verbose]: Failing request osu.Game.Online.API.Requests.CreateChannelRequest (System.InvalidOperationException: DummyAPIAccess cannot process this request.)
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #4 Select channel 1
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #5 Channel 1 is visible
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #6 Press document next keys
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #7 Channel 2 is visible
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #8 Press document next keys
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #9 PM Channel 1 displayed
[network] 2022-06-27 23:18:55 [verbose]: Request to https://a.ppy.sh/587 failed with System.Net.WebException: NotFound.
[network] 2022-06-27 23:18:55 [verbose]: Request to https://a.ppy.sh/503 failed with System.Net.WebException: NotFound.
[runtime] 2022-06-27 23:19:05 [verbose]: 💥 Failed (on attempt 5,550)
[runtime] 2022-06-27 23:19:05 [verbose]:  Currently loading components (0)
[runtime] 2022-06-27 23:19:05 [verbose]: 🧵 Task schedulers
[runtime] 2022-06-27 23:19:05 [verbose]: LoadComponentsAsync (standard) concurrency:4 running:0 pending:0
[runtime] 2022-06-27 23:19:05 [verbose]: LoadComponentsAsync (long load) concurrency:4 running:0 pending:0
[runtime] 2022-06-27 23:19:05 [verbose]: 🎱 Thread pool
[runtime] 2022-06-27 23:19:05 [verbose]: worker:          min 1      max 32,767 available 32,766
[runtime] 2022-06-27 23:19:05 [verbose]: completion:      min 1      max 1,000  available 1,000
[runtime] 2022-06-27 23:19:05 [debug]: Focus on "ChatTextBox" no longer valid as a result of unfocusIfNoLongerValid.
[runtime] 2022-06-27 23:19:05 [debug]: Focus changed from ChatTextBox to nothing.
```

This kind of logging should be helpful:

```csharp
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #5 Channel 1 is visible
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #6 Press document next keys
[runtime] 2022-06-28 04:59:57 [verbose]: Current channel changed to #channel-2
[runtime] 2022-06-28 04:59:57 [debug]: Pressed (DocumentNext) handled by TestSceneChatOverlay+TestChatOverlay.
[runtime] 2022-06-28 04:59:57 [debug]: KeyDownEvent(PageDown, False) handled by ManualInputManager+LocalPlatformActionContainer.
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #7 Channel 2 is visible
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #8 Press document next keys
[runtime] 2022-06-28 04:59:57 [verbose]: Current channel changed to test user 685
[runtime] 2022-06-28 04:59:57 [debug]: Pressed (DocumentNext) handled by TestSceneChatOverlay+TestChatOverlay.
[runtime] 2022-06-28 04:59:57 [debug]: KeyDownEvent(PageDown, False) handled by ManualInputManager+LocalPlatformActionContainer.
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #9 PM Channel 1 displayed
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #10 Press document next keys
[runtime] 2022-06-28 04:59:57 [verbose]: Current channel changed to test user 218
```
2022-06-28 14:00:30 +09:00
Bartłomiej Dach
93e13ef890
Merge branch 'master' into no-invalid-operation-without-message 2022-06-27 19:11:08 +02:00
Dean Herbert
54fe6b7df3
Fix incorrect string interpolation
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-06-28 01:43:09 +09:00
Dean Herbert
569fde4b47 Add messages to all InvalidOperationExceptions
Without this, they can be very non-descript and hard to track down
2022-06-28 01:34:25 +09:00
Dean Herbert
b28cfc222b Schedule unregister instead 2022-06-28 01:19:28 +09:00
Dean Herbert
3e3843dcf9 Fix potential crash on CloseAllOverlays due to collection mutation 2022-06-28 00:32:36 +09:00
Dan Balasescu
d43b980a17
Merge pull request #18872 from peppy/add-working-beatmap-changed-logging
Add various logging of global `WorkingBeatmap` state changes
2022-06-27 21:34:05 +09:00
Dan Balasescu
c2b03cb6b9
Merge pull request #18875 from peppy/logging-finalise-selection-abort-operations
Add logging for various cases of `SongSelect.FinaliseSelection` being aborted
2022-06-27 21:33:51 +09:00
Dan Balasescu
6c6de9ce53
Fix typo 2022-06-27 20:40:02 +09:00
Dan Balasescu
396e7fc166
Merge pull request #18862 from peppy/empty-beatmap-file-fix-2
Fix second case of empty beatmaps being reported to sentry as errors
2022-06-27 20:37:57 +09:00
Dean Herbert
aa7d54f8b6 Add logging for various cases of SongSelect.FinaliseSelection being aborted 2022-06-27 20:10:17 +09:00
Dean Herbert
f355c3a3c9
Merge pull request #18864 from peppy/fix-realm-audio-track-test-fail
Centralise and harden editor-ready-for-use check
2022-06-27 19:42:49 +09:00
Dean Herbert
83982d258d Throw immediately if attempting to WriteAsync after disposed 2022-06-27 19:34:28 +09:00
Dean Herbert
c39c99bd43 Ensure all async writes are completed before realm is disposed 2022-06-27 19:21:05 +09:00
Dan Balasescu
8f91ce8f0c
Merge pull request #18871 from peppy/fix-realm-assertion-during-tests
Fix occasional failure in realm test proceedings due to incorrect `Debug.Assert`
2022-06-27 18:48:47 +09:00
Dean Herbert
50c1c066de Add various logging of global WorkingBeatmap state changes 2022-06-27 18:41:31 +09:00
Dean Herbert
0ba29b6fa6 Use currentScreen instead to make sure the screen we care about is loaded 2022-06-27 18:28:00 +09:00
Dan Balasescu
b13fa924fd
Merge pull request #18865 from peppy/fix-flaky-chat-test
Fix chat tests failing 1/10000 runs
2022-06-27 18:06:00 +09:00
Dean Herbert
f6a61472c4 Fix occasional failure in realm test proceedings due to incorrect Debug.Assert
After a `BlockAllOperations`, the restoration of the `updateRealm`
instance is not instance. It is posted to a `SynchronizationContext`.
The assertion which has been removed in this commit was assuming it
would always be an immediate operation.

To ensure this works as expected, I've tracked the initialised state via
a new `bool`.

```csharp
System.TimeoutException : Attempting to block for migration took too long.

  1) Host threw exception System.AggregateException: One or more errors occurred. (: )
 ---> NUnit.Framework.AssertionException: :
   at osu.Framework.Logging.ThrowingTraceListener.Fail(String message1, String message2)
   at System.Diagnostics.TraceInternal.Fail(String message, String detailMessage)
   at System.Diagnostics.TraceInternal.TraceProvider.Fail(String message, String detailMessage)
   at System.Diagnostics.Debug.Fail(String message, String detailMessage)
   at osu.Game.Database.RealmAccess.BlockAllOperations() in /opt/buildagent/work/ecd860037212ac52/osu.Game/Database/RealmAccess.cs:line 813
   at osu.Game.OsuGameBase.<>c__DisplayClass108_1.<Migrate>b__0() in /opt/buildagent/work/ecd860037212ac52/osu.Game/OsuGameBase.cs:line 449
   at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
   at osu.Framework.Threading.Scheduler.Update()
   at osu.Framework.Graphics.Drawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
```

https://teamcity.ppy.sh/buildConfiguration/Osu_Build/322?hideProblemsFromDependencies=false&hideTestsFromDependencies=false&expandBuildTestsSection=true
2022-06-27 18:01:12 +09:00
Dean Herbert
13dcaf82ad Fix chat tests failing 1/10000 runs
31a447fda0/osu.Game/Online/Chat/ChannelManager.cs (L412-L414)

Sigh.
2022-06-27 16:50:10 +09:00
Dean Herbert
5a7d339cc8 Centralise and harden editor-ready-for-use check
Not only does this combine the check into one location, but it also adds
a check on the global `WorkingBeatmap` being updated, which is the only
way I can see the following failure happening:

```csharp
05:19:07     osu.Game.Tests: osu.Game.Tests.Visual.Editing.TestSceneEditorBeatmapCreation.TestAddAudioTrack
05:19:07       Failed TestAddAudioTrack [161 ms]
05:19:07       Error Message:
05:19:07        TearDown : System.NullReferenceException : Object reference not set to an instance of an object.
05:19:07       Stack Trace:
05:19:07       --TearDown
05:19:07        at osu.Game.Database.ModelManager`1.<>c__DisplayClass7_0.<AddFile>b__0(TModel managed) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 36
05:19:07        at osu.Game.Database.ModelManager`1.<>c__DisplayClass8_0.<performFileOperation>b__0(Realm realm) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 49
05:19:07        at osu.Game.Database.RealmExtensions.Write(Realm realm, Action`1 function) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\RealmExtensions.cs:line 14
05:19:07        at osu.Game.Database.ModelManager`1.performFileOperation(TModel item, Action`1 operation) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 46
05:19:07        at osu.Game.Database.ModelManager`1.AddFile(TModel item, Stream contents, String filename) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 36
05:19:07        at osu.Game.Screens.Edit.Setup.ResourcesSection.ChangeAudioTrack(FileInfo source) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Screens\Edit\Setup\ResourcesSection.cs:line 115
05:19:07        at osu.Game.Tests.Visual.Editing.TestSceneEditorBeatmapCreation.<TestAddAudioTrack>b__13_0() in C:\BuildAgent\work\ecd860037212ac52\osu.Game.Tests\Visual\Editing\TestSceneEditorBeatmapCreation.cs:line 101
05:19:07        at osu.Framework.Testing.Drawables.Steps.AssertButton.checkAssert()
05:19:07        at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered)
05:19:07        at osu.Framework.Testing.TestScene.runNextStep(Action onCompletion, Action`1 onError, Func`2 stopCondition)
```
2022-06-27 16:22:01 +09:00
Dan Balasescu
0fd2c010e5 Remove NRT disables from attributes classes 2022-06-27 16:07:15 +09:00
Dan Balasescu
0579780bb8 Add IBeatmapOnlineInfo parameter and use to extract more data 2022-06-27 16:07:15 +09:00
Dan Balasescu
f6a6538e96 Add more properties to IBeatmapOnlineInfo 2022-06-27 16:07:15 +09:00
Dean Herbert
10d1bbb131 Log global working beatmap updates in OsuGameBase instead of OsuGame 2022-06-27 15:58:51 +09:00
Dean Herbert
01487a1185 Add assertion on realm re-fetch being not-null 2022-06-27 15:52:45 +09:00
Dean Herbert
13c8d33009 Fix second case of empty beatmaps being reported to sentry as errors 2022-06-27 15:29:01 +09:00
Dean Herbert
da61d0547f Include archive name in import log output 2022-06-27 15:24:25 +09:00
Dan Balasescu
2b278ed324
Merge pull request #18841 from peppy/menu-cursor-better-rotation
Adjust menu cursor rotation to use a floating centre-point
2022-06-27 14:18:54 +09:00
Dean Herbert
1a22377e19 Fix test deadlock due to TPL threadpool saturation
As found in aggressive CI runs:

```csharp
00007F6F527F32B0 00007f74f937c72d (MethodDesc 00007f74f5545a78 + 0x22d System.Threading.ManualResetEventSlim.Wait(Int32, System.Threading.CancellationToken)), calling (MethodDesc 00007f74f51c0838 + 0 System.Threading.Monitor.Wait(System.Object, Int32))
00007F6F527F3330 00007f74f93861ca (MethodDesc 00007f74f5259100 + 0x10a System.Threading.Tasks.Task.SpinThenBlockingWait(Int32, System.Threading.CancellationToken)), calling (MethodDesc 00007f74f5545a78 + 0 System.Threading.ManualResetEventSlim.Wait(Int32, System.Threading.CancellationToken))
00007F6F527F3390 00007f74f9385d11 (MethodDesc 00007f74f52590e8 + 0x81 System.Threading.Tasks.Task.InternalWaitCore(Int32, System.Threading.CancellationToken)), calling (MethodDesc 00007f74f5259100 + 0 System.Threading.Tasks.Task.SpinThenBlockingWait(Int32, System.Threading.CancellationToken))
00007F6F527F33E0 00007f74fc3823af (MethodDesc 00007f74f5934c08 + 0x4f System.Threading.Tasks.Task`1[[System.Boolean, System.Private.CoreLib]].GetResultCore(Boolean)), calling (MethodDesc 00007f74f52590e8 + 0 System.Threading.Tasks.Task.InternalWaitCore(Int32, System.Threading.CancellationToken))
00007F6F527F3400 00007f74fb0aad92 (MethodDesc 00007f74fb28b000 + 0x122 osu.Game.Tests.Visual.OnlinePlay.OnlinePlayTestScene+<>c__DisplayClass21_0.<Setup>b__1(osu.Game.Online.API.APIRequest)), calling (MethodDesc 00007f74f5934be8 + 0 System.Threading.Tasks.Task`1[[System.Boolean, System.Private.CoreLib]].get_Result())
00007F6F527F3470 00007f74fa9c6dd7 (MethodDesc 00007f74f921f6c8 + 0x77 osu.Game.Online.API.DummyAPIAccess.PerformAsync(osu.Game.Online.API.APIRequest))
00007F6F527F34C0 00007f74fb13c718 (MethodDesc 00007f74fb4e0c50 + 0x538 osu.Game.Database.OnlineLookupCache`3+<performLookup>d__13[[System.Int32, System.Private.CoreLib],[System.__Canon, System.Private.CoreLib],[System.__Canon, System.Private.CoreLib]].MoveNext())
```

Going with the simplest solution, as what we had was pretty ugly to start with and I don't want to overthink this, just push a fix and hope for the best.
2022-06-26 16:42:29 +09:00
Dean Herbert
2ecab454aa Adjust animations and tolerances to make things feel snappier 2022-06-25 19:50:10 +09:00
Dean Herbert
a039f9878a Adjust menu cursor rotation to follow mouse, rather than be fixated around original click location 2022-06-25 19:33:44 +09:00
Bartłomiej Dach
a83c45b50e
Fix compile failures from framework breaking change 2022-06-24 16:07:14 +02:00
Bartłomiej Dach
df30bedab6
Update framework again 2022-06-24 16:01:52 +02:00
Dean Herbert
14327943a2 Update framework 2022-06-24 21:28:30 +09:00
Dean Herbert
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Dean Herbert
30eebf3511 Merge branch 'master' into c-sharp-10 2022-06-24 21:22:33 +09:00
Dean Herbert
7692bac35a Simplify refetch (and ensure to invalidate after processing) 2022-06-24 21:02:38 +09:00
Dean Herbert
0c3d890f76 Fix reprocessing not working on import due to realm threading woes 2022-06-24 21:02:38 +09:00
Dean Herbert
30b3973c9f Difficulty cache invalidation flow 2022-06-24 21:02:38 +09:00
Dean Herbert
66a01d1ed2 Allow song select to refresh the global WorkingBeatmap after an external update 2022-06-24 21:02:38 +09:00
Dean Herbert
6999933d33 Split updater process into realm transaction and non-transaction 2022-06-24 21:02:38 +09:00
Dean Herbert
021b16f2f3 Ensure WorkingBeatmap is invalidated after update 2022-06-24 21:02:38 +09:00
Dean Herbert
fe570d8052 Queue beatmaps for update after editing 2022-06-24 21:02:38 +09:00
Dean Herbert
06d59b717c Move beatmap processing tasks to new BeatmapUpdater class 2022-06-24 21:02:37 +09:00
Dean Herbert
2ca4184eda
Merge pull request #18834 from bdach/ban-implicit-to-lower-upper
Disallow usage of `string.To{Upper,Lower}()` without explicit culture
2022-06-24 20:39:58 +09:00
Dan Balasescu
7eb49dac7a
Merge pull request #18832 from peppy/bdc-remove-unused-path
Remove unused bindable retrieval flow in `BeatmapDifficultyCache`
2022-06-24 20:20:23 +09:00
Dean Herbert
823b3c1c0f Ensure WorkingBeatmap is always using a detached instance 2022-06-24 19:07:54 +09:00
Dean Herbert
2ae48d5a87 Rename incorrect parameter name in BeatmapManager.GetWorkingBeatmap 2022-06-24 19:07:54 +09:00
Bartłomiej Dach
26c5b59f6d
Replace usages of string.To{Lower,Upper}() 2022-06-24 11:57:45 +02:00
Dean Herbert
c179127670 Remove unused bindable retrieval flow 2022-06-24 17:09:56 +09:00
Dean Herbert
0755430006 Use AddOnce for update calls 2022-06-24 17:09:56 +09:00
Dean Herbert
8912f07745 Merge branch 'master' into difficulty-icon-refactor-pass 2022-06-24 16:34:35 +09:00
Dean Herbert
f71f6302fd Remove unnecessary null casts 2022-06-24 14:50:11 +09:00
Dean Herbert
28837693e5 Nuke calculating everything
The whole component is pointless so I'm just going to nuke for now I
guess. Kind of makes the whole refactor effort pointless but oh well?

To expand on this, the implementation was actually incorrect as pointed
out at https://github.com/ppy/osu/pull/18819#pullrequestreview-1017886035.
2022-06-24 14:24:06 +09:00
Dean Herbert
12ea8369ee Update retriever to be relatively sized 2022-06-24 14:06:31 +09:00
Dean Herbert
d9c1a9d71f Use new property to specify no tooltip, rather than passing only ruleset 2022-06-24 14:06:18 +09:00
Dean Herbert
129c907092 Remove unused parameters 2022-06-24 13:58:02 +09:00
Bartłomiej Dach
04d69010b5
Split overlong conditional to local function 2022-06-23 18:03:07 +02:00
Bartłomiej Dach
bea70988bc
Remove unnecessary #nullable disable 2022-06-23 17:57:22 +02:00
Gabe Livengood
454eff43c5
publicity -> accesstype 2022-06-23 11:40:25 -04:00
Gabe Livengood
d67c482c48
move publicity filter to multi exclusively 2022-06-23 11:36:08 -04:00