Types/IconSpecification: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(→‎Prototype properties: Option 1: documented rendering order)
(Added examples)
(2 intermediate revisions by the same user not shown)
Line 7: Line 7:
'''Type''': [[Types/table]] of [[Types/IconData]]
'''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).  
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 ===
=== icon_size ===
Line 13: Line 13:


Mandatory if <code>icon_size</code> is not specified inside all instances of [[Types/IconData]] inside <code>icons</code>. The size of the square icon, in pixels, e.g. 32 for a 32px by 32px icon.
Mandatory if <code>icon_size</code> is not specified inside all instances of [[Types/IconData]] inside <code>icons</code>. 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 ==
== Prototype properties: Option 2 ==
Line 23: Line 28:


Mandatory. The size of the square icon, in pixels, e.g. 32 for a 32px by 32px icon.
Mandatory. The size of the square icon, in pixels, e.g. 32 for a 32px by 32px icon.
== Examples ==
Simple icon with size:
<syntaxhighlight lang="lua">
  icon = "__base__/graphics/icons/fluid/heavy-oil.png",
  icon_size = 32,
</syntaxhighlight>
Layered icon, size defined outside of layers:
<syntaxhighlight lang="lua">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 }
  }
}</syntaxhighlight>
Layered icon, size defined per layer:
<syntaxhighlight lang="lua">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 }
  }
}</syntaxhighlight>

Revision as of 18:55, 10 September 2019

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