Commit Graph

1307 Commits

Author SHA1 Message Date
6776c37bbc Merge pull request #17592 from peppy/skin-mutation-better-naming
Fix automatically created "(modified)" skins getting conflicting names
2022-04-01 21:25:10 +09:00
43d03f2825 Put ToArray call in correct place in brackets 2022-04-01 19:30:16 +09:00
01681ee874 Add missing ToArray call
Not sure where this went, was there in my original commit.
2022-04-01 16:19:02 +09:00
f0821ce1fc Import new skin editor sprites to the cursor location 2022-04-01 16:16:49 +09:00
6afed5e865 Fix new SettingsItem attribute not playing well with non-Drawables 2022-04-01 16:01:33 +09:00
bfd3406f5f Ensure that file is imported and caches are invalidated before placing new sprites 2022-04-01 16:01:33 +09:00
314ad63c6e Simplify available file lookup and include file extension 2022-04-01 16:01:33 +09:00
2b7105ac4f Add a default sprite representation to allow better placeholder display in skin editor toolbox 2022-04-01 16:01:33 +09:00
52eeaffce3 Limit lookup resources to images 2022-04-01 16:01:33 +09:00
d1be229d74 Combine SkinSprite into SkinnableSprite 2022-04-01 16:01:33 +09:00
762de3cc97 Replace invalidation logic with local realm notification subscription 2022-04-01 16:01:33 +09:00
9c3dad9fbf Add proof of concept flow to ensure RealmBackedResourceStore is invalidated on realm file changes
I'm not at all happy with this, but it does work so let's go with it for
now.
2022-04-01 16:01:33 +09:00
66f5eae530 Hook up a dropdown to show all available sprites for the current skin 2022-04-01 15:01:43 +09:00
fca9faac9b Add SkinnableSprite for arbitrary sprite additions 2022-04-01 14:36:36 +09:00
3a16483214 Add prioritised user lookups for default skin
This allows user resources to be consumed before falling back to the
game bundled assets.
2022-04-01 14:36:36 +09:00
01829cf2d8 Move SkinnableInfo error handling to lower level
Handling was recently added to handle the usage in
`Skin.GetDrawableCompoent`, but it turns out this is also required for
`DrawableExtensions.ApplySkinnableInfo` which can throw in a similar
fashion.

Found while working on sprite support for the editor, where this becomes
an actual issue (ie. switching to a branch where the new sprite support
is not present can cause unexpected crashes).
2022-04-01 14:30:04 +09:00
69d4f86122 Fix automatically created "(modified)" skins getting conflicting names
Applies the already tested and proven method that is used in the editor
to the mutable skin creation flow.
2022-04-01 14:11:55 +09:00
9621a7f9cb Merge branch 'master' into fix-autoplay-mod-user-id 2022-03-30 21:41:45 +02:00
ea9495eb74 Update all existing calls to extension method with correct fallback handling 2022-03-29 16:51:30 +09:00
b5834dabdb Fix skin editor not exiting correctly when using the menu
Closes https://github.com/ppy/osu/issues/17489.
2022-03-28 20:43:26 +09:00
6c172bac3c Merge pull request #17448 from peppy/fix-skin-component-crash-on-instantiation-failure
Avoid crashing if a skin component cannot be instantiated correctly
2022-03-25 19:41:52 +09:00
a0a3bba46e Avoid crashing if a skin component cannot be instantiated correctly 2022-03-25 18:31:26 +09:00
23c4f9910e Apply notnull constraint 2022-03-25 15:54:01 +09:00
2d8d177807 Merge branch 'master' into skin-nullable 2022-03-25 15:36:21 +09:00
e243a7c55d Reword storage param xmldoc to use stronger and better defined langauge 2022-03-24 12:45:11 +09:00
0cd29a73b9 Fix typo in xmldocs 2022-03-24 12:39:47 +09:00
a4d17a915f Fix incorrect HUD component fallback
Legacy skins should now always show the legacy hud components. The
conditional here is no longer valid as fallback lookups happen at a
*skin*-fallback level rather than internal *source*-fallback.

Put another way, `LegacyDefaultSkin` (with user customisations) should
still display the classic HUD components even if a font is not provided,
as that font will be available via the skin lookup hierarchy.

The TODO removed in this commit has been already resolved so this code
is no longer required.
2022-03-24 12:36:20 +09:00
7296bad294 Convert LegacyBeatmapSkin to use nullable 2022-03-24 00:24:06 +09:00
194bf4fb05 Convert LegacySkin to use nullable 2022-03-24 00:23:55 +09:00
3e020073c5 Convert Skin to use nullable 2022-03-24 00:23:55 +09:00
05c7e09d79 Make Textures and Samples read-only 2022-03-24 00:02:38 +09:00
6542f974f2 Merge branch 'master' into skin-fuck 2022-03-23 15:30:22 +09:00
078288a616 Make "skin.ini" the default skin filename and remove redundant parameters 2022-03-23 15:05:01 +09:00
7a1909bf97 Change parameter order of LegacySkin to put IStorageResourceProvider first
The optional resource store should not be before the (basically)
required resource provider.
2022-03-23 15:02:04 +09:00
d0ea1739b4 Remove skin configuration stream logic as it is no longer required 2022-03-23 14:57:42 +09:00
9d3c6ade62 Remove unnecessary skin reading hack in DefaultLegacySkin 2022-03-23 14:57:42 +09:00
6c405f1dee Remove storage override from LegacyBeatmapSkin 2022-03-23 14:57:42 +09:00
e56d13d8be Fix realm backed store not being initialised for some tests 2022-03-23 14:57:42 +09:00
00aea9bef0 Only use legacy resources lookup for protected (aka default) skin 2022-03-23 14:57:42 +09:00
3c38b14228 Documentation improvements 2022-03-23 14:57:42 +09:00
32e2cfb8ee Leave realm resource store construction to base class 2022-03-23 14:57:42 +09:00
e1236e07ad Fix extensions not being specified in time for realm file caching 2022-03-23 14:57:42 +09:00
a7f63fb034 Make providing a custom ResourceStore to LegacyBeatmapSkin optional (for tests only) 2022-03-23 14:57:42 +09:00
35d2f973a3 Prefer provided resource store over realm backed to keep tests working 2022-03-23 14:57:42 +09:00
b4d89b4e31 Replace duplicate LegacySkinResourceStore class with RealmBackedResourceStore 2022-03-23 14:57:42 +09:00
5c4a74378d Remove Textures and Samples initialisation to Skin 2022-03-23 14:57:42 +09:00
09ec49e6fa Rename realm-backed resource store in preparation for non-legacy usage 2022-03-22 18:31:18 +09:00
fb7f9a81db Remove unnecessary equality check in skin editor construction path 2022-03-22 14:35:13 +09:00
9a2691c1bc Remove unnecessary schedule 2022-03-21 23:54:47 +09:00
33acc5d720 Remove no longer valid comments 2022-03-21 14:06:53 +03:00