Types/CollisionMask: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(added link to defaults, fixed info)
(restructure article like other flag articles and add in details for the "not-colliding-with-itself" option)
Line 1: Line 1:
The collision mask is specified by list of [[Types/string]], every input is specification of one layer the object collides with.
The collision mask is specified as an Array ([[Types/table]]) of strings. Every entry is a specification of one layer the object collides with or a special collision option.


Layers are:
== Layers ==
* ground-tile
* ground-tile
* water-tile
* water-tile
Line 18: Line 18:
* layer-15
* layer-15


Layer-11 through layer-15 are currently unused by the core game. Additional input is "not-colliding-with-itself", "consider-tile-transitions" or "colliding-with-tiles-only". These three things are not collision masks, instead they control other aspects of collision, but they are still specified here.
Layer-11 through layer-15 are currently unused by the core game.


== Collision options ==
These are not collision masks, instead they control other aspects of collision, but they are still specified here.
=== "not-colliding-with-itself" ===
Any prototype that has this collision mask option will not collide with any other prototype that also has this collision mask option. This option functions like a global whitelist of prototypes that don't collide with one another.
=== "consider-tile-transitions" ===
=== "colliding-with-tiles-only" ===
== Default collision masks ==
The default collision masks of all entity types can be found [[Prototype/Entity#collision_mask|here]].
The default collision masks of all entity types can be found [[Prototype/Entity#collision_mask|here]].


Example (Most common collision mask of buildings):
Example (Most common collision mask of buildings):
<syntaxhighlight lang="lua">collision_mask = { "item-layer", "object-layer", "player-layer", "water-tile"}</syntaxhighlight>
<syntaxhighlight lang="lua">collision_mask = { "item-layer", "object-layer", "player-layer", "water-tile"}</syntaxhighlight>

Revision as of 22:11, 13 April 2019

The collision mask is specified as an Array (Types/table) of strings. Every entry is a specification of one layer the object collides with or a special collision option.

Layers

  • ground-tile
  • water-tile
  • resource-layer
  • doodad-layer
  • floor-layer
  • item-layer
  • ghost-layer
  • object-layer
  • player-layer
  • train-layer
  • layer-11
  • layer-12
  • layer-13
  • layer-14
  • layer-15

Layer-11 through layer-15 are currently unused by the core game.

Collision options

These are not collision masks, instead they control other aspects of collision, but they are still specified here.

"not-colliding-with-itself"

Any prototype that has this collision mask option will not collide with any other prototype that also has this collision mask option. This option functions like a global whitelist of prototypes that don't collide with one another.

"consider-tile-transitions"

"colliding-with-tiles-only"

Default collision masks

The default collision masks of all entity types can be found here.

Example (Most common collision mask of buildings):

collision_mask = { "item-layer", "object-layer", "player-layer", "water-tile"}