Prototype/Entity: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(Created page with "==Basics== The common properties of all entities in the game. Entity is basically everything that can be on the map (except tiles). For in game script access to entity, take a...")
 
No edit summary
Line 13: Line 13:


== Properties ==
== Properties ==
=== type ===
'''Type''': [[Types/string]]
Specification of the type of the prototype.
=== name ===
'''Type''': [[Types/string]]
Unique identification of the prototype.
=== collision_box ===
=== collision_box ===
'''Type: [[Types/AABBbox]]
'''Type: [[Types/AABBbox]]
Line 67: Line 73:
=== autoplace ===
=== autoplace ===
'''Type''': [[Types/AutoplaceSpecification]]
'''Type''': [[Types/AutoplaceSpecification]]
== Example ==
    {
      type = "container",
      name = "wooden-chest",
      icon = "__base__/graphics/icons/wooden-chest.png",
      flags = {"placeable-neutral", "player-creation"},
      minable = {mining_time = 1, result = "wooden-chest"},
      collision_box = {{-0.4, -0.4}, {0.4, 0.4}},
      selection_box = {{-0.5, -0.5}, {0.5, 0.5}},
      max_health = 50,
      corpse = "small-remnants",
      fast_replaceable_group = "container",
      inventory_size = 16,
      picture =
      {
        filename = "__base__/graphics/entity/wooden-chest/wooden-chest.png",
        priority = "extra-high",
        width = 46,
        height = 33,
        shift = {0.3, 0}
      }
    }

Revision as of 14:31, 12 October 2013

Basics

The common properties of all entities in the game. Entity is basically everything that can be on the map (except tiles). For in game script access to entity, take a look at Lua/Entity

Extensions

Properties

type

Type: Types/string Specification of the type of the prototype.

name

Type: Types/string Unique identification of the prototype.

collision_box

Type: Types/AABBbox

Specification of the entity collision boundaries. When not specified the entity will not have any collision box. (used for smoke, projectiles, particles, explosions etc)

   collision_box = {{-0.4, -0.4}, {0.4, 0.4}}

Note that the {0,0} coordinate in the collision box will match the entity position. It should be near the center of the collision box, to keep correct entity drawing order. Note, that for buildings, it is custom to leave 0.1 wide border between the edge of the tile and the edge of the building, this lets the player move between the building and electric poles/inserters etc. and prevents stucked items on transport belt in some special casese (curves around the corner etc).

selection_box

Type: Types/AABBbox

Specification of the entity selection area. When not specified, the entity will have no selection area (and thus is not selectable).

   selection_box = {{-0.5, -0.5}, {0.5, 0.5}}

The selection box is usualy little bit bigger than the collision box, for tilable entities (like buildings) it should match the tile size of the building.

drawing_box

Type: Types/AABBbox

Specification of space needed to see the whole entity. Default value used is the selection_box. This is used to calculate the correct zoom and positioning in the entity info gui, when not set, the default value (selection box) is used, and it is usually working well.

   drawing_box = {{-0.5, -0.5}, {0.5, 0.5}}

sticker_box

Type: Types/AABBbox

Used to set the area of the entity that can have stickers on it, currently only used for units to specify the area where the green slow down stickers can appear. It is optional and the collision box is used when not specified.

  sticker_box = {{-0.5, -0.5}, {0.5, 0.5}}

weight

Type: Types/float Weight of the entity used for some physics calculation when car hits something.

   weight = 1

flags

Type: Types/Flags

minable

Type: Types/MinableProperties

emissions_per_tick

Type: Types/double

fast_replacable_group

Type: Types/string

tile_width

Type: Types/unsigned

tile_height

Type: Types/unsigned

autoplace

Type: Types/AutoplaceSpecification

Example

   {
     type = "container",
     name = "wooden-chest",
     icon = "__base__/graphics/icons/wooden-chest.png",
     flags = {"placeable-neutral", "player-creation"},
     minable = {mining_time = 1, result = "wooden-chest"},
     collision_box = {{-0.4, -0.4}, {0.4, 0.4}},
     selection_box = {{-0.5, -0.5}, {0.5, 0.5}},
     max_health = 50,
     corpse = "small-remnants",
     fast_replaceable_group = "container",
     inventory_size = 16,
     picture =
     {
       filename = "__base__/graphics/entity/wooden-chest/wooden-chest.png",
       priority = "extra-high",
       width = 46,
       height = 33,
       shift = {0.3, 0}
     }
   }