Color Masks Property - Floogen/FashionSense GitHub Wiki
What are Color Masks?
Color masks allow mod authors to specify a list of RGB colors to target for color overlays.
If both the ColorMasks
and ColorMaskLayers
properties are excluded, then the whole sprite will be targeted by the player's color choice.
Note: All color masks are ignored if DisableGrayscale
is set to true
.
Properties
Property | Required | Description | Default |
---|---|---|---|
ColorMasks |
true |
The list of RGB colors to use for the color masking / replacement. | [] |
What is the difference between Color Masks and Color Mask Layers?
While Color mask layers act primarily the same as the ColorMasks
property, the following should be noted:
ColorMaskLayers
allows for multiple colorable sections, whileColorMasks
only allows for one colorable section to be set.ColorMaskLayers
can "protect" colors of an appearance by using itsIgnoreUserColorChoice
property.
Note: Using ColorMasks
and ColorMaskLayers
together is not supported.
Multiple Color Targets
Multiple RGB colors can be targeted via ColorMasks
, allowing mod authors to specify colors within the sprite that change according to the player's own color choice.
Note: The RGB colors listed in ColorMasks
do not have to be grayscale, as they can be any possible RGB color.
Additional note: If the color given is not grayscale, then the color overlay will be treated as additive. This means the resulting color will be a different hue compared to any grayscale counterpart.
Example Usage
Below is the Colorable Mouse Ears, found in the example pack.
Notice that only one color is given (191, 183, 181
), which outlines the ears of the sprite.
This means the player's color choice will only be applied to the outline color (191, 183, 181
), while the rest of the sprite's color will remain the same.
{
"Name": "Colorable Mouse Ears",
"FrontHat": {
"ColorMasks": [
[ 191, 183, 181 ]
],
"StartingPosition": {
"X": 0,
"Y": 0
},
"HeadPosition": {
"X": -2,
"Y": 0
},
"HatSize": {
"Width": 16,
"Length": 16
}
}
}
Example sprite: