1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-12 09:37:24 +08:00
Commit Graph

1653 Commits

Author SHA1 Message Date
Bartłomiej Dach
c9cb0561f7
Move maxSizePerGlyph optional ctor param to init-only property
I'm doing this as I'm about to add more similar properties to
`LegacySpriteText` and I don't want to create a twenty-argument
constructor monstrosity.
2023-10-27 19:48:10 +02:00
Dean Herbert
5a9d4170e8
Merge pull request #24794 from bdach/score-encoding-cleanup
Correctly handle multiple online score ID types
2023-10-28 02:29:56 +09:00
Bartłomiej Dach
5ad962070c
Fix skin editor freezing game if opened during active gameplay 2023-10-27 14:34:30 +02:00
Dean Herbert
f931f4c324
Remove reundant interface specification 2023-10-27 18:19:44 +09:00
Salman Ahmed
07e7d533bf Bake external scale factors into glyph scale 2023-10-26 10:01:27 +03:00
Salman Ahmed
e119e045e4 Update "Argon" skin components layout and use the new components 2023-10-26 09:13:09 +03:00
Dean Herbert
23ea128f30
Merge branch 'master' into velocity-based-ball-animation 2023-10-25 14:01:19 +09:00
Salman Ahmed
8ed660d863 Remove incorrect logic 2023-10-23 01:58:25 +03:00
Salman Ahmed
12bb4b697c Support retrieving textures in argon skin from game resources 2023-10-23 01:24:32 +03:00
Salman Ahmed
491f119988 Add animation support for legacy osu!mania column lights 2023-10-21 00:22:34 +03:00
Salman Ahmed
ac8c2a173b Apply velocity into legacy slider ball animation rate 2023-10-20 22:47:45 +03:00
Bartłomiej Dach
b321d556b6
Enforce minimum gameplay sample volume of 5% 2023-10-20 15:50:13 +02:00
Dean Herbert
682aa06acf
Remove JudgementResult from Miss/Flash as it is not used 2023-10-10 22:10:44 +09:00
Dean Herbert
7c7771afca
Merge pull request #24986 from peppy/health-animates-in-intro
Add initial animation for health bars
2023-10-07 10:31:34 +09:00
Bartłomiej Dach
cfcdbe1c30
Merge pull request #25028 from peppy/bindable-fixes
Fix some incorrect bindable-related code
2023-10-06 22:31:30 +02:00
Dean Herbert
1a60e6d76e
Merge branch 'master' into health-animates-in-intro 2023-10-07 00:32:19 +09:00
Dean Herbert
3f2a00d90d
Add argon health display to default skin layout 2023-10-06 19:34:27 +09:00
Dean Herbert
f2e56bbb65
Fix publicly-settable bindables 2023-10-06 16:51:24 +09:00
Bartłomiej Dach
bd71403309
Merge branch 'master' into health-animates-in-intro 2023-10-04 13:53:42 +02:00
Dean Herbert
82ba545358 Add initial animation for health bars 2023-10-02 17:01:58 +09:00
Salman Ahmed
314ecec65b Refactor player max dimensions test scene to actually upscale textures 2023-09-30 01:34:49 +03:00
Salman Ahmed
0bcb99f2c4 Crop oversized gameplay textures instead of downscaling them 2023-09-30 01:34:47 +03:00
Bartłomiej Dach
0b9d01075a
Merge branch 'master' into fix-missing-skin-ini-version 2023-09-27 19:33:43 +02:00
Bartłomiej Dach
edf40cc091
Fix nullability inspection 2023-09-27 17:09:42 +02:00
Dean Herbert
2481c0b64b Don't show replay import "missing beatmap" notifications during stable import
Closes https://github.com/ppy/osu/issues/24926.
2023-09-27 17:04:43 +09:00
Dean Herbert
c44cca2c23 Fix skin version being incorrectly set to 1.0 when skin is missing skin.ini
Closes https://github.com/ppy/osu/issues/24939.
2023-09-27 16:50:03 +09:00
Dean Herbert
990c54519b
Merge branch 'master' into limit-gameplay-sprite-dimensions 2023-09-26 16:40:32 +09:00
Dean Herbert
bd66285bd4 Rename parameter on LegacySpriteText to better imply the maximum size is per glyph 2023-09-20 12:59:40 +09:00
Salman Ahmed
922f6f36f2 Add size limitation for hit object numbers 2023-09-19 04:38:10 +03:00
Salman Ahmed
b823507b2a Add size limitation for approach circles 2023-09-19 04:38:10 +03:00
Salman Ahmed
291a91be66 Change extension from retrieval to post-processing instead 2023-09-19 03:40:30 +03:00
Salman Ahmed
57dc76b345 Revert "Update GetTexture signature rather than creating new overload"
This reverts commit 96f12cfbaa.
2023-09-19 03:21:19 +03:00
Bartłomiej Dach
ce4b523950
Merge branch 'master' into fix-mania-skin-lookups-no-sprites 2023-09-06 19:29:13 +02:00
Bartłomiej Dach
fe3683ed5b
Adjust formatting slightly
The uneven spacing was bothering me...
2023-09-06 18:41:27 +02:00
Bartłomiej Dach
f9db0fad88
Ignore unused thing inspection harder 2023-09-06 18:37:17 +02:00
Dean Herbert
dce6adb895
Add text explanation of icons
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-09-07 01:23:56 +09:00
Dean Herbert
88b9d3237a Fix osu!mania legacy skin configurations not working when notes are not skinned 2023-09-06 18:03:54 +09:00
Dean Herbert
14936677fc Ignore unused thing inspection 2023-09-06 18:03:40 +09:00
Dean Herbert
6c95b88589 Add debug output for skin configuration lookups
We've struggle with debugging these over the years so I think this was
worth a couple of hours of work.

