Prototype/Rail: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(Created page with "== Basics == The base of both rail prototypes. Extends Prototype/EntityWithHealth. == Mandatory properties == This prototype inherits all the properties from Prototype/...")
 
(Updated styling of prototype doc migration note)
 
(14 intermediate revisions by 2 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/RailPrototype.html https://lua-api.factorio.com/latest/prototypes/RailPrototype.html]
The base of both rail prototypes. Extends [[Prototype/EntityWithHealth]].
 
</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>


== Mandatory properties ==
This prototype inherits all the properties from [[Prototype/EntityWithHealth]].


=== rail_category ===
'''Type''': [[Types/string]]


Name of a [[Prototype/RailCategory]].
{{Prototype parent|Prototype/EntityWithOwner}}
The abstract base of both rail prototypes.


=== bending_type ===
{{Prototype TOC|''abstract''}}
'''Type''': [[Types/string]]


Either "turn" or "straight", depending on the type of rail prototype.
== Extensions ==


=== pictures ===
* [[Prototype/CurvedRail]] '''curved-rail'''
'''Type''': [[Types/table]]
* [[Prototype/StraightRail]] '''straight-rail'''


== Mandatory properties ==
This prototype inherits all the properties from [[Prototype/EntityWithOwner]].
{{Prototype property|pictures|[[Types/table|table]]}}
Table with the following mandatory members:
Table with the following mandatory members:


* straight_rail_horizontal - [[Types/RailPieceLayers]]
* straight_rail_horizontal - [[Types/RailPieceLayers|RailPieceLayers]]
* straight_rail_vertical - [[Types/RailPieceLayers]]
* straight_rail_vertical - [[Types/RailPieceLayers|RailPieceLayers]]
* straight_rail_diagonal_left_top - [[Types/RailPieceLayers]]
* straight_rail_diagonal_left_top - [[Types/RailPieceLayers|RailPieceLayers]]
* straight_rail_diagonal_right_top - [[Types/RailPieceLayers]]
* straight_rail_diagonal_right_top - [[Types/RailPieceLayers|RailPieceLayers]]
* straight_rail_diagonal_right_bottom - [[Types/RailPieceLayers]]
* straight_rail_diagonal_right_bottom - [[Types/RailPieceLayers|RailPieceLayers]]
* straight_rail_diagonal_left_bottom - [[Types/RailPieceLayers]]
* straight_rail_diagonal_left_bottom - [[Types/RailPieceLayers|RailPieceLayers]]
* curved_rail_vertical_left_top - [[Types/RailPieceLayers]]
* curved_rail_vertical_left_top - [[Types/RailPieceLayers|RailPieceLayers]]
* curved_rail_vertical_right_top - [[Types/RailPieceLayers]]
* curved_rail_vertical_right_top - [[Types/RailPieceLayers|RailPieceLayers]]
* curved_rail_vertical_right_bottom - [[Types/RailPieceLayers]]
* curved_rail_vertical_right_bottom - [[Types/RailPieceLayers|RailPieceLayers]]
* curved_rail_vertical_left_bottom - [[Types/RailPieceLayers]]
* curved_rail_vertical_left_bottom - [[Types/RailPieceLayers|RailPieceLayers]]
* curved_rail_horizontal_left_top - [[Types/RailPieceLayers]]
* curved_rail_horizontal_left_top - [[Types/RailPieceLayers|RailPieceLayers]]
* curved_rail_horizontal_right_top - [[Types/RailPieceLayers]]
* curved_rail_horizontal_right_top - [[Types/RailPieceLayers|RailPieceLayers]]
* curved_rail_horizontal_right_bottom - [[Types/RailPieceLayers]]
* curved_rail_horizontal_right_bottom - [[Types/RailPieceLayers|RailPieceLayers]]
* curved_rail_horizontal_left_bottom - [[Types/RailPieceLayers]]
* curved_rail_horizontal_left_bottom - [[Types/RailPieceLayers|RailPieceLayers]]
* rail_endings - [[Types/Sprite8Way]]
* rail_endings - [[Types/Sprite8Way|Sprite8Way]]


== Optional properties ==
== Optional properties ==


=== secondary_collision_box ===
{{Prototype property|walking_sound|[[Types/Sound|Sound]]|optional=true}}
'''Type''': [[Types/BoundingBox]]
Sound played when a character walks over this rail.
 
== Mandatory values ==
All rail [[Prototype/Entity#collision_box|collision_box]]es are hardcoded and cannot be modified. The hardcoded values are:


'''Default''': Empty box
* straight_rail_primary_bounding_box = {-0.7, -0.99, 0.7, 0.99}
* diagonal_straight_rail_primary_bounding_box = {-0.65, -0.7, 0.65, 0.7}
* curved_rail_primary_bounding_box = {-0.75, -0.55, 0.75, 1.6}
* secondary_bounding_box = {-0.68, -2.7, 0.68, 2.7}


Mandatory if <code>bending_type</code> is "turn".
Furthermore, the [[Prototype/Entity#selection_box|selection_box]]es are automatically calculated from the bounding boxes, so effectively also hardcoded.

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/RailPrototype.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/Rail


The abstract base of both rail prototypes.


Prototype/Rail — abstract
pictures::table
walking_sound::Sound (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)

Extensions

Mandatory properties

This prototype inherits all the properties from Prototype/EntityWithOwner.

pictures

Type: table
Table with the following mandatory members:

Optional properties

walking_sound

Type: Sound
Sound played when a character walks over this rail.

Mandatory values

All rail collision_boxes are hardcoded and cannot be modified. The hardcoded values are:

  • straight_rail_primary_bounding_box = {-0.7, -0.99, 0.7, 0.99}
  • diagonal_straight_rail_primary_bounding_box = {-0.65, -0.7, 0.65, 0.7}
  • curved_rail_primary_bounding_box = {-0.75, -0.55, 0.75, 1.6}
  • secondary_bounding_box = {-0.68, -2.7, 0.68, 2.7}

Furthermore, the selection_boxes are automatically calculated from the bounding boxes, so effectively also hardcoded.