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

29730 Commits

Author SHA1 Message Date
Dean Herbert
416ee2447a Move archive filename helper method to extension method 2021-11-25 16:35:54 +09:00
Dan Balasescu
d8a23aad4d
Merge pull request #15791 from peppy/realm-integration/skin-model-manager
Split out `SkinModelManager` from `SkinManager`
2021-11-25 16:35:05 +09:00
Dean Herbert
a0fa030f55 Rename base class to LegacyModelImporter 2021-11-25 16:33:04 +09:00
Dean Herbert
210dfab392
Merge pull request #15790 from peppy/realm-integration/score-manager-interface-reduction
Reduce interface exposure of `ScoreManager`
2021-11-25 15:46:38 +09:00
Dean Herbert
2df793ca22 Inline individual importers to avoid unnecessary construction for singular import types 2021-11-25 15:44:04 +09:00
Dean Herbert
9dcb20a821 Rename Stable to Legacy and add xmldoc 2021-11-25 15:39:05 +09:00
Dean Herbert
6cab7b877d Move stable import handling into its own class 2021-11-25 15:36:58 +09:00
Dean Herbert
2bfc473689 Split out SkinModelManager from SkinManager 2021-11-25 15:14:43 +09:00
Dean Herbert
60b207f20a Reduce interface exposure of ScoreManager 2021-11-25 14:34:13 +09:00
Dean Herbert
bcdb73e1e8 Clean up files last 2021-11-25 14:28:27 +09:00
Dean Herbert
315e126497 Add automatic clean-up call for RealmFileStore 2021-11-25 14:17:44 +09:00
Dean Herbert
204bd2b604 Ensure Cleanup can run from non-update thread and add basic log output 2021-11-25 14:17:44 +09:00
Dean Herbert
fd321109da Remove unnecessary virtual specification on Refresh 2021-11-25 14:06:12 +09:00
Dean Herbert
306e13fa7b Remove all usages of FileStore.QueryFiles 2021-11-25 14:06:02 +09:00
Dean Herbert
1533e245de
Merge pull request #15767 from bdach/beatmap-card/track-preview
Add preview track playback function to beatmap card
2021-11-25 12:08:03 +09:00
Bartłomiej Dach
20f71da2c4
Merge branch 'master' into fix-mp-resuming 2021-11-24 20:17:58 +01:00
Dan Balasescu
1865227e08
Merge pull request #15773 from peppy/remove-model-file-list-inits
Initialise `IHasFiles<TFile>.Files` lists at construction time
2021-11-24 21:05:36 +09:00
Dan Balasescu
016684b52d Remove unreachable code 2021-11-24 20:29:47 +09:00
Dan Balasescu
132bb59203 Update working beatmap when returning to match 2021-11-24 19:56:02 +09:00
Dan Balasescu
ce8500a732
Merge branch 'master' into remove-model-file-list-inits 2021-11-24 19:46:42 +09:00
Dean Herbert
b739b6a725
Merge branch 'master' into beatmap-card/track-preview 2021-11-24 18:54:25 +09:00
Dean Herbert
61009013cc Give a more correct default value to beatmap and set statuses 2021-11-24 18:48:12 +09:00
Dean Herbert
052ed8f930 Add online status to RealmBeatmapSet 2021-11-24 18:48:02 +09:00
Dean Herbert
183b95cbc2 Rename BeatmapSetOnlineStatus to BeatmapOnlineStatus
This variable is used at more than just a set level.
2021-11-24 18:42:49 +09:00
Dean Herbert
ddbd4f9473 Merge branch 'master' into remove-model-file-list-inits 2021-11-24 18:39:01 +09:00
Dan Balasescu
5ff62a8e04
Merge pull request #15779 from peppy/remaining-misc-fixes
Apply some various code quality fixes that don't fit elsewhere
2021-11-24 16:59:49 +09:00
Dan Balasescu
74b6c33fab
Merge pull request #15778 from peppy/ruleset-info-id-usage
Update usages of `RulesetInfo.ID` to use `OnlineID` instead
2021-11-24 16:55:28 +09:00
Dan Balasescu
834bdd8e5c
Merge pull request #15776 from peppy/non-null-beatmapset-metadata
Make `BeatmapSet.Metadata` non-null
2021-11-24 16:48:28 +09:00
Dan Balasescu
8ce5324c8b
Merge pull request #15772 from peppy/remove-model-list-inits
Initialise `BeatmapSet.Beatmaps` list at construction time
2021-11-24 16:41:19 +09:00
Dean Herbert
2dabedebff Remove unnecessary user assign in HitObjectSampleTest 2021-11-24 16:30:00 +09:00
Dean Herbert
3e0e01abdb Move bookmark parsing logic into LegacyBeatmapDecoder 2021-11-24 16:29:51 +09:00
Dean Herbert
9c61ec217b Remove unnecessary mainTrackMixer parameter from BeatmapManager 2021-11-24 16:27:17 +09:00
Dan Balasescu
2ec3fb2e9e
Merge pull request #15760 from peppy/realm-move-data-migration-to-context-factory
Move realm data migrations inside the `RealmContextFactory`
2021-11-24 16:23:56 +09:00
Dean Herbert
bbd3ea5b77 Update all actual usages of RulesetInfo.ID to use OnlineID instead 2021-11-24 15:50:26 +09:00
Dean Herbert
f283770f34 Update mock RulesetInfo usage to set OnlineID instead of ID 2021-11-24 15:50:26 +09:00
Dean Herbert
e57c343531 Add helper setter to EF RulesetInfo.OnlineID to allow updating usages 2021-11-24 15:50:26 +09:00
Dan Balasescu
33d95fbb9c
Merge pull request #15771 from peppy/ruleset-config-cache-shortname
Update `RulesetConfigCache` to cache via `ShortName` instead of `ID`
2021-11-24 15:24:57 +09:00
Dan Balasescu
73e50af9cc
Merge pull request #15775 from peppy/update-framework
Update framework
2021-11-24 15:24:43 +09:00
Dean Herbert
cb093e1e01 Remove reundant self-sets of metadata 2021-11-24 15:08:04 +09:00
Dean Herbert
3946a39b65 Make BeatmapSet.Metadata non-null 2021-11-24 15:03:34 +09:00
Dan Balasescu
c4b5a07f4b
Merge branch 'master' into realm-move-data-migration-to-context-factory 2021-11-24 14:40:26 +09:00
Dean Herbert
a7853fc9cc Fix cases of known-non-null 2021-11-24 14:26:25 +09:00
Dean Herbert
ec89dfa043 Update framework 2021-11-24 14:09:25 +09:00
Dean Herbert
0aedbbe165 Fix incorrect fallback logic causing test failure 2021-11-24 14:04:55 +09:00
Dean Herbert
c2f8d9f677 Update tests which set Files lists directly 2021-11-24 14:00:14 +09:00
Dean Herbert
99a139dc98 Initialise all file lists at construction time (and remove setter) 2021-11-24 13:56:21 +09:00
Dan Balasescu
5a0a95f9d4 Trim whitespace 2021-11-24 13:48:59 +09:00
Dan Balasescu
84268c3d85 Merge branch 'master' into realm-ruleset-keybinding-short-name 2021-11-24 13:48:48 +09:00
Dan Balasescu
6183d1cd46
Merge pull request #15769 from peppy/model-equality-consistency
Update cases where equality can be used instead of primary key equality
2021-11-24 13:45:57 +09:00
Dan Balasescu
6ffba8a546
Merge pull request #15768 from peppy/standardise-ruleset-create-instance
Remove nullability of `Ruleset.CreateInstance`
2021-11-24 13:43:23 +09:00
Dean Herbert
a3fdab34d5 Avoid json serialisation of aggregate helper properties
Also avoids `throw`ing when there are no beatmaps available. Until now
this wasn't an issue due to the `Beatmaps` list being null instead of empty.
2021-11-24 13:36:34 +09:00
Dean Herbert
8c60f37508 Fix cases of dynamically assigning Beatmaps to BeatmapSetInfo using list assignment 2021-11-24 13:27:37 +09:00
Dean Herbert
49c2cb9125 Initialise BeatmapSet.Beatmaps list to line up with realm expectations 2021-11-24 13:25:55 +09:00
Dean Herbert
ee22c24370 Update RulesetConfigCache to cache via ShortName instead of ID 2021-11-24 13:10:18 +09:00
Dean Herbert
729f681938 Update cases where equality can be used instead of primary key equality 2021-11-24 12:49:57 +09:00
Dean Herbert
6aed41eacc
Merge branch 'master' into realm-move-data-migration-to-context-factory 2021-11-24 12:38:44 +09:00
Dean Herbert
63b09b356f Rewrite commments to read better 2021-11-24 12:37:09 +09:00
Dean Herbert
6cd1bfd94f Remove outdated comment 2021-11-24 12:35:05 +09:00
Dean Herbert
0eea026afb Remove null checks on CreateInstance() calls 2021-11-24 12:23:09 +09:00
Dean Herbert
8d69ebd7db Remove nullability of Ruleset.CreateInstance 2021-11-24 12:23:06 +09:00
Dean Herbert
049f25a133
Merge pull request #15757 from smoogipoo/fix-multiplayer-tests
Fix several intermittent multiplayer test failures
2021-11-24 09:32:01 +09:00
Bartłomiej Dach
1a1603f0db
Implement preview track playback 2021-11-23 23:17:30 +01:00
Bartłomiej Dach
9164f006aa
Implement basic behaviour of play button 2021-11-23 22:44:09 +01:00
Bartłomiej Dach
5d13686cdf
Add play button for card preview 2021-11-23 22:44:08 +01:00
Bartłomiej Dach
4011da033b
Split off thumbnail to separate component 2021-11-23 22:44:07 +01:00
Bartłomiej Dach
0d409fa33e
Merge branch 'master' into realm-ruleset-keybinding-short-name 2021-11-23 20:18:58 +01:00
Bartłomiej Dach
fa96b29d6b
Merge branch 'master' into realm-ruleset-setting-short-name 2021-11-23 19:44:41 +01:00
Dean Herbert
6b134359c9 Handle the case where the ruleset isn't found in the EF database any more 2021-11-23 19:15:52 +09:00
Dean Herbert
4149d458f0 Move realm data migrations inside the RealmContextFactory 2021-11-23 18:14:15 +09:00
Dean Herbert
d9917ee6c7 Merge branch 'realm-ruleset-setting-short-name' into realm-ruleset-keybinding-short-name 2021-11-23 18:13:26 +09:00
Dean Herbert
40cd998f99 Fix incorrect disposal 2021-11-23 18:13:05 +09:00
Dan Balasescu
79a8e60468 Resolve inspection 2021-11-23 17:55:04 +09:00
Dean Herbert
782191c410 Merge branch 'realm-ruleset-setting-short-name' into realm-ruleset-keybinding-short-name 2021-11-23 17:48:48 +09:00
Dean Herbert
b1b6723826 Add xmldoc and verbatim string markers 2021-11-23 17:47:43 +09:00
Dean Herbert
505fede44d Pass the full EF context rather than a legacy RulesetStore 2021-11-23 17:40:20 +09:00
Dan Balasescu
fd4d5e98a7
Merge pull request #15745 from bdach/settings-number-box-stack-overflow
Fix crashes on trying to play back replays of seeded mods with seed value over 1 billion
2021-11-23 16:36:05 +09:00
Dan Balasescu
b7510697c8
Merge pull request #15753 from peppy/osu-test-scene-isolation-clean-up
Restructure how the headless storage is used / documented to hopefully make more sense
2021-11-23 16:29:39 +09:00
Dan Balasescu
6363833fb3 Revert unnecessary changes 2021-11-23 16:17:09 +09:00
Dan Balasescu
1f13669636 Don't poll while in room
Fixes timeout in `TestJoinRoomWithoutPassword`, because the 'server' returns
out-of-date data while the `MatchSubScreen` has possible not been entered
yet (and thus hasn't disabled polling itself yet).

Can be tested by adding a `Task.Delay(3000);` at the end of
the `MultiplayerClient.JoinRoom()` task.
2021-11-23 16:14:01 +09:00
Dan Balasescu
69a9fc9732 Fix a few more multiplayer test timeouts
These can be tested by adding a `Task.Delay(3000);` at the end of the
`MultiplayerClient.JoinRoom` task. The reason is typically that
`Client.Room` becomes not-null but the join task still hasn't completed
yet, so e.g. the ready button is still disabled.
2021-11-23 16:07:03 +09:00
Dan Balasescu
7906ae2b1d Update room immediately on join 2021-11-23 16:03:37 +09:00
Dean Herbert
6fb2757739 Remove usage of Nuget.Packaging extension methods for IList.AddRange 2021-11-23 15:02:02 +09:00
Dean Herbert
0989d6a92e Merge branch 'realm-ruleset-setting-short-name' into realm-ruleset-keybinding-short-name 2021-11-23 14:55:40 +09:00
Dean Herbert
f264b128c2 Merge branch 'master' into realm-ruleset-setting-short-name 2021-11-23 14:55:36 +09:00
Dean Herbert
473f6b0347 Add more xmldoc 2021-11-23 14:17:24 +09:00
Dean Herbert
55f7d120e6 Rename and reorder fields in OsuTestScene 2021-11-23 14:13:14 +09:00
Dean Herbert
5631e75f16 Restructure how the headless storage is used / documented to hopefully make more sense 2021-11-23 14:11:27 +09:00
Dean Herbert
49e2a8afa3 Don't directly reset the database when running tests
The containing storage is destroyed anyway, so this is redundant.
2021-11-23 14:08:04 +09:00
Dean Herbert
feb983d5bd Rename Debug namespace to avoid collisions 2021-11-23 13:09:41 +09:00
Dean Herbert
53d6b3c402 Merge branch 'realm-ruleset-setting-short-name' into realm-ruleset-keybinding-short-name 2021-11-23 11:49:13 +09:00
Dean Herbert
1f321e2910 Run EF migrations earlier to ensure it is complete before usage 2021-11-23 11:48:58 +09:00
Dean Herbert
119ac19f86
Merge branch 'master' into realm-beatmap-file-relation 2021-11-23 10:20:22 +09:00
Dean Herbert
e580fc5abc
Merge pull request #15735 from peppy/remove-ruleset-info-inheritance
Remove subclassing of `RulesetInfo`
2021-11-23 10:18:32 +09:00
Bartłomiej Dach
1ec5dd2cdf
Merge branch 'master' into realm-beatmap-file-relation 2021-11-22 21:53:08 +01:00
Bartłomiej Dach
4a9f080f3c
Accept full range of int in SettingsNumberBox
This fixes stack overflow exceptions that would arise when a
`Current.Value` of 1 billion or more was set on a `SettingsNumberBox`.
The stack overflow was caused by the "maximum 9 digits" spec. If a value
technically within `int` bounds, but larger than 1 billion (in the range
[1,000,000,000; 2,147,483,647], to be more precise), a feedback loop
between the setting control's `Current` and its inner text box's
`Current` would occur, wherein the last digit would be trimmed and then
re-appended again forevermore.

To resolve, remove the offending spec and rely on `int.TryParse`
entirely to be able to discern overflow range. Additionally, UX of the
text box is slightly changed to notify when the `int` range is exceeded
with a red flash.

This behaviour would not have been possible to implement without recent
framework-side fixes to text box (removal of text set scheduling).
2021-11-22 20:49:14 +01:00
Dan Balasescu
fba9e360a1
Merge branch 'master' into ruleset-use-short-name 2021-11-22 23:56:34 +09:00
Dan Balasescu
7ce5cb6162
Merge pull request #15739 from peppy/realm-migration-ordering
Fix realm applying migrations from one version too early
2021-11-22 23:52:50 +09:00
Dean Herbert
6c36770eb3 Add back allowance for tests scenes using empty ShortName 2021-11-22 21:41:09 +09:00
Dean Herbert
d94b27a8a2 Switch realm ruleset key bindings to use ruleset's ShortName as key 2021-11-22 18:52:30 +09:00
Dean Herbert
329bae50b0 Switch realm ruleset configuration to use ruleset's ShortName as key 2021-11-22 18:52:00 +09:00
Dean Herbert
ca26b6c540 Provide RealmContextFactory with the EF RulesetStore for migration purposes 2021-11-22 18:51:44 +09:00
Dean Herbert
d2062ff97f Reformat realm migrations list for legibility 2021-11-22 18:47:18 +09:00
Dean Herbert
361cb78880 Fix realm applying migrations from one version too early 2021-11-22 18:46:46 +09:00
Dean Herbert
f1926c6d27 Store preferred ruleset to configuration using ShortName instead of ID 2021-11-22 17:45:31 +09:00
Dean Herbert
377ba2673a Use Ruleset's ShortName for mod caching purposes 2021-11-22 16:52:54 +09:00
Dean Herbert
a8bc1ab052 Attempt to fix fody issues by ignoring new property 2021-11-22 16:45:55 +09:00
Dean Herbert
cb5b6911e6 Seal RulesetInfo and remove virtual methods 2021-11-22 16:39:26 +09:00
Dean Herbert
b9923e5396 Remove subclassing of RulesetInfo 2021-11-22 16:39:17 +09:00
Dean Herbert
1cdfa6d9a0 Add helper property to access a realm beatmap's beatmap file 2021-11-22 15:30:11 +09:00
Dean Herbert
ff13a98077 Reformat realm migrations list for legibility 2021-11-22 15:23:16 +09:00
Dan Balasescu
f64d20ed71 Fix APIRoom queue mode not updated on change 2021-11-22 13:46:01 +09:00
Dean Herbert
bbb3abbc61
Merge branch 'master' into multi-queueing-modes 2021-11-22 12:32:47 +09:00
Dan Balasescu
f3ba62d2c2 Add xmldoc to serverSidePlaylist 2021-11-22 11:26:41 +09:00
Dan Balasescu
10dc08a855 Store server-side playlist instead of mutating client-side version 2021-11-22 11:18:21 +09:00
Dan Balasescu
6420971660 Adjust test client with new queue-changing logic 2021-11-22 11:10:10 +09:00
Dan Balasescu
4b498c7bd6 Merge branch 'master' into multi-queueing-modes 2021-11-22 07:46:45 +09:00
Bartłomiej Dach
975744d26c
Remove no longer used [Cached] attribute 2021-11-21 13:19:16 +01:00
Dean Herbert
c0962b1c4f
Merge branch 'master' into beatmap-card/download-button 2021-11-21 20:04:26 +09:00
Bartłomiej Dach
aaf3f3854e
Merge branch 'master' into fix-working-beatmap-wrong-exception-type 2021-11-21 11:32:29 +01:00
Bartłomiej Dach
bb8e8bc4f0
Use consistent type for mod collection in all overloads 2021-11-21 11:30:45 +01:00
Dean Herbert
8c72f4843d
Merge pull request #15684 from frenzibyte/fix-ios-online
Fix MessagePack workaround formatter potentially initializing on iOS
2021-11-21 16:02:08 +09:00
Dean Herbert
63642450a4
Merge branch 'master' into fix-working-beatmap-wrong-exception-type 2021-11-21 15:50:07 +09:00
Dan Balasescu
49de22ebba
Merge pull request #15711 from peppy/fix-skill-memory-leak
Stop persisting `Skill`s in `DifficultyAttributes`
2021-11-21 15:47:49 +09:00
Dan Balasescu
a06b361fe2
Merge pull request #15705 from bdach/fix-difficulty-cache-caching-zeroes
Fix zero star difficulty values being cached when diffcalc was interrupted
2021-11-21 15:45:29 +09:00
Salman Ahmed
af01b0ed48 BASE_DERIVED -> BASE_TYPE_MAPPING 2021-11-21 06:30:14 +03:00
Dean Herbert
fd3e5d333e Add xmldoc note about Skill potentially being memory expensive 2021-11-21 12:15:32 +09:00
Dean Herbert
9f688f6291 Stop persisting Skills in DifficultyAttributes 2021-11-21 12:15:32 +09:00
Salman Ahmed
915bde6f96 Remove unnecessary MatchServerEvent mapping 2021-11-21 06:09:45 +03:00
Bartłomiej Dach
65cb011bac
Merge branch 'master' into beatmap-card/download-button 2021-11-20 18:49:11 +01:00
Bartłomiej Dach
297de27a6a
Use BindTarget from card rather than caching & resolving download tracker 2021-11-20 18:48:26 +01:00
Bartłomiej Dach
b3606f4a21
Rename {Play -> GoToBeatmap}Button 2021-11-20 18:36:39 +01:00
Bartłomiej Dach
78ee213573
Merge branch 'master' into storage-path-extension-method 2021-11-20 18:21:46 +01:00
Bartłomiej Dach
a7e45a9098
Log all non-cancellation errors in difficulty cache 2021-11-20 17:32:40 +01:00
Bartłomiej Dach
6100bf66a6
Clean up cancellation handling in WorkingBeatmap
After the recent changes introducing cancellation support to
`WorkingBeatmap`, it turned out that if the cancellation support was
used, `GetPlayableBeatmap()` would raise timeout exceptions rather than
the expected `OperationCanceledException`.

To that end, split off a separate overload for the typical usage, that
catches `OperationCanceledException` and converts them to beatmap load
timeout exceptions, and use normal `OperationCanceledException`s in the
overload that requires a cancellation token to work.
2021-11-20 17:23:55 +01:00
Bartłomiej Dach
15feb17da8
Change difficulty cache storage type to nullable
The recent changes related to adding support for working beatmap load
cancellation exposed a flaw in the beatmap difficulty cache. With the
way the difficulty computation logic was written, any error in the
calculation process (including beatmap load timeout, or cancellation)
would result in a 0.00 star rating being permanently cached in memory
for the given beatmap.

To resolve, change the difficulty cache's return type to nullable.
In failure scenarios, `null` is returned, rather than
`default(StarDifficulty)` as done previously.
2021-11-20 17:00:50 +01:00
Salman Ahmed
8b28bf31f6 Separate SignalR workaround types away from resolver 2021-11-20 15:11:02 +03:00
Dean Herbert
e0629ba81c Update all dependencies 2021-11-20 13:31:10 +09:00
Salman Ahmed
0342923408 Fix SignalR messagepack formatter potentially initializing on iOS 2021-11-19 20:04:31 +03:00
Dan Balasescu
d397524878
Merge pull request #15676 from peppy/multiplayer-incorrect-beatmap-error
Show better error message when selecting an unavailable beatmap during multiplayer room creation
2021-11-19 18:59:46 +09:00
Dan Balasescu
de0e8ad822 Merge branch 'master' into multi-queueing-modes 2021-11-19 18:58:15 +09:00
Dan Balasescu
4c8c34b43f Use full name for round robin 2021-11-19 18:42:34 +09:00
Dan Balasescu
4e625b78e2 Update queue mode names 2021-11-19 18:28:43 +09:00
Dan Balasescu
f3f8ac2c43 Use single 2021-11-19 16:36:32 +09:00
Dan Balasescu
abb8b0de47 Also mutate multiplayer room playlist on callbacks 2021-11-19 16:35:45 +09:00
Dean Herbert
59e763467f Move StoragePath implementation to an extension method 2021-11-19 16:08:38 +09:00
Dan Balasescu
12e1142b07 Rename settings section 2021-11-19 15:47:40 +09:00
Dan Balasescu
a922ce2fd9 Remove unnecessary nameofs 2021-11-19 15:45:45 +09:00
Dean Herbert
6e5918a100 Add slight scale to icon buttons 2021-11-19 15:28:03 +09:00
Dean Herbert
741c27c1f2 Always populate action to make button behave better in testing scenarios 2021-11-19 15:27:38 +09:00
Dean Herbert
5034cb1025
Merge branch 'master' into beatmap-card/download-button 2021-11-19 14:59:42 +09:00