Prototype/StorageTank: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(0.16)
(Updated styling of prototype doc migration note)
 
(11 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== Basics ==
<div class="stub"><p>'''The prototype docs have moved to a new website with an improved format.''' This documentation page can now be found here: [https://lua-api.factorio.com/latest/prototypes/StorageTankPrototype.html https://lua-api.factorio.com/latest/prototypes/StorageTankPrototype.html]
A [[storage tank]]. Based on [[Prototype/EntityWithHealth]].


== Mandatory properties ==
</p><p>This wiki page is no longer updated and '''will be removed at some point in the future''', so please update your browser bookmarks or other links that sent you here. If you'd like to contribute to the new docs, you can leave your feedback [https://forums.factorio.com/viewforum.php?f=233 on the forums].</p></div>
This prototype inherits all the properties from [[Prototype/EntityWithHealth]].


=== fluid_box ===
'''Type''': [[Types/FluidBox]]


=== window_bounding_box ===
'''Type''': [[Types/BoundingBox]]


=== pictures ===
{{Prototype parent|Prototype/EntityWithOwner}}
==== picture ====
A [[storage tank]].
'''Type''': [[Types/Sprite4Way]]


==== window_background ====
{{Prototype TOC|storage-tank}}
'''Type''': [[Types/Sprite]]


==== fluid_background ====
== Mandatory properties ==
'''Type''': [[Types/Sprite]]
This prototype inherits all the properties from [[Prototype/EntityWithOwner]].


==== flow_sprite ====
{{Prototype property|fluid_box|[[Types/FluidBox|FluidBox]]}}
'''Type''': [[Types/Sprite]]


==== gas_flow ====
{{Prototype property|window_bounding_box|[[Types/BoundingBox|BoundingBox]]}}
'''Type''': [[Types/Animation]]
The location of the window showing the contents. Note that for window_background the width and height are determined by the sprite and window_bounding_box only determines the drawing location. For fluid_background the width is determined by the sprite and the height and drawing location are determined by window_bounding_box.


=== flow_length_in_ticks ===
{{Prototype property|pictures|[[Types/table|table]]}}
'''Type''': [[Types/uint32]]
Table with the following mandatory members:
* picture - [[Types/Sprite4Way|Sprite4Way]]
* window_background - [[Types/Sprite|Sprite]]
* fluid_background - [[Types/Sprite|Sprite]]
* flow_sprite - [[Types/Sprite|Sprite]]
* gas_flow - [[Types/Animation|Animation]]


{{Prototype property|flow_length_in_ticks|[[Types/uint32|uint32]]}}
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 ==


=== two_direction_only ===
{{Prototype property|two_direction_only|[[Types/bool|bool]]|false|optional=true}}
'''Type''': [[Types/bool]]


'''Default''': false
{{Prototype property|circuit_wire_max_distance|[[Types/double|double]]|0|optional=true}}


=== circuit_wire_max_distance ===
{{Prototype property|draw_copper_wires|[[Types/bool|bool]]|true|optional=true}}
'''Type''': [[Types/double]]


'''Default''': 0
{{Prototype property|draw_circuit_wires|[[Types/bool|bool]]|true|optional=true}}


=== circuit_wire_connection_points ===
{{Prototype property|circuit_wire_connection_points|[[Types/table|table]] of [[Types/WireConnectionPoint|WireConnectionPoint]]|optional=true}}
'''Type''': [[Types/table]] of [[Types/WireConnectionPoint]]
Mandatory if circuit_wire_max_distance  > 0.


{{Prototype property|circuit_connector_sprites|[[Types/table|table]] of [[Types/CircuitConnectorSprites|CircuitConnectorSprites]]|optional=true}}
Mandatory if circuit_wire_max_distance  > 0.
Mandatory if circuit_wire_max_distance  > 0.


=== circuit_connector_sprites ===
{{Prototype property|scale_info_icons|[[Types/bool|bool]]|true|optional=true}}
'''Type''': [[Types/table]] of [[Types/CircuitConnectorSprites]]
If the icons of fluids shown in alt-mode should be scaled to the storage tank's size.
 
Mandatory if circuit_wire_max_distance  > 0.

Latest revision as of 10:43, 21 September 2023

The prototype docs have moved to a new website with an improved format. This documentation page can now be found here: https://lua-api.factorio.com/latest/prototypes/StorageTankPrototype.html

This wiki page is no longer updated and will be removed at some point in the future, so please update your browser bookmarks or other links that sent you here. If you'd like to contribute to the new docs, you can leave your feedback on the forums.


Prototype definitions » PrototypeBase » Prototype/Entity » Prototype/EntityWithHealth » Prototype/EntityWithOwner » Prototype/StorageTank


A storage tank.


Prototype/StorageTank — storage-tank
flow_length_in_ticks::uint32
fluid_box::FluidBox
pictures::table
window_bounding_box::BoundingBox
circuit_connector_sprites::table of CircuitConnectorSprites (optional)
circuit_wire_connection_points::table of WireConnectionPoint (optional)
circuit_wire_max_distance::double (optional)
draw_circuit_wires::bool (optional)
draw_copper_wires::bool (optional)
scale_info_icons::bool (optional)
two_direction_only::bool (optional)
Inherited from Prototype/EntityWithOwner
allow_run_time_change_of_is_military_target::bool (optional)
is_military_target::bool (optional)
Inherited from Prototype/EntityWithHealth
alert_when_damaged::bool (optional)
attack_reaction::AttackReaction (optional)
corpse::string or table of strings (optional)
create_ghost_on_death::bool (optional)
damaged_trigger_effect::TriggerEffect (optional)
dying_explosion::ExplosionDefinition or table of ExplosionDefinition (optional)
dying_trigger_effect::TriggerEffect (optional)
healing_per_tick::float (optional)
hide_resistances::bool (optional)
integration_patch::Sprite4Way (optional)
integration_patch_render_layer::RenderLayer (optional)
loot::Loot (optional)
max_health::float (optional)
random_corpse_variation::bool (optional)
repair_sound::Sound (optional)
repair_speed_modifier::float (optional)
resistances::Resistances (optional)
Inherited from Prototype/Entity
icons, icon, icon_size (IconSpecification)::IconSpecification
additional_pastable_entities::table of string (optional)
alert_icon_scale::float (optional)
alert_icon_shift::vector (optional)
allow_copy_paste::bool (optional)
autoplace::AutoplaceSpecification (optional)
build_base_evolution_requirement::double (optional)
build_grid_size::uint8 (optional)
build_sound::Sound (optional)
close_sound::Sound (optional)
collision_box::BoundingBox (optional)
collision_mask::CollisionMask (optional)
created_effect::Trigger (optional)
created_smoke::CreateTrivialSmokeEffectItem (optional)
drawing_box::BoundingBox (optional)
emissions_per_second::double (optional)
enemy_map_color::Color (optional)
fast_replaceable_group::string (optional)
flags::EntityPrototypeFlags (optional)
friendly_map_color::Color (optional)
hit_visualization_box::BoundingBox (optional)
map_color::Color (optional)
map_generator_bounding_box::BoundingBox (optional)
minable::MinableProperties (optional)
mined_sound::Sound (optional)
mining_sound::Sound (optional)
next_upgrade::string (optional)
open_sound::Sound (optional)
placeable_by::ItemToPlace or table of ItemToPlace (optional)
protected_from_tile_building::bool (optional)
radius_visualisation_specification::RadiusVisualisationSpecification (optional)
remains_when_mined::string or table of string (optional)
remove_decoratives::string (optional)
rotated_sound::Sound (optional)
selectable_in_game::bool (optional)
selection_box::BoundingBox (optional)
selection_priority::uint8 (optional)
shooting_cursor_size::double (optional)
sticker_box::BoundingBox (optional)
subgroup::string (optional)
tile_height::uint32 (optional)
tile_width::uint32 (optional)
trigger_target_mask::TriggerTargetMask (optional)
vehicle_impact_sound::Sound (optional)
water_reflection::WaterReflectionDefinition (optional)
working_sound::WorkingSound (optional)
Inherited from PrototypeBase
name::string
type::string
localised_description::LocalisedString (optional)
localised_name::LocalisedString (optional)
order::Order (optional)

Mandatory properties

This prototype inherits all the properties from Prototype/EntityWithOwner.

fluid_box

Type: FluidBox

window_bounding_box

Type: BoundingBox
The location of the window showing the contents. Note that for window_background the width and height are determined by the sprite and window_bounding_box only determines the drawing location. For fluid_background the width is determined by the sprite and the height and drawing location are determined by window_bounding_box.

pictures

Type: table
Table with the following mandatory members:

flow_length_in_ticks

Type: 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: bool
Default: false

circuit_wire_max_distance

Type: double
Default: 0

draw_copper_wires

Type: bool
Default: true

draw_circuit_wires

Type: bool
Default: true

circuit_wire_connection_points

Type: table of WireConnectionPoint
Mandatory if circuit_wire_max_distance > 0.

circuit_connector_sprites

Type: table of CircuitConnectorSprites
Mandatory if circuit_wire_max_distance > 0.

scale_info_icons

Type: bool
Default: true
If the icons of fluids shown in alt-mode should be scaled to the storage tank's size.