Prototype/TransportBeltConnectable: Difference between revisions
(0.17) |
(speed description about number format (fixed point number)) |
||
(10 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{Prototype parent|Prototype/EntityWithOwner}} | |||
Abstract class that anything that is a belt or can connect to belts uses. | |||
{{Prototype TOC|''abstract''}} | |||
== Extensions == | == Extensions == | ||
* [[Prototype/ | * [[Prototype/LinkedBelt]] '''linked-belt''' | ||
* [[Prototype/Loader1x1]] '''loader-1x1''' | |||
* [[Prototype/Loader1x2]] '''loader''' | |||
* [[Prototype/Splitter]] '''splitter''' | * [[Prototype/Splitter]] '''splitter''' | ||
* [[Prototype/TransportBelt]] '''transport-belt''' | * [[Prototype/TransportBelt]] '''transport-belt''' | ||
Line 12: | Line 14: | ||
== Mandatory properties == | == Mandatory properties == | ||
This prototype inherits all the properties from [[Prototype/ | This prototype inherits all the properties from [[Prototype/EntityWithOwner]]. | ||
{{Prototype property|speed|[[Types/double|double]]}} | |||
The speed of the belt (since 0.17): <code>speed × 480 = x Items/second</code> | |||
The | The raw value is expressed as the number of tiles traveled by each item on the belt per tick, relative to the belt's maximum density - e.g. <code>x items/second ÷ (4 items/lane × 2 lanes/belt × 60 ticks/second) = <speed> belts/tick</code> where a "belt" is the size of one tile. See [[Transport_belts/Physics]] for more details. | ||
Must be a positive non-infinite number. The number is a fixed point number with 8 bits reserved for decimal precision, meaning the smallest value step is 1/2^8 = 0.00390625. | |||
== Optional properties == | == Optional properties == | ||
{{Prototype property|animation_speed_coefficient|[[Types/double|double]]|1|optional=true}} | |||
Either this, or all of the properties below this one have to present. | {{Prototype property|belt_animation_set|[[Types/table|table]]|optional=true}} | ||
Either this, or all of the properties below this one have to be present. | |||
Table with the following properties: | Table with the following properties: | ||
* animation_set - [[Types/RotatedAnimation]] - Mandatory. | * animation_set - [[Types/RotatedAnimation|RotatedAnimation]] - Mandatory. | ||
* east_index - [[Types/uint8]] - Optional. - Default: 1 | * east_index - [[Types/uint8|uint8]] - Optional. - Default: 1 | ||
* west_index - [[Types/uint8]] - Optional. - Default: 2 | * west_index - [[Types/uint8|uint8]] - Optional. - Default: 2 | ||
* north_index - [[Types/uint8]] - Optional. - Default: 3 | * north_index - [[Types/uint8|uint8]] - Optional. - Default: 3 | ||
* south_index - [[Types/uint8]] - Optional. - Default: 4 | * south_index - [[Types/uint8|uint8]] - Optional. - Default: 4 | ||
* starting_south_index - [[Types/uint8]] - Optional. - Default: 13 | * starting_south_index - [[Types/uint8|uint8]] - Optional. - Default: 13 | ||
* ending_south_index - [[Types/uint8]] - Optional. - Default: 14 | * ending_south_index - [[Types/uint8|uint8]] - Optional. - Default: 14 | ||
* starting_west_index - [[Types/uint8]] - Optional. - Default: 15 | * starting_west_index - [[Types/uint8|uint8]] - Optional. - Default: 15 | ||
* ending_west_index - [[Types/uint8]] - Optional. - Default: 16 | * ending_west_index - [[Types/uint8|uint8]] - Optional. - Default: 16 | ||
* starting_north_index - [[Types/uint8]] - Optional. - Default: 17 | * starting_north_index - [[Types/uint8|uint8]] - Optional. - Default: 17 | ||
* ending_north_index - [[Types/uint8]] - Optional. - Default: 18 | * ending_north_index - [[Types/uint8|uint8]] - Optional. - Default: 18 | ||
* starting_east_index - [[Types/uint8]] - Optional. - Default: 19 | * starting_east_index - [[Types/uint8|uint8]] - Optional. - Default: 19 | ||
* ending_east_index - [[Types/uint8]] - Optional. - Default: 20 | * ending_east_index - [[Types/uint8|uint8]] - Optional. - Default: 20 | ||
* ending_patch - [[Types/Sprite4Way]] - Optional. | * ending_patch - [[Types/Sprite4Way|Sprite4Way]] - Optional. | ||
* ends_with_stopper - [[Types/bool]] - Optional. - Default: false | * ends_with_stopper - [[Types/bool|bool]] - Optional. - Default: false | ||
{{Prototype property|belt_horizontal|[[Types/Animation|Animation]]|optional=true}} | |||
Mandatory if <code>belt_animation_set</code> is not present. | Mandatory if <code>belt_animation_set</code> is not present. | ||
{{Prototype property|belt_vertical|[[Types/Animation|Animation]]|optional=true}} | |||
Mandatory if <code>belt_animation_set</code> is not present. | Mandatory if <code>belt_animation_set</code> is not present. | ||
{{Prototype property|ending_top|[[Types/Animation|Animation]]|optional=true}} | |||
Mandatory if <code>belt_animation_set</code> is not present. | Mandatory if <code>belt_animation_set</code> is not present. | ||
{{Prototype property|ending_bottom|[[Types/Animation|Animation]]|optional=true}} | |||
Mandatory if <code>belt_animation_set</code> is not present. | Mandatory if <code>belt_animation_set</code> is not present. | ||
{{Prototype property|ending_side|[[Types/Animation|Animation]]|optional=true}} | |||
Mandatory if <code>belt_animation_set</code> is not present. | Mandatory if <code>belt_animation_set</code> is not present. | ||
{{Prototype property|starting_top|[[Types/Animation|Animation]]|optional=true}} | |||
Mandatory if <code>belt_animation_set</code> is not present. | Mandatory if <code>belt_animation_set</code> is not present. | ||
{{Prototype property|starting_bottom|[[Types/Animation|Animation]]|optional=true}} | |||
Mandatory if <code>belt_animation_set</code> is not present. | Mandatory if <code>belt_animation_set</code> is not present. | ||
{{Prototype property|starting_side|[[Types/Animation|Animation]]|optional=true}} | |||
Mandatory if <code>belt_animation_set</code> is not present. | Mandatory if <code>belt_animation_set</code> is not present. | ||
{{Prototype property|ending_patch|[[Types/Sprite4Way|Sprite4Way]]|optional=true}} | |||
Always optional. Only read if <code>belt_animation_set</code> is not present. | Always optional. Only read if <code>belt_animation_set</code> is not present. | ||
{{Prototype property|ends_with_stopper|[[Types/bool|bool]]|false|optional=true}} | |||
== Mandatory values == | |||
Transport belt connectables have additional requirements for the properties inherited from [[Prototype/Entity]]: | |||
* Transport belt connectable entities must collide with [[Types/CollisionMask#Layers|"transport-belt-layer"]]. | |||
* Transport belt connectable entities must have [[Types/CollisionMask#Collision_options|collision mask]] that collides with itself. | |||
* Transport belt connectable entities cannot have collision mask that collides only with tiles (must collide with entities in some way). | |||
* Transport belt connectable entities must have collision box of an appropriate minimal size, they should occupy more than half of every tile the entity covers. | |||
* Transport belt connectable entities cannot have the [[Types/EntityPrototypeFlags#.22placeable-off-grid.22|"placeable-off-grid"]] flag specified. |
Latest revision as of 14:13, 8 April 2022
Prototype definitions » PrototypeBase » Prototype/Entity » Prototype/EntityWithHealth » Prototype/EntityWithOwner » Prototype/TransportBeltConnectable
Abstract class that anything that is a belt or can connect to belts uses.
Extensions
- Prototype/LinkedBelt linked-belt
- Prototype/Loader1x1 loader-1x1
- Prototype/Loader1x2 loader
- Prototype/Splitter splitter
- Prototype/TransportBelt transport-belt
- Prototype/UndergroundBelt underground-belt
Mandatory properties
This prototype inherits all the properties from Prototype/EntityWithOwner.
speed
Type: double
The speed of the belt (since 0.17): speed × 480 = x Items/second
The raw value is expressed as the number of tiles traveled by each item on the belt per tick, relative to the belt's maximum density - e.g. x items/second ÷ (4 items/lane × 2 lanes/belt × 60 ticks/second) = <speed> belts/tick
where a "belt" is the size of one tile. See Transport_belts/Physics for more details.
Must be a positive non-infinite number. The number is a fixed point number with 8 bits reserved for decimal precision, meaning the smallest value step is 1/2^8 = 0.00390625.
Optional properties
animation_speed_coefficient
Type: double
Default: 1
belt_animation_set
Type: table
Either this, or all of the properties below this one have to be present.
Table with the following properties:
- animation_set - RotatedAnimation - Mandatory.
- east_index - uint8 - Optional. - Default: 1
- west_index - uint8 - Optional. - Default: 2
- north_index - uint8 - Optional. - Default: 3
- south_index - uint8 - Optional. - Default: 4
- starting_south_index - uint8 - Optional. - Default: 13
- ending_south_index - uint8 - Optional. - Default: 14
- starting_west_index - uint8 - Optional. - Default: 15
- ending_west_index - uint8 - Optional. - Default: 16
- starting_north_index - uint8 - Optional. - Default: 17
- ending_north_index - uint8 - Optional. - Default: 18
- starting_east_index - uint8 - Optional. - Default: 19
- ending_east_index - uint8 - Optional. - Default: 20
- ending_patch - Sprite4Way - Optional.
- ends_with_stopper - bool - Optional. - Default: false
belt_horizontal
Type: Animation
Mandatory if belt_animation_set
is not present.
belt_vertical
Type: Animation
Mandatory if belt_animation_set
is not present.
ending_top
Type: Animation
Mandatory if belt_animation_set
is not present.
ending_bottom
Type: Animation
Mandatory if belt_animation_set
is not present.
ending_side
Type: Animation
Mandatory if belt_animation_set
is not present.
starting_top
Type: Animation
Mandatory if belt_animation_set
is not present.
starting_bottom
Type: Animation
Mandatory if belt_animation_set
is not present.
starting_side
Type: Animation
Mandatory if belt_animation_set
is not present.
ending_patch
Type: Sprite4Way
Always optional. Only read if belt_animation_set
is not present.
ends_with_stopper
Type: bool
Default: false
Mandatory values
Transport belt connectables have additional requirements for the properties inherited from Prototype/Entity:
- Transport belt connectable entities must collide with "transport-belt-layer".
- Transport belt connectable entities must have collision mask that collides with itself.
- Transport belt connectable entities cannot have collision mask that collides only with tiles (must collide with entities in some way).
- Transport belt connectable entities must have collision box of an appropriate minimal size, they should occupy more than half of every tile the entity covers.
- Transport belt connectable entities cannot have the "placeable-off-grid" flag specified.