Commit Graph

1134 Commits

Author SHA1 Message Date
Dean Herbert 8c8c5f4c33 Fix skin hash repopulation not working since realm migration 2022-01-12 18:32:51 +09:00
Dean Herbert 3cd996eb4a Merge branch 'master' into async-deadlock-safety 2022-01-07 17:28:59 +09:00
Dean Herbert 00177a3ae1 Update usages to new naming 2022-01-06 22:54:43 +09:00
Dean Herbert 243a1a3cf7 Fix incorrect origin specification for `SkinSelectionHandler` flips 2022-01-06 14:47:44 +09:00
Dean Herbert 866ae3472b Add global flip hotkeys 2022-01-05 16:48:07 +09:00
Dean Herbert 73b40e6833 Replace usage of `.Result` with `.WaitSafelyForResult` 2022-01-04 11:51:41 +09:00
Dean Herbert 089b756f93 Invert logic to make reading easier 2021-12-30 16:03:16 +09:00
Dean Herbert ef49f2ed0e Add extra extra safety against attempting to load a previously expired editor 2021-12-30 16:02:31 +09:00
Dean Herbert b1a444180f Fix `Show` then `Reset` potentially resulting in incorrect load target 2021-12-29 21:46:34 +09:00
Dean Herbert 471eea750a Fix calling `SkinEditorOverlay.Show` before the overlay is loaded causing an exception
As seen at https://github.com/ppy/osu/runs/4652969942?check_suite_focus=true.
2021-12-29 21:18:17 +09:00
Bartłomiej Dach 724b601d2a
Rename `AllowSampleLookup` argument to something saner 2021-12-26 14:29:07 +01:00
Bartłomiej Dach dc21c8901e
Always allow looking up storyboard samples from beatmap skin 2021-12-26 14:25:28 +01:00
Dean Herbert 9d85beddbe Fix null reference in some tests due to missing realm context factory 2021-12-15 11:16:37 +09:00
Dean Herbert 441b7baa93 Provide a realm factory to usages of `ToLive`/`RealmLive` 2021-12-14 14:26:34 +09:00
Dean Herbert 8d9c37a825 Merge branch 'master' into primary-key-consistency 2021-12-08 21:34:38 +09:00
Dan Balasescu 7ef960839b
Merge pull request #15898 from peppy/skin-export-instntiation-info
Serialise and deserialise `SkinInfo.InstantiationInfo` to allow for more correct imports
2021-12-06 22:08:20 +09:00
Dean Herbert 07abcf04b4
Merge branch 'master' into realm-integration/skins-filename-lookup-performance 2021-12-06 17:13:33 +09:00
Dean Herbert 68b482fc48
Merge branch 'master' into skin-export-instntiation-info 2021-12-06 17:12:42 +09:00
Dean Herbert 452fa93444 Merge branch 'master' into realm-integration/skins-rebase 2021-12-06 15:21:02 +09:00
Dean Herbert 1eed2436e6 Clean up unused resolved properties 2021-12-03 18:49:49 +09:00
Dean Herbert e4b296e16e Use `OptIn` serialisation on `SkinInfo` to avoid writing unnecessary information 2021-12-03 16:36:27 +09:00
Dean Herbert cdf2fa9930 Serialise and deserialise `SkinInfo.InstantiationInfo` to allow for more correct imports
Until now, skins were always imported using the `LegacySkin`
instantiation type. For cases where a user has edited the lazer or
classic default (via the new skin editor), which would result in
incorrect fallback paths after exporting and importing the edited skin.
2021-12-02 18:05:16 +09:00
Dean Herbert 0e82e9355b Ensure skin is saved immediately after becoming mutable
Without doing this, the JSON content is not written to the file. A user
assumption is that as soon as a skin shows up in the skin list as
exportable, it should export correctly, so it makes sense that it should
be in a sane state even if the user has not made any changes in the skin
editor yet.

Going forward, we might move more of the json serialisation logic out,
and run for consistency as part of the import process. This seems like
the simplest way to guarantee things for now, though.
2021-12-02 17:42:17 +09:00
Dean Herbert fe99d4e984 Standardise parameter naming across all file IO methods 2021-12-02 17:19:53 +09:00
Dean Herbert 505608ab12 Merge branch 'realm-integration/skins-rebase' into realm-integration/skins-filename-lookup-performance 2021-12-02 14:01:39 +09:00
Dean Herbert 0a14acfd83 Fix incorrect conditional on export/mutate feasability of skin 2021-12-02 13:41:58 +09:00
Dean Herbert 4f826589e5 Remove subscription logic for the time being 2021-12-02 12:20:07 +09:00
Dean Herbert 1cf1543866 Fix test failures due to attempting to subscribe to non-managed instances 2021-12-01 13:50:19 +09:00
Dean Herbert 9411b42d0a Cache skin filename to path mapping to reduce realm lookups during gameplay skin changes 2021-12-01 02:27:41 +09:00
Dean Herbert 0efd565c8b Remove forgotten using statement 2021-11-30 15:41:07 +09:00
Dean Herbert 6bf9327228 Add linking property on `SkinFileInfo` to allow EF to understand the link post-rename 2021-11-30 15:17:16 +09:00
Dean Herbert 0d18c83d75 Simplify deletion by adding always present conditionals to `Delete` method 2021-11-29 18:28:25 +09:00
Dean Herbert f6a3709060 Store default skins to database 2021-11-29 18:28:25 +09:00
Dean Herbert c629a7a36f Fix random selection and avoid using legacy events for handling skin import/deletion 2021-11-29 18:28:25 +09:00
Dean Herbert 29d074bdb8 Implement missing behaviours required for skin file operations via `RealmArchiveModelManager` 2021-11-29 18:28:25 +09:00
Dean Herbert e2d9a685d7 Update skin implementations to match new structures 2021-11-29 18:28:25 +09:00
Dean Herbert 6b55de2845 Use `ILive` for `Skin.SkinInfo` 2021-11-29 18:28:25 +09:00
Dean Herbert 23146d59d1 Use `ILive` for current skin 2021-11-29 18:28:25 +09:00
Dean Herbert 2a9c7c00c8 Update tests and file access code 2021-11-29 18:28:25 +09:00
Dean Herbert 3db5646fa8 Create Guid constants for system skins (and store skin choice to configuration as guid) 2021-11-29 18:28:25 +09:00
Dean Herbert e283379f0e Replace EF `SkinInfo` with realm implementation 2021-11-29 18:28:25 +09:00
Dean Herbert 0a961fd9d8 Replace usages of `IHasFiles` with `IHasRealmFiles` 2021-11-29 18:28:25 +09:00
Dean Herbert 94b10492be Update legacy `SkinManager` to match new interface 2021-11-29 18:20:07 +09:00
Dean Herbert cc1b91e4bd Split out legacy model export logic into `LegacyModelExporter` classes 2021-11-25 16:41:12 +09:00
Dean Herbert 7488ccd5fe Update all models to implement `IHasNamedFiles` 2021-11-25 16:41:12 +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
Dan Balasescu 016684b52d Remove unreachable code 2021-11-24 20:29:47 +09:00
Dean Herbert 99a139dc98 Initialise all file lists at construction time (and remove setter) 2021-11-24 13:56:21 +09:00
Dean Herbert 83b4625bd5 Replace existing cases with new helper method 2021-11-19 22:15:41 +09:00