Types/IconSpecification: Difference between revisions
No edit summary  | 
				No edit summary  | 
				||
| Line 2: | Line 2: | ||
Specifies the icon of an entity/item/technology/recipe etc. The properties are specified directly in the prototype, not in another sub-property.  | Specifies the icon of an entity/item/technology/recipe etc. The properties are specified directly in the prototype, not in another sub-property.  | ||
Either <code>icons</code> and optionally <code>icon_size</code>, or both <code>icon</code> and <code>icon_size</code> have to be specified. If both <code>icons</code> and <code>icon</code> are defined <code>icon</code> is ignored.  | Either <code>icons</code> and optionally <code>icon_size</code>, or both <code>icon</code> and <code>icon_size</code> have to be specified. If both <code>icons</code> and <code>icon</code> are defined, <code>icon</code> is ignored.  | ||
== Prototype properties: Option 1 ==  | == Prototype properties: Option 1 ==  | ||
=== icons ===  | === icons ===  | ||
Revision as of 10:02, 15 March 2020
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).
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.
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 }
  }
}