Types/IconSpecification: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
m (Add note about limitations in layered icon definitions.)
(Removed old prototype docs)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Basics ==
<div class="stub"><p>'''The prototype docs have moved to a new website with an improved format.''' This documentation can now be found here: [https://lua-api.factorio.com/latest/index-prototype.html https://lua-api.factorio.com/latest/index-prototype.html]
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.
</p><p>This wiki page is no longer updated and '''will be removed at some point in the future''', so please update your browser bookmarks or other links that sent you here. If you'd like to contribute to the new docs, you can leave your feedback [https://forums.factorio.com/viewforum.php?f=233 on the forums].</p></div>
== 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 [https://forums.factorio.com/69221 here] and [https://forums.factorio.com/98732 here].
 
=== icon_size ===
'''Type''': [[Types/SpriteSizeType]]
 
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 ==
=== 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:
<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>

Latest revision as of 14:32, 25 October 2024

The prototype docs have moved to a new website with an improved format. This documentation can now be found here: https://lua-api.factorio.com/latest/index-prototype.html

This wiki page is no longer updated and will be removed at some point in the future, so please update your browser bookmarks or other links that sent you here. If you'd like to contribute to the new docs, you can leave your feedback on the forums.