Prototype/StorageTank: Difference between revisions
(0.17) |
(→flow_length_in_ticks: Description) |
||
Line 27: | Line 27: | ||
Must be positive. | Must be positive. | ||
Used for determining the x position inside the flow_sprite when drawing the storage tank. Does not affect gameplay. | |||
The x position of the sprite will be <code>((game.tick % flow_length_in_ticks) ÷ flow_length_in_ticks) × (flow_sprite.width - 32)</code>. This means, that over flow_length_in_ticks ticks, the part of the flow_sprite that is drawn in-game is incrementally moved from most-left to most-right inside the actual sprite, that part always has a width of 32px. After flow_length_in_ticks, the part of the flow_sprite that is drawn will start from the left again. | |||
Diagram: | |||
<pre> | |||
Example state: | |||
[ { } ] | |||
[] <- flow_sprite | |||
{} <- the part that is drawn in-game, width is 32px | |||
This means: | |||
State at (tick % flow_length_in_ticks) == 0: | |||
[{ } ] | |||
State at (tick % flow_length_in_ticks) == (flow_length_in_ticks ÷ 2): | |||
[ { } ] | |||
State at (tick % flow_length_in_ticks) == (flow_length_in_ticks - 1): | |||
[ { }] | |||
</pre> | |||
== Optional properties == | == Optional properties == |
Revision as of 16:00, 24 April 2019
Basics
Prototype type: storage-tank
A storage tank. Based on Prototype/EntityWithHealth.
Mandatory properties
This prototype inherits all the properties from Prototype/EntityWithHealth.
fluid_box
Type: Types/FluidBox
window_bounding_box
Type: Types/BoundingBox
pictures
Type: Types/table
Table with the following mandatory members:
- picture - Types/Sprite4Way
- window_background - Types/Sprite
- fluid_background - Types/Sprite
- flow_sprite - Types/Sprite
- gas_flow - Types/Animation
flow_length_in_ticks
Type: Types/uint32
Must be positive.
Used for determining the x position inside the flow_sprite when drawing the storage tank. Does not affect gameplay.
The x position of the sprite will be ((game.tick % flow_length_in_ticks) ÷ flow_length_in_ticks) × (flow_sprite.width - 32)
. This means, that over flow_length_in_ticks ticks, the part of the flow_sprite that is drawn in-game is incrementally moved from most-left to most-right inside the actual sprite, that part always has a width of 32px. After flow_length_in_ticks, the part of the flow_sprite that is drawn will start from the left again.
Diagram:
Example state: [ { } ] [] <- flow_sprite {} <- the part that is drawn in-game, width is 32px This means: State at (tick % flow_length_in_ticks) == 0: [{ } ] State at (tick % flow_length_in_ticks) == (flow_length_in_ticks ÷ 2): [ { } ] State at (tick % flow_length_in_ticks) == (flow_length_in_ticks - 1): [ { }]
Optional properties
two_direction_only
Type: Types/bool
Default: false
circuit_wire_max_distance
Type: Types/double
Default: 0
draw_copper_wires
Type: Types/bool
Default: true
draw_circuit_wires
Type: Types/bool
Default: true
circuit_wire_connection_points
Type: Types/table of Types/WireConnectionPoint
Mandatory if circuit_wire_max_distance > 0.
circuit_connector_sprites
Type: Types/table of Types/CircuitConnectorSprites
Mandatory if circuit_wire_max_distance > 0.