In this release of Tablisknu, we are finally moving out of the beta version stage of Tablisknu with a new feature that I am excited to introduce to you now that I have been able to test and document it: blueprints!
A blueprint is a, well, blueprint, for a skin, meaning that you can create and modify a blueprint using the syntaxes Tablisknu provides and then use it to generate an actual skin that you can put on your players. I won't go too in depth here about the specifics of each of the syntaxes since they're already documented (though I hope to create some examples in the future for you guys to follow), but here's a brief explanation:
(Italicized names indicate the names in the documentation of syntaxes)
This update introduces two new types: the `blueprint` (
Blueprint) type, and the `argb` (
ARGB Color) type. The `blueprint` type is fairly self explanatory; `argb` is a new color type I introduced as skins support transparency in their second layer (including semitransparency), and you can also use transparency in the first layer when combining multiple blueprints. Normal Skript colors will be converted to `argb`s when used in these syntaxes; there is also a `transparent` literal for the fully transparent color, and you can also write hex codes using the syntaxes
where RR, GG, and BB are the hex values for the red, green, and blue respectively, and
where AA is now the alpha value, which specifies how transparent/opaque the color is (00 is fully transparent, FF = 255 is fully opaque).
To create blueprints, you can use the
Create Blueprint effect:
code_language.skript:
create [(slim)] [(head|body|right arm|left arm|right leg|left leg) [(front|back|right|left|top|bottom) face]] blueprint from (file|url) %string% in %object%
to load a blueprint from an image file locally or online or from a skin, and you can also get a new (blank) blueprint using the
Blank Blueprint expression:
code_language.skript:
blank [(slim)] [ (head|body|right arm|left arm|right leg|left leg) [(front|back|right|left|top|bottom) face]] blueprint
There are three effects for modifying blueprints:
Color Blueprint
code_language.skript:
color %blueprint% as %argb%
Recolor Blueprint
code_language.skript:
recolor %argb% in %blueprint% as %argb%
Overlay Blueprint on Blueprint
code_language.skript:
overlay %blueprint% on %blueprint%
The
Body Part of Blueprint
code_language.skript:
[(second layer)] (head|body|right arm|left arm|right leg|left leg) [(front|back|right|left|top|bottom) face] pixels of %blueprint%
Face of Body Part Blueprint
code_language.skript:
(front|back|right|left|top|bottom) face pixels of %blueprint%
and
Rectangle of Blueprint
code_language.skript:
pixels %number%, %number% to %number%, %number% (of|in) %blueprint%
expressions give you a blueprint containing a section of the specified blueprint; modifications to the new blueprint are also made to the original blueprint.
The
Copy of Blueprint expression
code_language.skript:
blueprint copied from %blueprint%
gives you a new blueprint copied from the specified blueprint such that modifications made to the new blueprint won't be made to the original.
The settable
Color of Pixel in Blueprint expression
code_language.skript:
color of pixel %number%, %number% (of|in) %blueprint%
allows you to modify blueprints at the pixel level.
Finally, the
Retrieve Skin effect
code_language.skript:
retrieve [(slim)] skin from (file|url) %-string% [[with] timeout %-timespan%] into %object%
retrieve skin (from uuid %-string%|of %-offlineplayer%|from blueprint %-blueprint%) [[with] timeout %-timespan%] into %object%
has new syntax that allows you to retrieve an actual skin from a blueprint that you have created. Excluding the existing syntaxes not related to blueprints, the added syntax is
code_language.skript:
retrieve skin from blueprint %blueprint% [[with] timeout %-timespan%] into %object%
And that's it! I'm excited to see how you guys will use this new feature, and I hope that you'll enjoy it!