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

564 Commits

Author SHA1 Message Date
Dean Herbert
4149d458f0 Move realm data migrations inside the RealmContextFactory 2021-11-23 18:14:15 +09:00
Dean Herbert
505fede44d Pass the full EF context rather than a legacy RulesetStore 2021-11-23 17:40:20 +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
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
3b485b5f37 Rewrite PreviewTrackManager to avoid constructing TrackBass locally
This paves the way for the framework code quality change
(https://github.com/ppy/osu-framework/pull/4873) which stops exposing
the constructor.

Most of the restructuring here is required to give `PreviewTrackManager`
an adjustable target to apply the global mute.
2021-11-09 17:38:12 +09:00
Dean Herbert
f5842e7587 Shorten variable names 2021-11-08 18:24:37 +09:00
Dean Herbert
3183b20e2f Merge branch 'master' into use-ReadableKeyCombinationProvider 2021-11-08 18:15:49 +09:00
Dean Herbert
ea0715cce4 Add missing dispose call 2021-11-08 16:35:05 +09:00
Dean Herbert
dbdae4b033 Merge branch 'master' into realm-ruleset-store-thread-correctness 2021-11-08 15:21:30 +09:00
Dean Herbert
413f98999a Start initialising RealmRulesetStore on startup 2021-11-08 15:10:19 +09:00
Susko3
c3069ad002 Change to use ReadableKeyCombinationProvider
Changes all usages of `KeyCombination.ReadableString()` to
`ReadableKeyCombinationProvider.GetReadableString()`.

Subscribing to `KeymapChanged` is only required in `KeyButton`.
All other places query `GetReadableString()` every time.
2021-11-08 06:55:26 +01:00
Dean Herbert
54f72d68ca Revert weird event flow in model manager/importers 2021-11-05 19:12:49 +09:00
Dean Herbert
818fac6ac8 Make realm a non-drawable component to better order disposal
Until now, the `RealmContextFactory` would be disposed as part of the
drawable hierarchy. This is too early, as it may be being used by higher
level components (like `ConfigManager`s, see #15115) that perform final
operations after the drawables have been disposed.

Seems to make sense moving this out of the drawable hierarchy and in
line with how we were doing things with EF.
2021-10-15 13:58:16 +09:00
Dean Herbert
0df9ab3eec Fix migration blocking code running on the wrong thread 2021-10-12 16:04:09 +09:00
Dean Herbert
57c5be39d3 Merge branch 'master' into remove-local-realm-thread-switch-handling 2021-10-04 20:52:44 +09:00
Dean Herbert
853cf6feaa Rename last remaining BeatmapInfo Beatmap usage 2021-10-04 17:35:53 +09:00
Dean Herbert
ae5d1e8ac0 Merge branch 'master' into remove-local-realm-thread-switch-handling 2021-10-04 17:17:10 +09:00
Bartłomiej Dach
86240cc8ec
Add alternate Torus font 2021-10-03 23:36:39 +02:00
Dan Balasescu
d24f89fead
Merge pull request #14906 from peppy/update-realm-context-factory
Refine `RealmContext` implementation
2021-10-01 22:57:03 +09:00
Dean Herbert
3ddb348252 Merge branch 'online-lookup-cache-separation' into beatmap-manager-split 2021-10-01 01:49:31 +09:00
Dean Herbert
2ed28f625a Pass whole queue in rather than function 2021-10-01 01:46:37 +09:00
Dean Herbert
27c4f2b06e Add missing disposal 2021-10-01 01:38:50 +09:00
Dean Herbert
38cd383aaf Remove local handling of realm when switching thread modes 2021-10-01 00:27:54 +09:00
Dean Herbert
9fa901f6aa Refine RealmContext implementation API 2021-09-30 23:56:38 +09:00
Dean Herbert
7a72747d88 Add back optional online lookups 2021-09-30 17:18:39 +09:00
Dean Herbert
90225f2082 Hook up all required interfaces to new BeatmapManager 2021-09-30 17:18:39 +09:00
Dean Herbert
6ffd9fdcfa Split out BeatmapOnlineLookupQueue from BeatmapManager 2021-09-30 14:46:01 +09:00
Dean Herbert
edb1230111 Fix potential nullref throw on failed startup 2021-09-16 22:48:09 +09:00
Dean Herbert
a1d325cb22 Mark key and value non-nullable (at realm end) and simplify Value logic 2021-09-15 17:16:05 +09:00
Dean Herbert
a150fb2996 Add nullability directive and make variant non-nullable 2021-09-15 17:16:05 +09:00
Dean Herbert
dcfe9c67e3 Make ruleset id non-nullable 2021-09-15 17:12:04 +09:00
Dean Herbert
80ecf81be3 Rename all databased setting classes to be specific to rulesets for now 2021-09-15 17:12:04 +09:00
Dean Herbert
5bb741b4e8 Remove migration of key bindings 2021-09-15 17:04:38 +09:00
Dean Herbert
2bcb3fd304 Add migration of existing settings 2021-09-15 16:31:13 +09:00
Dean Herbert
a2f1752344 Make settings works with current caching structure
Will likely pull out that `RulesetConfigCache` next, but this is an
"everything works" state.
2021-09-15 16:31:13 +09:00
Dean Herbert
187c557ea8 Begin migrating settings implementation across to realm 2021-09-15 16:22:14 +09:00
Dean Herbert
1aa95de530 Merge branch 'master' into score-ordering 2021-09-07 17:45:38 +09:00
Dan Balasescu
79fd2d46f6
Merge branch 'master' into test-efficiency 2021-09-07 16:14:12 +09:00
Dean Herbert
5b13b566b5 Reduce startup overhead during default key binding handling 2021-09-07 15:19:23 +09:00
Dean Herbert
2a5b857f10 Avoid loading unnecessary fonts in headless testing 2021-09-07 00:45:53 +09:00
Dean Herbert
ab1c64591f Move sample playback debounce time to central const 2021-09-05 13:25:10 +09:00
smoogipoo
f14d66aafc Commit missed line 2021-09-02 10:35:00 +09:00
Bartłomiej Dach
d9db1ecee9
Remove game-global popover container 2021-08-28 20:05:59 +02:00
Dean Herbert
46c72334fb Fix stack overflow in ruleset change rejection logic 2021-07-30 01:54:30 +09:00
Dean Herbert
046f30a268 Reject invalid global ruleset values 2021-07-26 16:34:38 +09:00
Dean Herbert
481e4dedb0 Move PopoverContainer to OsuGameBase 2021-07-13 16:51:31 +09:00
Dean Herbert
ec71deec51 Remove some mentions of "lazer"
I am aware there are more throughout the codebase but intentionally left
the remaining mentioned for one reason or another. The intention here is
to mainly change user-facing versioning to change the positioning of the
"lazer" term (to be where we would expect "cuttingedge" or "beta" to
be).
2021-07-04 12:41:27 +09:00
Dean Herbert
9acc5e38bb Add basic logging for osu! storage migration
When looking into the test failure at https://github.com/ppy/osu/runs/2940065457, it became apparent that we are not showing the migration process anywhere in logs. It's the cause of many issues, and we would want to see this in CI and user logs when occurring.
2021-06-29 20:23:25 +09:00
Dean Herbert
7dd566dc46
Add null check for safety
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-06-28 15:08:49 +09:00
Dean Herbert
57ae87956a Update execution state change blocking logic in line with framework changes 2021-06-25 15:27:40 +09:00
Dean Herbert
6922de12c6 Add extra null safety in dispose call 2021-06-24 17:17:12 +09:00
smoogipoo
c85edd2b55 Merge branch 'master' into fix-realm-state-change-crashes 2021-06-23 21:20:53 +09:00
Dean Herbert
d148656108 Update in line with framework event structural changes (and add unbind) 2021-06-23 18:08:34 +09:00
Dean Herbert
28f4c56cd6 Fix minor typo in comment 2021-06-23 16:30:28 +09:00
Dean Herbert
f03c2bab48 Update event name in line with framework changes 2021-06-22 22:45:13 +09:00
Dean Herbert
a4b66bec2e Ensure realm contexts are flushed when update thread changes native thread 2021-06-22 18:18:25 +09:00
Dean Herbert
3f336d88ec
Merge pull request #11461 from peppy/realm-key-binding-store
Add initial realm database implementation with KeyBindingStore migration
2021-06-19 02:49:41 +09:00
smoogipoo
5cf2ac78fc Adjust font namespaces 2021-06-18 15:40:35 +09:00
Gagah Pangeran Rosfatiputra
4b926791b5
add inter font 2021-06-16 21:13:01 +07:00
Dean Herbert
9044a20120 Merge branch 'master' into realm-key-binding-store 2021-06-10 13:58:08 +09:00
Dean Herbert
071c07586a Increase music volume back to 80% for the time being 2021-06-04 15:00:53 +09:00
Dean Herbert
b16d10bd95 Provide game-wide resources via IStorageResourceProvider 2021-05-31 18:57:47 +09:00
smoogipoo
a4dca6f839 Reorder methods around load() 2021-05-31 13:39:18 +09:00
Dean Herbert
ce96c58230 Move public members up 2021-05-28 02:46:26 +09:00
Dean Herbert
fe6b1936cb Move OsuUserInputManager out from nested class 2021-05-28 02:46:03 +09:00
Dean Herbert
b4c13d837d Move import logic out to partial class 2021-05-28 02:44:44 +09:00
Dean Herbert
b8edca59eb General function reorganisation 2021-05-28 02:37:14 +09:00
Dean Herbert
4e49fbf7fb Switch protected properties to private where feasible 2021-05-28 02:30:31 +09:00
Dean Herbert
d24a712dd4 Move protected properties to one location and mark setters private where feasible 2021-05-28 02:27:06 +09:00
Dean Herbert
df703b68ec Merge branch 'master' into realm-key-binding-store 2021-05-25 13:41:48 +09:00
smoogipoo
a74405d0ed Merge branch 'master' into restructure-spectator-client 2021-05-20 18:53:42 +09:00
smoogipoo
df80531a0a Split online connectivity into OnlineSpectatorClient 2021-05-20 16:30:56 +09:00
smoogipoo
6beeb7f7c4 Rename SpectatorStreamingClient -> SpectatorClient 2021-05-20 15:55:07 +09:00
smoogipoo
d197a7f6f5 Rename multiplayer client classes 2021-05-20 15:39:45 +09:00
Dean Herbert
9770c316e2 Add back the construction of the KeyBindingStore
This reverts commit 21b6adbf79.
2021-04-26 18:26:57 +09:00
Dean Herbert
21b6adbf79 Remove DI caching of RealmKeyBindingStore 2021-04-26 17:52:17 +09:00
Dean Herbert
8961203f08 Move guid initialisation to database model itself 2021-04-26 17:06:03 +09:00
Dean Herbert
78f274d51a Merge branch 'master' into realm-key-binding-store 2021-04-22 12:13:23 +09:00
Dean Herbert
dbb8f7f4a9 Tidy up initialisation code and avoid using DI on inherited class 2021-04-19 11:30:55 +09:00
Dean Herbert
5b06a68b93
Merge pull request #12330 from Cublibre/master
Send a warning notification if device is unplugged and at low battery
2021-04-15 19:21:04 +09:00
Dean Herbert
4852630c93 Fix import multiple file types via drag potentially reaching the wrong importer 2021-04-13 14:03:42 +09:00
Christine Chen
43b97fe0ad Refactor PowerStatus (now called BatteryInfo) 2021-04-12 10:52:52 -04:00
Salman Ahmed
419fd4470c Reorder method declaration 2021-04-11 15:19:51 -04:00
Salman Ahmed
2b947a44da Cache power status at base instead 2021-04-11 13:18:25 -04:00
Salman Ahmed
1fd4cb8963
Merge branch 'master' into master 2021-04-11 10:19:16 +03:00
Christine Chen
08311abc5e Remove setters, cache CreatePowerStatus() and use a dummy LocalPowerStatus class in test scene 2021-04-10 00:00:21 -04:00
Christine Chen
493c095535 Fixed code style 2021-04-08 20:28:23 -04:00
Christine Chen
6bccb3aab6 Use DI to implement battery detection, add BatteryCutoff property
- Removed the Xamarin.Essentials package from osu.Game and added it to osu.iOS and osu.Android only.
- iOS and Android implementations use Xamarin.Essentials.Battery, while the Desktop implementation
only returns 100% battery for now.
- Added a BatteryCutoff property to PowerStatus so it can be different for each platform (default 20%, 25% on iOS)
2021-04-08 19:55:11 -04:00
Dean Herbert
8aff53172d Remove necessity for nested PassThroughInputManger 2021-04-08 15:18:31 +09:00
Dean Herbert
e7f47c635f Fix gameplay mouse cursor being overridden by menu cursor
Closes https://github.com/ppy/osu/issues/12313.
2021-04-07 19:00:05 +09:00
Dean Herbert
38e95a0e73 Merge branch 'master' into fix-overzealousmouse-button-blocking 2021-04-05 22:07:41 +09:00
Dean Herbert
30cae46cbd Group large drag drop imports into a single operation 2021-03-31 14:57:28 +09:00
Dean Herbert
05961e98d5 Ensure GlobalActions are handled before anything else game-wide 2021-03-30 19:03:15 +09:00
Dean Herbert
03592fa696 Merge branch 'master' into realm-migration-operation-blocking 2021-03-19 21:33:26 +09:00
Dean Herbert
b1cd01ceb8 Apply ConfigureAwait changes to game side 2021-03-08 14:36:35 +09:00
Dean Herbert
172e2e9b3f Fix audio previews not being adjusted in volume correctly 2021-02-17 20:51:17 +09:00
Dean Herbert
55d5d8d5be Send version hash on hub connection 2021-02-15 16:51:40 +09:00
Dean Herbert
33c9ecac8a Fix MessageFormatter not working for custom endpoints 2021-02-12 14:54:19 +09:00
Dean Herbert
df7aaa5c81 Move implementation to OsuGameBase to ensure it applies to test scenes
This also removed a previous attempt at the same thing, which happened
to not be applying due to the reference to the applied bindable not
being held. Whoops.
2021-02-11 15:02:36 +09:00
Dean Herbert
52f0f3f3b2 Add a note about SelectedMods behavioural quirks 2021-02-10 14:38:15 +09:00
Dean Herbert
d69a4914e0 Add method to block all realm access during migration operation 2021-01-22 17:28:47 +09:00
Dean Herbert
34a7ce912e Correctly close context before attempting migration 2021-01-21 19:02:09 +09:00
Dean Herbert
259f6504fb Merge branch 'master' into realm-key-binding-store 2021-01-21 15:45:59 +09:00
Dean Herbert
68f2e7f61a Use realm support for Guid 2021-01-19 18:22:36 +09:00
Dean Herbert
f1a785f407 Merge branch 'master' into realm-key-binding-store 2021-01-19 18:22:34 +09:00
Dean Herbert
0b165dce4b Fix multiplayer mod select showing autoplay as a choice 2021-01-18 17:50:32 +09:00
Bartłomiej Dach
dee46d7ba2 Use GroupBy() instead 2021-01-16 23:42:28 +01:00
Bartłomiej Dach
bb0d289993 Split variable for readability 2021-01-16 23:24:28 +01:00
Bartłomiej Dach
1d7be6a604 Merge branch 'master' into android-multiple-import-support-suppot 2021-01-16 23:13:11 +01:00
Dean Herbert
2988700bea
Merge branch 'master' into realm-key-binding-store 2021-01-14 16:37:09 +09:00
Dean Herbert
8a08d3f4ef Fix transactions not actually being committed 2021-01-14 16:13:10 +09:00
Dean Herbert
fcb4a53f37 Rename realm persisted properties to avoid casting necessity 2021-01-13 18:36:37 +09:00
Dean Herbert
542f535247 Pull out thread local contexts and have main realm refresh in update loop 2021-01-13 18:36:37 +09:00
Dean Herbert
a6997a6fc6 Move ruleset key binding registration to an explicit method rather than the constructor 2021-01-12 15:21:02 +09:00
Dean Herbert
536e7229d0 Remove unused EF class and unnecessary interface 2021-01-12 14:45:36 +09:00
Dean Herbert
6736db327a Remove scheduler being passed in for now 2021-01-12 14:45:36 +09:00
Dean Herbert
f9717e8b69 Don't migrate existing key bindings across if realm is already populated 2021-01-11 16:31:36 +09:00
Dean Herbert
1abed11fb7 Add basic migration logic of key bindings to realm 2021-01-11 16:31:36 +09:00
Dean Herbert
43f417b53a Add and consume IKeyBindingStore interface 2021-01-11 15:52:49 +09:00
Dean Herbert
a9a3a95991 Replace KeybindingStore with realm version 2021-01-11 15:52:49 +09:00
Dean Herbert
d5ac97ece8 Add realm store / key binding implementations 2021-01-11 15:52:49 +09:00
Dean Herbert
9cfede2e7e Setup context, write usage, wrapper classes 2021-01-11 15:52:49 +09:00
Lucas A
7ae4979882 Fix merge conflicts. 2020-12-27 13:52:45 +01:00
Shivam
a933483848 Merge branch 'master' into tourney-switching-ui 2020-12-26 15:45:29 +01:00
Shivam
9e15dccc56 Move graceful exit to OsuGameBase 2020-12-26 15:36:21 +01:00
Dean Herbert
5d4b73baa5 RealtimeMultiplayer -> Multiplayer 2020-12-25 14:10:59 +09:00
Dean Herbert
eb795a2127 Move all endpoint information to a configuration class 2020-12-24 17:58:38 +09:00
Lucas A
6a80e1303d LINQ-ify Import() logic and ignore case of file extensions. 2020-12-23 12:56:04 +01:00
smoogipoo
959959dbed Add multiplayer client to OsuGameBase 2020-12-21 00:21:41 +09:00
Lucas A
f1aefcdf86 Handle multiple extensions in the import files. 2020-12-20 10:57:47 +01:00
Lucas A
cc0442a9a1 Fix CI inspections. 2020-12-16 20:42:30 +01:00
Lucas A
5d7294451f Refactor Import() overload to take a list of import tasks instead. 2020-12-16 14:28:16 +01:00
Lucas A
aa7d22460d Override Import() instead. 2020-12-08 19:46:55 +01:00
Lucas A
005fa3a7ee Add ability to import files from a stream. 2020-12-01 20:28:15 +01:00
Dean Herbert
709370c69b Move schedule call outwards 2020-11-16 16:49:31 +09:00
Dean Herbert
9a7fdb2b7e Move skin deletion logic to OsuGameBase to promote thread safety
`CurrentSkinInfo` is used in multiple places expecting thread safety,
while ItemRemoved events are explicitly mentioning they are not thread
safe. As SkinManager itself doesn't have the ability to schedule to the
update thread, I've just moved the logic to `OsuGameBase`. We may want
to move the current skin bindable out of the manager class in the
future to match things like `BeatmapManager`.

Closes https://github.com/ppy/osu/issues/10837.
2020-11-16 16:43:19 +09:00
Dean Herbert
c97c6bbf52 Add and consume user cache class 2020-11-06 17:00:29 +09:00
Dean Herbert
14bb079feb Rename ScorePerformanceManager to ScorePerformanceCache 2020-11-06 13:15:33 +09:00
Dean Herbert
5113d4af8f Rename BeatmapDifficultyManager to BeatmapDifficultyCache 2020-11-06 13:14:29 +09:00
Dean Herbert
fb105a1e9c Remove unnecessary field storage 2020-11-02 14:49:25 +09:00
Dean Herbert
73b290aca3 Merge branch 'master' into results-dynamic-pp-calc 2020-11-02 14:47:33 +09:00
Dean Herbert
175fd512b0 Send frames to streaming client from replay recorder 2020-10-22 17:48:15 +09:00
Dean Herbert
93db75bd41 Begin shaping the spectator streaming component 2020-10-22 17:48:15 +09:00
Bartłomiej Dach
ba818e3ae0
Merge branch 'master' into results-dynamic-pp-calc 2020-10-19 21:41:07 +02:00
Dean Herbert
28eae5d26b Fix migration test failures due to finalizer disposal of LocalConfigManager 2020-10-19 19:03:22 +09:00
Dean Herbert
1989141968
Merge branch 'master' into tourney-asset-refactor 2020-10-07 21:34:07 +09:00
Lucas A
7f5cf04b2b Fix merge conflicts. 2020-10-07 13:28:49 +02:00
Dean Herbert
faeb9910e5 Revert "Exit import process after first handler is run"
This reverts commit 4139301afa.
2020-10-02 17:06:55 +09:00
Dean Herbert
4139301afa Exit import process after first handler is run 2020-10-02 16:52:45 +09:00