Commit Graph

69 Commits

Author SHA1 Message Date
2b59f76b2d Merge pull request #17596 from peppy/skin-editor-sprites
Allow importing sprites into a skin via drag-and-drop
2022-04-05 17:38:58 +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
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
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
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
078288a616 Make "skin.ini" the default skin filename and remove redundant parameters 2022-03-23 15:05:01 +09:00
d0ea1739b4 Remove skin configuration stream logic as it is no longer required 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
3c38b14228 Documentation improvements 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
35d2f973a3 Prefer provided resource store over realm backed to keep tests working 2022-03-23 14:57:42 +09:00
5c4a74378d Remove Textures and Samples initialisation to Skin 2022-03-23 14:57:42 +09:00
cd71ec0edd Remove ILive<> interface (and use abstract Live<> instead) 2022-01-26 13:38:56 +09:00
6eb2c28e41 Rename RealmContextFactory to RealmAccess 2022-01-24 20:38:07 +09:00
9d85beddbe Fix null reference in some tests due to missing realm context factory 2021-12-15 11:16:37 +09:00
441b7baa93 Provide a realm factory to usages of ToLive/RealmLive 2021-12-14 14:26:34 +09:00
6b55de2845 Use ILive for Skin.SkinInfo 2021-11-29 18:28:25 +09:00
2a9c7c00c8 Update tests and file access code 2021-11-29 18:28:25 +09:00
99a139dc98 Initialise all file lists at construction time (and remove setter) 2021-11-24 13:56:21 +09:00
59e763467f Move StoragePath implementation to an extension method 2021-11-19 16:08:38 +09:00
5bfb16efe2 Ignore case when searching for existing skin.ini 2021-11-01 14:24:38 +09:00
add39fbd4f Merge branch 'master' into fix-skin-layout-editor-crash 2021-10-28 06:24:24 +09:00
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
5303cae044 Add mention of stream close logic 2021-10-24 23:43:37 +09:00
93482414d6 Remove SkinConfiguration subclasses and allow configuration parsing for all skin types 2021-10-22 14:42:23 +09:00
adff418fd2 Guard against exception in skin deserialisation 2021-10-01 22:17:38 +09:00
69fc072429 Ignore skin component json data if deserialisation fails instead
Crashing was not really the best thing to do there given the preceding
code that already allowed a few continues in case of a missing file.
2021-05-15 01:08:11 +02:00
fa6b5515b7 Ignore possible null from JsonConvert.DeserializeObject()
Nothing better can be done if a `null` is indeed returned.
2021-05-15 00:09:34 +02:00
2f025f1967 SkinnableTargetWrapper -> SkinnableTargetComponentsContainer 2021-05-13 18:54:30 +09:00
3ea469813c Use interface in place of SkinnableTargetContainer 2021-05-13 17:25:51 +09:00
106fa97a11 Rename SkinnableElementTargetContainer to SkinnableTargetContainer 2021-05-13 17:07:38 +09:00
3b862798e9 Standardise naming of methods related to SkinnableInfo 2021-05-13 13:14:49 +09:00
c93ed541f3 Add xmldoc and tidy up logic in Skin 2021-05-13 13:09:33 +09:00
992a052426 Remove stray comment 2021-05-13 13:07:06 +09:00
117d6d731d Move cross-component layout dependencies for legacy skin to LegacySkin 2021-05-11 18:39:14 +09:00
bf65547eec Allow some serialised components to not be mutable by the user 2021-05-11 18:39:14 +09:00
c957293ec3 Load json from disk store at skin construction for now
This allows for easier mutation without worrying about changes being
re-read from disk unexpectedly.
2021-05-11 18:39:14 +09:00
b248b2e5e3 Hook up full save/load flow 2021-05-11 18:39:14 +09:00
aec859b4d1 Merge branch 'master' into fix-unsafe-skinnable-sample-play 2021-03-18 19:51:46 +01:00
c4ba045df1 Add note about finalizers required for audio store clean-up 2021-03-02 16:07:51 +09:00
00574a5288 Use ISample everywhere in Skin GetSample lookup path 2021-02-18 18:32:28 +09:00
de9d075f94 Initial sample + samplechannel rework 2021-01-19 17:11:40 +09:00