Dean Herbert
85c5c68dfa
Provide particle drawable as a function (for future use)
2020-11-19 13:20:21 +09:00
Dean Herbert
c47e70da9b
Update animations for new/old miss style and add fades
2020-11-18 19:03:34 +09:00
Dean Herbert
5bd4ace37f
Split out new and old style legacy judgement pieces
2020-11-18 19:03:34 +09:00
Dean Herbert
dd4b69feab
Add legacy judgement implementation which doesn't transform on animations
2020-11-17 15:46:57 +09:00
Dean Herbert
bc69ed3870
Simplify sample lookup
2020-10-30 22:33:27 +09:00
Dean Herbert
b906736b85
Remove redundant initialisation
2020-10-30 12:28:40 +09:00
Dean Herbert
d319b27b3d
Run sample lookup logic through getFallbackNames
2020-10-30 11:59:41 +09:00
smoogipoo
dfbc0965e4
Merge branch 'master' into peppy/skinnable-health-display
2020-10-16 23:17:17 +09:00
Dean Herbert
e87f515a4f
Merge pull request #10522 from Morilli/legacyskin-fixes
...
Add support for ScorePrefix and ScoreOverlap values in legacy skins
2020-10-16 20:54:03 +09:00
Dean Herbert
a774de2270
Also add support in LegacyComboCounter
2020-10-16 17:52:22 +09:00
Dean Herbert
3ce6d1fea1
Remove unnecessary AccuracyText enum
...
All elements use "score" regardless.
2020-10-16 17:36:54 +09:00
Dean Herbert
e9c4b67cf4
Inline variable
2020-10-16 17:35:35 +09:00
Dean Herbert
05f1017c28
Fix lookup check not being updated to use prefix
2020-10-16 17:35:21 +09:00
Dean Herbert
5be9e30cd0
Add legacy implementation
2020-10-16 17:08:46 +09:00
Morilli
df1db8611c
move skin-specific config retrieval to GetDrawableComponent
2020-10-16 08:36:20 +02:00
Dean Herbert
88ffcb9234
Update EndsWith usages
2020-10-16 12:58:34 +09:00
Dean Herbert
254eba9008
Add and consume skinnable accuracy counter
2020-10-15 17:53:16 +09:00
Dean Herbert
90ff8ff050
Merge branch 'skinnable-combo-counter' into skinnable-score-display
2020-10-15 17:52:06 +09:00
Dean Herbert
37e9f331ad
Simplify score font lookup
2020-10-15 17:49:55 +09:00
Dean Herbert
e1da64398e
Add and consume skinnable score counter
2020-10-15 17:14:42 +09:00
Dean Herbert
9bb8a43bce
Combine LegacyComboCounter and ComboCounter classes
2020-10-14 19:16:34 +09:00
Dean Herbert
fbbea48c8c
Add score text skinnability
2020-10-14 19:16:34 +09:00
Dean Herbert
2fce064e32
Add basic legacy combo counter and updating positioning logic
2020-10-14 19:16:34 +09:00
smoogipoo
f439c1afbc
Make osu/taiko/catch use Ok+Great
2020-09-29 17:16:55 +09:00
Dean Herbert
da34544fdc
Merge branch 'master' into hold-note-lighting
2020-08-28 18:27:29 +09:00
Bartłomiej Dach
a1f731d455
Merge branch 'master' into mania-keys-under-notes
2020-08-27 14:06:43 +02:00
smoogipoo
c0c67c11b1
Add parsing for hold note light/scale
2020-08-26 20:21:41 +09:00
smoogipoo
d057f5f4bc
Implement mania "KeysUnderNotes" skin config
2020-08-26 15:37:16 +09:00
smoogipoo
7a70d06342
Add support for custom LightingN paths
2020-08-25 15:35:37 +09:00
Dan Balasescu
b448ca3efe
Merge branch 'master' into merge-global-to-legacy
2020-08-03 16:00:52 +09:00
Bartłomiej Dach
ca7545917c
Extract method for performing legacy lookups
2020-08-02 19:55:18 +02:00
Bartłomiej Dach
3e5c3e256d
Extract method for performing generic config lookup
2020-08-02 19:54:38 +02:00
Bartłomiej Dach
971eafde2b
Move fallback to non-bank samples to centralise hackery
2020-07-30 22:20:36 +02:00
Bartłomiej Dach
2bb436fd3c
Do not use custom sample banks outside of beatmap skin
2020-07-30 22:07:26 +02:00
Salman Ahmed
6473bf503b
Remove use of case when
2020-07-30 07:09:40 +03:00
Salman Ahmed
5439099b7c
Merge GlobalSkinConfiguration settings into the LegacySetting enum
2020-07-29 10:35:51 +03:00
smoogipoo
9f7750e615
Add texture wrapping support to skins
2020-07-17 16:54:30 +09:00
mcendu
5c2959eeb6
allow lookup of stage decoration paths and add test images
2020-07-05 13:02:50 +08:00
Dean Herbert
b9e247da8f
Simplify lookup code
2020-06-13 21:19:06 +09:00
mcendu
7c3e7b65a8
add custom file path support for osu\!mania judgement sprite
2020-06-12 21:22:22 +08:00
smoogipoo
b8a1831d98
Read line widths from skin
2020-04-21 17:14:04 +09:00
smoogipoo
cd15b672eb
Implement left and right stage images
2020-04-08 16:20:47 +09:00
Bartłomiej Dach
f5f0b94944
Fix incorrect fallback logic
...
The recently-modified skin texture fallback logic was very subtly
incorrect. If at the end of the first loop no texture was found, it
would be checked for null to avoid setting scale adjust on a null
texture, but then returned anyway, bypassing the fallback logic for
subsequent possible paths entirely.
Invert the check and explicitly continue to the next fallback path
if neither a 2x, nor 1x texture with the given name is found in the
store.
2020-04-07 22:50:25 +02:00
Dean Herbert
2062087155
Merge branch 'master' into more-mania-colours
2020-04-07 23:36:42 +09:00
Dean Herbert
9ff4458fd6
Merge branch 'master' into mania-skin-note-images
2020-04-07 22:41:22 +09:00
Dean Herbert
780784217d
Merge pull request #8652 from smoogipoo/mania-multiple-columnwidth
...
Make note height scale by minimum column width
2020-04-07 22:38:12 +09:00
smoogipoo
2568f3f588
Fix off-by-one indexing
2020-04-07 17:11:32 +09:00
smoogipoo
11d58fb7f6
Implement column background and light colours
2020-04-07 16:53:55 +09:00
smoogipoo
9fd73492ca
Implement judgement line colour
2020-04-07 16:53:55 +09:00
smoogipoo
3ecb99462f
Make note height scale by minimum column width
2020-04-07 16:07:18 +09:00
smoogipoo
a4208f35c4
Make versionless skins fallback to version 1.0
2020-04-06 19:36:17 +09:00
smoogipoo
db6db861c0
Implement mania note + key image configs
2020-04-06 19:04:02 +09:00
smoogipoo
eff17c2da5
Allow legacy skin textures from subpaths
2020-04-06 19:03:15 +09:00
Dean Herbert
f919a2f267
Merge branch 'master' into mania-hitexplosion-skinning
2020-04-02 23:57:03 +09:00
smoogipoo
62f1bc276d
Add skinning support for column line colour
2020-04-02 18:10:17 +09:00
smoogipoo
a77933f5e0
Add support for parsing mania skin colours
2020-04-02 17:56:12 +09:00
smoogipoo
fa3a449c3b
Implement legacy normal hit explosions
2020-04-02 14:37:29 +09:00
Dean Herbert
a76428f965
Move lookup to own function
2020-04-01 23:46:50 +09:00
Dean Herbert
c2c7ff7334
Add temporary logic to LegacySkin
2020-04-01 23:32:48 +09:00
smoogipoo
ff2c5b446e
Fix column lights positioned incorrectly
2020-04-01 16:06:09 +09:00
smoogipoo
2d6d1a8cc6
Implement column width and column spacing
2020-04-01 13:38:03 +09:00
mcendu
c0f8c1dc28
rename variable used for mania lookup key storage
2020-03-31 17:22:46 +08:00
smoogipoo
71387016b2
Add missing judgement line
2020-03-31 12:26:31 +09:00
smoogipoo
02237133cb
Implement mania hit target skinning
2020-03-31 12:17:44 +09:00
smoogipoo
2b5e9885f6
Implement mania skin reading functionality
2020-03-31 10:55:58 +09:00
Dean Herbert
d8041a0dcb
Increase sample concurrency to better match stable
2020-03-22 02:16:28 +09:00
smoogipoo
ee13632375
Fix ogg beatmap/skin samples not loading
2020-02-18 13:21:55 +09:00
Dean Herbert
9181bb41c6
Remove unused using
2020-02-07 15:11:09 +09:00
Dean Herbert
7460018cd3
Move combo colours to GlobalSkinColours
2020-02-07 14:58:07 +09:00
smoogipoo
09cd66adb0
Fix storyboard samples not loading from subfolders
2020-01-02 14:07:22 +09:00
Salman Ahmed
a9125f6544
Merge remote-tracking branch 'upstream/master' into fallback-to-skin-combo-colours
2019-12-12 12:37:51 +03:00
iiSaLMaN
20a8a653c2
Change LegacySkin.Configuration accessibility
2019-11-24 04:10:04 +03:00
Dean Herbert
bcb1504110
Fix naming
2019-11-20 15:40:35 +09:00
iiSaLMaN
08b8cedfdf
Add setter to legacy skin configuration access
2019-11-20 01:15:40 +03:00
iiSaLMaN
0407d2248c
Merge remote-tracking branch 'refs/remotes/upstream/master' into add-access-to-skin-legacy-version
2019-11-20 01:10:32 +03:00
Dean Herbert
758c304d92
Merge branch 'master' into fallback-to-skin-combo-colours
2019-11-12 19:00:05 +09:00
Huo Yaoyuan
e9b8cbb516
Apply other styles.
2019-11-11 20:27:04 +08:00
Huo Yaoyuan
ccc8aa6fa4
Apply brace style.
2019-11-11 20:13:13 +08:00
iiSaLMaN
9874ce49ce
Move fallback allowance to the skin configuration only.
2019-11-07 15:55:34 +03:00
iiSaLMaN
808543885f
Change ComboColours type to IReadOnlyList<Color4>
...
Also exposes functions to modify the internal list (AddComboColours, ClearComboColours)
2019-11-07 15:54:30 +03:00
iiSaLMaN
cef6e2a26b
Move colours fallback logic to SkinConfiguration.ComboColours getter
2019-11-06 23:20:36 +03:00
iiSaLMaN
198a1750c3
Use is
pattern matching
2019-11-06 20:46:02 +03:00
iiSaLMaN
69d9a0ae1a
Use null check and pattern matching
2019-11-06 20:30:26 +03:00
iiSaLMaN
2cf17e0bf3
Use decimal data type instead
2019-10-09 23:33:25 +03:00
iiSaLMaN
003af19e3f
Introduce legacy skin configuration
2019-10-09 23:04:34 +03:00
iiSaLMaN
5e3f0f6c95
Return default combo colours if none provided
2019-10-09 21:08:07 +03:00
iiSaLMaN
281671a213
Remove default combo colours usage from skins
2019-10-09 21:04:26 +03:00
Bartłomiej Dach
11eda44d34
Migrate decoding to line-buffered reader
...
Migrate all usages of StreamReader in the context of decoding beatmaps,
storyboards or skins to the new LineBufferedReader.
2019-09-15 01:28:07 +02:00
smoogipoo
bda21998c4
Add helper method to make direct casts be used
2019-09-05 16:48:56 +09:00
Dean Herbert
8ea82123e4
Fix nullref on test disposal
2019-09-04 15:59:09 +09:00
Dean Herbert
f655cd4516
Fix parsing of null configuration elements
2019-09-04 13:30:46 +09:00
Dean Herbert
04c2c33c64
Allow LegacySkin to be constructed with all nulls
2019-09-04 13:29:55 +09:00
Dean Herbert
097012dc95
Move slider ball colouring to DefaultLegacySkin for now
2019-09-03 18:05:16 +09:00
Dean Herbert
bebc3309ce
Refactor skin configuration to be infinitely extensible
2019-09-03 17:57:34 +09:00
Dean Herbert
0261456d5a
Merge branch 'master' into play-to-gameplay
2019-09-03 11:42:15 +09:00
Dean Herbert
f9fcf1562f
Merge remote-tracking branch 'upstream/master' into iskincomponent
2019-09-02 14:21:02 +09:00
Dean Herbert
12eeec36fc
Fix ruleset skins incorrectly providing configuration defaults
2019-08-31 12:33:29 +09:00
Dean Herbert
70e417533f
Update naming
2019-08-30 15:13:29 +09:00
Dean Herbert
a7c94c3883
Simplify hit result lookups
2019-08-30 15:12:03 +09:00
Dean Herbert
a15828ab25
Introduce the concept of SkinComponents
...
Removes reliance on string lookups and better defines elements for introduction into database
2019-08-30 14:55:52 +09:00
Dean Herbert
8f9fe99237
Move SliderFollowCircle implementation
2019-08-30 14:40:36 +09:00
Dean Herbert
c389a5c798
Move remaining osu-specific implementations to OsuLegacySkin
2019-08-30 13:42:29 +09:00
Dean Herbert
7bba8ca14b
Split out nested classes
2019-08-30 13:04:11 +09:00
Dean Herbert
84e4748268
Remove duplicate getAnimation function and improve namespacing
2019-08-30 12:59:58 +09:00
Dean Herbert
7ea55a5cdd
Merge remote-tracking branch 'upstream/master' into add-ruleset-legacy-skin
2019-08-28 16:36:20 +09:00
iiSaLMaN
18431a42e6
Resolve merge conflicts
2019-08-27 20:06:17 +03:00
Dean Herbert
7ccc409df7
Merge remote-tracking branch 'upstream/master' into add-ruleset-legacy-skin
2019-08-27 18:27:26 +09:00
Dean Herbert
0ea10a4922
Fix skin sample reading failing
2019-08-27 17:18:32 +09:00
Dean Herbert
66223b9954
Merge branch 'master' into allow-fallback-to-samples-without-bank
2019-08-27 14:44:16 +09:00
Dean Herbert
62641c149d
Fx component lookups being incorrect for non-databased legacy skins
2019-08-26 18:20:45 +09:00
Dean Herbert
5e362d10b1
Add ruleset-specific legacy skin providers
...
This moves implementation of osu! skinnables to OsuLegacySkin.
2019-08-26 12:21:49 +09:00
iiSaLMaN
0bcd323d17
Remove unnecessary string literal
2019-08-24 09:30:43 +03:00
iiSaLMaN
d8535574d1
Pass sample info to Skin.GetSample
2019-08-23 14:32:43 +03:00
iiSaLMaN
66d8440167
Move non-bank samples logic to LegacySkin
2019-08-22 12:50:47 +03:00
Dean Herbert
28dfe072a5
Update one more blending mode change post-master merge
2019-08-21 15:11:46 +09:00
Dean Herbert
4186d2566a
Remove unnecessary null checks
2019-08-21 15:11:33 +09:00
Dean Herbert
745bd58f37
Merge remote-tracking branch 'upstream/master' into update-framework-blending
2019-08-21 15:10:08 +09:00
Dean Herbert
444f2b9387
Specify font size in a saner way
2019-08-21 15:01:50 +09:00
Dean Herbert
6a48819055
Merge branch 'master' into update-framework-blending
2019-08-21 14:27:57 +09:00
Dean Herbert
cca64771dd
Add comment about placement of default loading
2019-08-21 13:56:49 +09:00
Dean Herbert
aa8b7b60de
Merge remote-tracking branch 'upstream/master' into update-framework-blending
2019-08-21 13:30:24 +09:00
Dan Balasescu
82fe506f97
Merge branch 'master' into animated-legacy-skins
2019-08-21 13:03:11 +09:00
smoogipoo
0de219dda4
Update with spritetext text builder changes
2019-08-20 19:03:57 +09:00
Dean Herbert
4bffb0df84
Merge branch 'animated-legacy-skins' into animated-slider-ball
2019-08-20 18:14:17 +09:00
Dean Herbert
6dd638b327
Further improve legibility of texture lookup
2019-08-20 17:39:24 +09:00
Dean Herbert
84530b7839
Colour the correct layer
2019-08-20 15:02:07 +09:00
Dean Herbert
f7ce7c7d99
Merge branch 'fix-skin-test-regression' into animated-slider-ball
2019-08-20 14:09:53 +09:00
Dean Herbert
3b7cee2d45
Fix LegacySkin not checking for @2x hitcircle when deciding sizing
2019-08-20 13:50:16 +09:00
Dean Herbert
b5cb59faf2
Add default skin sprites and specular/diffuse layer support
2019-08-20 13:19:32 +09:00
Dean Herbert
d0766fa1cd
Add slider ball animation support
2019-08-19 19:55:47 +09:00
Dean Herbert
539a27a557
Refactor texture lookup code
2019-08-19 19:23:54 +09:00
Dean Herbert
d02b8d14f7
Avoid unnecessary texture retrieval for non-animated sprites
2019-08-19 17:47:59 +09:00
Dean Herbert
d224405bc6
Rename const and make more available
2019-08-19 17:46:05 +09:00
Dean Herbert
4356f2ef9f
Add sample usage of looping skinnable
2019-08-19 17:45:54 +09:00
Dean Herbert
bc49164cc1
Merge branch 'master' into animated-legacy-skins
2019-08-13 00:40:20 +09:00
smoogipoo
5486c77362
Remove explicit autosize
2019-08-09 15:25:42 +09:00
Dean Herbert
ec13143ab3
Add further xmldoc
2019-08-07 18:45:56 +09:00
jorolf
7b95741dab
fix crash and add some tests
...
- still missing special skin textures
2019-07-31 21:55:56 +02:00
jorolf
e01d3d85a3
Merge branch 'master' of git://github.com/ppy/osu into animated-legacy-skins
2019-07-30 20:29:04 +02:00
Dean Herbert
9335ebeb55
Fix missing anchor/origin specification
2019-07-30 23:45:55 +09:00
Dean Herbert
f6b6fa9633
Add disappeared null check
2019-07-30 23:44:47 +09:00
Dean Herbert
f9c95e21be
Merge remote-tracking branch 'upstream/master' into legacy-cursor-middle
2019-07-30 23:44:13 +09:00
Dean Herbert
21a8f566c3
Trim whitespace
2019-07-30 23:24:28 +09:00
Dean Herbert
d12de7dbfa
Add temporary scale hack to make cursors correct size
2019-07-30 23:20:35 +09:00
Dean Herbert
8e9f8bb565
Merge branch 'master' into slider-ball-scaling
2019-07-30 23:19:28 +09:00
Dean Herbert
6d279dba5c
Fix centering being incorrect for some skins
2019-07-30 23:07:41 +09:00
Dean Herbert
fb1f77bd04
Move implementation and colour logic to legacy implementation
2019-07-30 23:06:18 +09:00
Dean Herbert
e6bd02d276
Simplify namespace definition
2019-07-30 22:41:20 +09:00
Dean Herbert
307a6c1095
Remove DefaultCirclePiece
2019-07-30 22:38:29 +09:00
smoogipoo
1222536f7a
Rename resource string
2019-07-30 19:10:21 +09:00
jorolf
0635680db5
fix some code quality
2019-07-29 11:49:59 +02:00
jorolf
f4effd12c3
make legacy skins animatable
2019-07-28 21:04:55 +02:00
Dean Herbert
bfaf9d5f41
Remove unnecessary special cases
2019-07-25 16:24:10 +09:00
Dean Herbert
c1b0130857
Add legacy cursormiddle support
2019-07-25 16:23:04 +09:00
Dean Herbert
38e21caa5a
Add legacy hitcircle
2019-07-25 16:10:01 +09:00
Dean Herbert
46e17646ac
Align slider path size with legacy skins
2019-07-25 14:22:26 +09:00
Dean Herbert
9473f6d3e3
Fix incorrect ratios being applied to playfield / skin elements
...
This now matches osu-stable 1:1.
2019-07-25 14:22:22 +09:00
smoogipoo
fc8dee6123
Fix typo
2019-07-01 23:26:53 +09:30
Dean Herbert
0636df5660
Add support for legacy skins which use animation frames to hide elements
2019-07-01 18:13:14 +09:00
Dean Herbert
80d65f9a3b
Update resource stores with GetAvailableResources
2019-05-31 14:33:18 +09:00
Dean Herbert
a20eda7b5f
Fix remaining cases to work without things
2019-05-28 23:54:42 +09:00
Dean Herbert
4ca34bd5e8
Update osu! in line with audio subsystem refactor
2019-05-28 17:06:01 +09:00
Dean Herbert
612db31c38
Apply newline additions
2019-04-01 12:16:32 +09:00
Dean Herbert
26d53d06a9
Fix remaining issues
2019-02-28 13:31:40 +09:00
Jamie Taylor
38cf5a1ea4
Add support for the HitCircleOverlap property in legacy skins
2019-02-15 21:03:06 +09:00
Dean Herbert
8617aaa2a7
Update licence header (and remove year)
2019-01-24 17:43:03 +09:00
ekrctb
0573c1c923
Fix taiko namespace ignored
2019-01-21 14:20:37 +09:00
Roman Kapustin
4b5fc85875
Use Find instead of FirstOrDefault
2019-01-05 19:35:33 +03:00
smoogipoo
f27bd3ef3e
OpenTK -> osuTK
2018-11-20 17:14:59 +09:00
smoogipoo
3539874262
Add missing scale
...
Makes about a 1px difference.
2018-09-28 11:40:13 +09:00
smoogipoo
1c242556ca
Add comments + cleanup
2018-09-27 17:40:28 +09:00
smoogipoo
8191f03503
Implement HitCircleFont skin configuration
2018-09-27 17:40:28 +09:00
smoogipoo
0d8276c5f8
Implement skinnable sprite text
2018-09-27 17:40:28 +09:00
smoogipoo
b84994e643
Make GetTexture return the post-scaled texture
2018-09-27 17:40:28 +09:00
Dean Herbert
cc533a05c5
Update framework
2018-09-07 19:00:43 +09:00
Dean Herbert
b1a3dfedd1
Reduce async-await pairs
2018-08-30 14:41:16 +09:00
smoogipoo
21d5322899
Update with async changes
2018-08-27 17:05:58 +09:00
Dean Herbert
44a9aa529a
Test CI run with new changes
2018-04-22 03:51:17 +09:00
Dean Herbert
32a74f95a5
Normalize all the line endings
2018-04-13 18:26:38 +09:00
Dean Herbert
c39f056b3b
Fix skin path being ignored in extension agnostic lookups
...
Closes #2295 .
2018-03-30 18:06:18 +09:00
Dean Herbert
1996698817
Fix @1x skin elements not being used
2018-03-24 11:40:45 +09:00
Dean Herbert
ee12d75b30
Merge branch 'master' into skin-scaling
2018-03-22 19:30:17 +09:00
Dan Balasescu
ab9505652b
Merge branch 'master' into skin--completion
2018-03-22 16:44:00 +09:00
Dean Herbert
c5eecae32f
Improve shared code paths in legacy skins
2018-03-22 12:50:23 +09:00
Dean Herbert
4a93abcc36
Add scale adjusts to bring legacy skins in-line with lazer sizing
2018-03-21 20:07:58 +09:00
Dean Herbert
f03abb3145
Add GetTexture method to ISkinSource
...
Used to shortcut lookup checks without potentially expensive drawable creation overhead.
2018-03-20 16:40:11 +09:00
Dean Herbert
d1c2aa71d0
Add beatmap sample override support
2018-03-20 16:24:06 +09:00
Dean Herbert
dbcf755618
Make Beatmaps parsable as skins
2018-03-20 16:05:29 +09:00
Dean Herbert
b71c123214
Allow import of skins which don't have ini files
2018-03-19 20:26:16 +09:00
Dean Herbert
397b06283a
Add basic skin configuration decoding support
2018-03-19 20:06:44 +09:00
Dean Herbert
8e52d91180
Handle missing files without hard failure
...
Also adds support for lookups with file extensions
2018-03-19 20:06:44 +09:00
Dean Herbert
3354849cc9
Fix code formatting regression
2018-03-12 22:01:18 +09:00
Dean Herbert
c70be29eda
Move legacy conversion to LegacySkin
2018-03-12 11:30:13 +09:00
Dean Herbert
bd952ce370
Allow skinnable drawables to be of non-restricted size
2018-03-07 18:21:05 +09:00
Dean Herbert
02690e5f25
Move to private implementation
2018-03-05 21:27:37 +09:00
Dean Herbert
30b1447318
Fix skin file path lookup performance
...
Move path mapping to the resource store, so caching can happen against the component's name rather than the skin path.
Fixes regression of beatmap load time when a custom skin is selected.
2018-03-04 03:19:01 +09:00
Dean Herbert
f81eb2de65
Remove unnecessary local store
2018-02-23 14:24:32 +09:00
Dean Herbert
3726db53b5
Allow instantiation of skins
2018-02-23 13:38:12 +09:00