Example of osu! lookups:

```log
[runtime] 2023-09-06 08:38:30 [verbose]: BeatmapSkinProvidingContainer.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacyBeatmapSkin{ Name: Vickeblanka - Lucky Ending (TV Size) (tears_) [Normal] } } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-RulesetSkinProvidingContainer.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-|-LegacySkin{ Name: Test Skin [test-skin] }.GetConfig(lookup: SpinnerFrequencyModulate) 🟢
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-|-DefaultLegacySkin{ Name: osu! "classic" (2013) }.GetConfig(lookup: SpinnerFrequencyModulate) 🟢
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: osu.Game.Skinning.ResourceStoreBackedSkin }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-osu.Game.Skinning.ResourceStoreBackedSkin.GetConfig(lookup: SpinnerFrequencyModulate) 🔴
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: TrianglesSkin{ Name: osu! "triangles" (2017) } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-TrianglesSkin{ Name: osu! "triangles" (2017) }.GetConfig(lookup: SpinnerFrequencyModulate) 🔴
[runtime] 2023-09-06 08:38:30 [verbose]:
[runtime] 2023-09-06 08:38:30 [verbose]: BeatmapSkinProvidingContainer.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacyBeatmapSkin{ Name: Vickeblanka - Lucky Ending (TV Size) (tears_) [Normal] } } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-RulesetSkinProvidingContainer.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-|-LegacySkin{ Name: Test Skin [test-skin] }.GetConfig(lookup: ScorePrefix) 🟢
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-|-DefaultLegacySkin{ Name: osu! "classic" (2013) }.GetConfig(lookup: ScorePrefix) 🟢
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: osu.Game.Skinning.ResourceStoreBackedSkin }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-osu.Game.Skinning.ResourceStoreBackedSkin.GetConfig(lookup: ScorePrefix) 🔴
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: TrianglesSkin{ Name: osu! "triangles" (2017) } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-TrianglesSkin{ Name: osu! "triangles" (2017) }.GetConfig(lookup: ScorePrefix) 🔴
```

Example of osu!mania lookups:

