Types/CollisionMask: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(restructure article like other flag articles and add in details for the "not-colliding-with-itself" option)
(→‎"not-colliding-with-itself": clarify after developer response and further testing)
Line 23: Line 23:
These are not collision masks, instead they control other aspects of collision, but they are still specified here.
These are not collision masks, instead they control other aspects of collision, but they are still specified here.
=== "not-colliding-with-itself" ===
=== "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.
Any 2 entities that both have this option enabled on their prototype and have an identical collision mask layers list will not collide. Other collision mask options are not included in the identical layer list check. This does mean that 2 different prototypes with the same collision mask layers and this option enabled will not collide.
 
=== "consider-tile-transitions" ===
=== "consider-tile-transitions" ===
=== "colliding-with-tiles-only" ===
=== "colliding-with-tiles-only" ===

Revision as of 12:51, 14 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 2 entities that both have this option enabled on their prototype and have an identical collision mask layers list will not collide. Other collision mask options are not included in the identical layer list check. This does mean that 2 different prototypes with the same collision mask layers and this option enabled will not collide.

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