Types/IconSpecification

From Official Factorio Wiki
Revision as of 18:55, 10 September 2019 by Bilka (talk | contribs) (Added examples)
Jump to navigation Jump to search

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.

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 }
  }
}