Types/IconSpecification: Difference between revisions
(→icon_mipmaps: description) |
Stringweasel (talk | contribs) m (Add note about limitations in layered icon definitions.) |
||
Line 8: | Line 8: | ||
The rendering order of the individual icons follows the table (array) order: Later added icons (higher index) get drawn on top of previously added icons (lower index). Can't be an empty table. | The rendering order of the individual icons follows the table (array) order: Later added icons (higher index) get drawn on top of previously added icons (lower index). Can't be an empty table. | ||
'''Note:''' Icon layering was mainly designed for the barrel recipes and might not handle all modded instances correctly. Depending on the use-case it might be benifitial to use non-layered icons. For reference see [https://forums.factorio.com/69221 here] and [https://forums.factorio.com/98732 here]. | |||
=== icon_size === | === icon_size === |
Revision as of 07:14, 17 October 2022
Basics
Specifies the icon of an entity/item/technology/recipe etc. The properties are specified directly in the prototype, not in another sub-property.
Either icons
and optionally icon_size
, or both icon
and icon_size
have to be specified. If both icons
and icon
are defined, icon
is ignored.
Prototype properties: Option 1
icons
Type: Types/table of Types/IconData
The rendering order of the individual icons follows the table (array) order: Later added icons (higher index) get drawn on top of previously added icons (lower index). Can't be an empty table.
Note: Icon layering was mainly designed for the barrel recipes and might not handle all modded instances correctly. Depending on the use-case it might be benifitial to use non-layered icons. For reference see here and here.
icon_size
Type: Types/SpriteSizeType
Mandatory if icon_size
is not specified inside all instances of Types/IconData inside icons
. The size of the square icon, in pixels, e.g. 32 for a 32px by 32px icon.
icon_mipmaps
Type: Types/uint8
Default: 0
Prototype properties: Option 2
icon
Type: Types/FileName
Path to the icon file.
icon_size
Type: Types/SpriteSizeType
Mandatory. The size of the square icon, in pixels, e.g. 32 for a 32px by 32px icon.
icon_mipmaps
Type: Types/uint8
Icons of reduced size will be used at decreased scale. 0 or 1 mipmaps is a single image. The file must contain 1/2 size images with a geometric-ratio, for each mipmap level. Each next level is aligned to the upper-left corner. Example sequence: 128x128@(0,0), 64,64@(128,0), 32x32@(196,0) is 3 mipmaps.
Default: 0
Examples
Simple icon with size:
icon = "__base__/graphics/icons/fluid/heavy-oil.png",
icon_size = 32,
Layered icon, size defined outside of layers:
icon_size = 32,
icons = {
{
icon = "__base__/graphics/icons/fluid/barreling/empty-barrel.png"
},
{
icon = "__base__/graphics/icons/fluid/barreling/barrel-side-mask.png",
tint = { a = 0.75, b = 0, g = 0, r = 0 }
},
{
icon = "__base__/graphics/icons/fluid/barreling/barrel-hoop-top-mask.png",
tint = { a = 0.75, b = 0.5, g = 0.5, r = 0.5 }
}
}
Layered icon, size defined per layer:
icons = {
{
icon = "__base__/graphics/icons/fluid/barreling/barrel-empty.png",
icon_size = 32
},
{
icon = "__base__/graphics/icons/fluid/barreling/barrel-empty-side-mask.png",
icon_size = 32,
tint = { a = 0.75, b = 0, g = 0, r = 0 }
},
{
icon = "__base__/graphics/icons/fluid/barreling/barrel-empty-top-mask.png",
icon_size = 32,
tint = { a = 0.75, b = 0.5, g = 0.5, r = 0.5 }
},
{
icon = "__base__/graphics/icons/fluid/crude-oil.png",
icon_size = 32,
scale = 0.5,
shift = {7, 8 }
}
}