```log
[runtime] 2023-09-06 08:28:34 [verbose]: |-RulesetSkinProvidingContainer.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnWidth col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnWidth col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnWidth col:0 totalcols:4])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-|-LegacySkin{ Name: Test Skin [test-skin] }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnWidth col:0 totalcols:4]) 🔴
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnWidth col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnWidth col:0 totalcols:4])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-|-DefaultLegacySkin{ Name: osu! "classic" (2013) }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnWidth col:0 totalcols:4]) 🟢
[runtime] 2023-09-06 08:28:34 [verbose]:
[runtime] 2023-09-06 08:28:34 [verbose]: BeatmapSkinProvidingContainer.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacyBeatmapSkin{ Name: antiPLUR - Runengon (Raveille) [Easy] } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-RulesetSkinProvidingContainer.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnSpacing col:0 totalcols:4])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-|-LegacySkin{ Name: Test Skin [test-skin] }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnSpacing col:0 totalcols:4]) 🔴
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnSpacing col:0 totalcols:4])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-|-DefaultLegacySkin{ Name: osu! "classic" (2013) }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnSpacing col:0 totalcols:4]) 🟢
[runtime] 2023-09-06 08:28:34 [verbose]:

```
2023-09-06 18:03:40 +09:00
Dean Herbert
96f12cfbaa Update GetTexture signature rather than creating new overload 2023-09-05 18:01:19 +09:00
Salman Ahmed
6674c70280 Add support for limiting skin texture/animation dimensions 2023-09-03 02:21:47 +03:00
Dean Herbert
49fc9655d2 Apply NRT to osu.Game.Betamaps.Formats namespace 2023-08-16 19:37:24 +09:00
Dean Herbert
6cf065f6d1 Add playfield layer to skin editor 2023-07-28 15:50:44 +09:00
Bartłomiej Dach
3b9f250c1b
Merge branch 'master' into menu-star-fountains 2023-07-25 21:58:13 +02:00
Dean Herbert
43107f8cf0 Fix skin mapping not working for menu fountains 2023-07-25 17:46:05 +09:00
Dean Herbert
d23c73a2f1
Adjust with better numbers based off 1920x1080 resolution
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-07-21 17:25:38 +09:00
Dean Herbert
61ff3d08d4 Change depth of LegacySongProgress to allow "skinning" via health bar background 2023-07-19 17:48:19 +09:00
Dean Herbert
e283845b71 Adjust legacy skin elements to better align with skinning expectations 2023-07-19 17:45:07 +09:00
Dean Herbert
8f826a3702 Add skinning support for kiai fountain stars 2023-07-13 22:57:04 +09:00
Bartłomiej Dach
055e4a78f0
Merge branch 'master' into taiko-hitsounding-final-attempt 2023-07-08 18:10:04 +02:00
Dean Herbert
a98a36872e Bring realm library up-to-date 2023-07-06 13:37:43 +09:00
Dean Herbert
759cd5aec7 Warm up pool with argon-specific drum samples 2023-07-05 18:44:27 +09:00
Dean Herbert
3a2dd0e7dd Move argon key counter to right to match stable expectations 2023-06-26 16:22:38 +09:00
Dean Herbert
52fdeeb491 Improve positioning and positioning code clarity for argon / triangles implementations 2023-06-26 16:20:51 +09:00
Dean Herbert
ba7f472247 Split padding out into constant to fix weird looking math 2023-06-26 16:05:57 +09:00
tsrk
350d722c8d
Merge branch 'master' into hud/kc-skinnable 2023-06-25 15:42:08 +02:00
Dean Herbert
0ab0c52ad5 Automated pass 2023-06-24 01:00:03 +09:00
tsrk
9d688733ac
fix: correct key counter position in Triangles and Legacy skins 2023-06-15 14:37:38 +02:00
tsrk
2f40f5bd19
fix: change key counter position in Triangles and Legacy skins 2023-06-15 12:01:38 +02:00
tsrk
081190802e
revert: remove attachment logic from SkinComponentContainer
This is no longer in the scope of the PR.
2023-06-14 21:19:08 +02:00
tsrk
e26aeea589
feat: make KeyCounterDisplay skinnable 2023-06-14 21:15:12 +02:00
tsrk
6fc6729677
feat: integrate attachment flow in SkinComponentsContainer 2023-06-06 00:27:43 +02:00
Dan Balasescu
d2380bd840 Remove usages of [ExcludeFromDynamicCompile] 2023-05-08 18:12:56 +09:00
cdwcgt
4549a865d9
Merge branch 'master' into export 2023-05-04 00:18:01 +09:00
Dean Herbert
37a5dde859 Fix BeatmapAttributeText not supporting unicode artist/title 2023-05-02 13:47:49 +09:00
cdwcgt
ce6a87b4a3
Merge remote-tracking branch 'upstream/master' into export 2023-04-09 15:02:47 +09:00
cdwcgt
de21b4a2f7
use Live<TModel>
Use RealmAccess only when needed
2023-04-09 22:21:15 +09:00
Bartłomiej Dach
ba753a8aac
Merge branch 'master' into update-skinnable-sound-before-playing 2023-04-05 22:56:25 +02:00
Terochi
e6f1ec57a9 Bring back and make use of clearPreviousSamples() 2023-03-23 18:46:48 +01:00
Terochi
1478a26cc0 Addressed changes 2023-03-21 23:15:49 +01:00
Dean Herbert
8e6a4559e3 Add xmldoc for new method and reorder methods in SkinReloadableDrawable 2023-03-16 15:58:42 +09:00
Dean Herbert
297e7d6542 Fix Flush call being run too late in PoolableSkinnableSample 2023-03-16 15:33:30 +09:00
Terochi
edc6314634 Drank some coffee and figured out the fix 2023-03-15 10:49:59 +01:00
Terochi
b0f1a69523 Update the pauseLoop sample instantly on skin change 2023-03-15 09:05:34 +01:00
Terochi
a9c349fa6d Cache any skin changes in SkinReloadableDrawable to ScheduledDelegate 2023-03-15 09:03:29 +01:00
Terochi
390ad335d0 Reloading samples before playing then when skin change occurs 2023-03-14 21:35:52 +01:00
rozukke
1f7721786b Perform check to account for non-ASCII characters 2023-03-13 22:01:26 +11:00
Dean Herbert
16c8a392a1 Add ability to send selected skin components to front or back 2023-02-22 18:17:20 +09:00
Bartłomiej Dach
6799492596
Merge branch 'master' into skin-editor-layer-select 2023-02-20 21:33:48 +01:00
Bartłomiej Dach
86a7f4dfd0
Do not serialise SkinLayoutInfo.AllDrawables
- It is entirely derived from `SkinLayoutInfo.DrawableInfo`, which is
  the actual primary thing we want to serialise.
- It will never get read out from any serialised files anyway (corollary
  of the previous point - it is a get-only property derived from another).
- It is only used in tests.

All of the three reasons above make serialising the property out to skin
files nothing more than a waste of space.
2023-02-20 20:37:48 +01:00
Bartłomiej Dach
43724472c4
Clarify comment to avoid playing pronoun game 2023-02-20 20:09:24 +01:00
Dean Herbert
ec12186d63 Remove unnecesasry null check on content 2023-02-20 19:53:04 +09:00
Dean Herbert
18700b4daa Add note about skin migrations being on read and remove an older deprecation notice 2023-02-20 19:51:54 +09:00
Dean Herbert
1629c86b5d
Mark constant identifier as non-localisable
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-02-20 19:48:39 +09:00
Dean Herbert
0ddda018fd
Add xmldoc for SkinComponentsContainerLookup.Ruleset
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-02-20 19:48:18 +09:00
Dean Herbert
5f7a6d13c3 Remove unused GetSerialisableIdentifier for now 2023-02-20 19:47:17 +09:00
Bartłomiej Dach
6b9472c367
Merge branch 'master' into skin-per-ruleset-layouts 2023-02-17 22:58:38 +01:00
Salman Ahmed
449e5fa6f8 Rename one more left-over skinnable naming 2023-02-17 22:09:55 +03:00
cdwcgt
e84e011d5d Merge branch 'master' into export 2023-02-17 22:15:19 +09:00
Dean Herbert
c03b6cec23 Add IEquatable and ToString support to SkinComponentsContainerLookup 2023-02-17 19:27:16 +09:00
Dean Herbert
209d41ee9d Use RulesetInfo instead of Ruleset in skin components lookup 2023-02-17 18:24:05 +09:00
Dean Herbert
675e5b81f3 Fix SkinnableLighting showing up as a user placeable component 2023-02-17 18:24:05 +09:00
Dean Herbert
2267aa1ac2 Add ability to retrieve serialisable drawables for specific rulesets 2023-02-17 18:24:05 +09:00
Dean Herbert
ffb99364b9 Ensure skin default component layouts only apply to global layout for now 2023-02-17 18:24:05 +09:00
Dean Herbert
9793774377 Update SkinDeserialisationTest to work with new serialisation structure 2023-02-17 16:22:48 +09:00
Dean Herbert
6b3652f567 Change serialisation format of skin layouts to allow more flexibility
Also adds per-ruleset storage for each container type.
2023-02-17 14:19:19 +09:00
Dean Herbert
9685fb2114 Always return a non-null container for SkinComponentsContainerLookups 2023-02-17 14:19:19 +09:00
Dean Herbert
4cc6664dc7 Add optional ruleset identifier to SkinComponentsContainerLookup 2023-02-17 14:19:19 +09:00
Dean Herbert
1a63ca9ece Add xmldoc around SkinComponentsContainerLookup 2023-02-17 14:18:05 +09:00
Dean Herbert
cb7df7282b Apply NRT to SerialisedDrawableInfo 2023-02-16 20:01:59 +09:00