LuaTrain
A train. Trains are a sequence of connected rolling stocks -- locomotives and wagons.
Get the amount of a particular item stored in the train.
Get a mapping of the train's inventory.
Remove some items from the train.
Insert a stack into the train.
Clear all items in this train.
Checks if the path is invalid and tries to re-path if it isn't.
Get the amount of a particular fluid stored in the train.
Gets a mapping of the train's fluid inventory.
Remove some fluid from the train.
Inserts the given fluid into the first available location in this train.
Clears all fluids in this train.
Go to the station specified by the index in the train's schedule.
When true
, the train is explicitly controlled by the player or script.
Current max speed when moving forward, depends on locomotive prototype and fuel.
Current max speed when moving backwards, depends on locomotive prototype and fuel.
The rolling stocks this train is composed of, with the numbering starting at the front of the train.
Arrays of locomotives.
The cargo carriages the train contains.
The fluid carriages the train contains.
This train's current schedule, if any.
This train's current state.
The rail at the front end of the train, if any.
The front stock of this train, if any.
The back stock of this train, if any.
The destination rail this train is currently pathing to, if any.
The destination train stop this train is currently pathing to, if any.
The player passengers on the train
The riding state of this train.
The players killed by this train.
The total number of kills by this train.
The path this train is using, if any.
The class name of this object.
get_item_count(item?)
→
uint
Get the amount of a particular item stored in the train.
Item name to count. If not given, counts all items.
remove_item(stack)
→
uint
Remove some items from the train.
The amount and type of items to remove
Number of items actually removed.
recalculate_path(force?)
→
boolean
get_fluid_count(fluid?)
→
double
Get the amount of a particular fluid stored in the train.
Fluid name to count. If not given, counts all fluids.
remove_fluid(fluid)
→
double
insert_fluid(fluid)
→
double
get_rails()
→
array[LuaEntity]
Gets all rails under the train.
help()
→
string
All methods and properties that this object supports.
manual_mode
:: boolean
[Read/Write]
When true
, the train is explicitly controlled by the player or script. When false
, the train moves autonomously according to its schedule.
speed
:: double
[Read/Write]
Current speed.
Changing the speed of the train is potentially an unsafe operation because train uses the speed for its internal calculations of break distances, etc.
max_forward_speed
:: double
[Read]
Current max speed when moving forward, depends on locomotive prototype and fuel.
max_backward_speed
:: double
[Read]
Current max speed when moving backwards, depends on locomotive prototype and fuel.
weight
:: double
[Read]
The weight of this train.
carriages
:: array[LuaEntity]
[Read]
The rolling stocks this train is composed of, with the numbering starting at the front of the train.
locomotives
:: dictionary[string → array[LuaEntity]]
[Read]
Arrays of locomotives. The result is two arrays, indexed by "front_movers"
and "back_movers"
containing the locomotives. E.g. {front_movers={loco1, loco2}, back_movers={loco3}}
.
cargo_wagons
:: array[LuaEntity]
[Read]
The cargo carriages the train contains.
fluid_wagons
:: array[LuaEntity]
[Read]
The fluid carriages the train contains.
schedule
:: TrainSchedule?
[Read/Write]
This train's current schedule, if any. Set to nil
to clear.
The schedule can't be changed by modifying the returned table. Instead, changes must be made by assigning a new table to this attribute.
state
:: defines.train_state
[Read]
This train's current state.
front_rail
:: LuaEntity?
[Read]
The rail at the front end of the train, if any.
back_rail
:: LuaEntity?
[Read]
The rail at the back end of the train, if any.
rail_direction_from_front_rail
:: defines.rail_direction
[Read]
rail_direction_from_back_rail
:: defines.rail_direction
[Read]
front_stock
:: LuaEntity?
[Read]
The front stock of this train, if any. The front of the train is in the direction that a majority of locomotives are pointing in. If it's a tie, the North and West directions take precedence.
back_stock
:: LuaEntity?
[Read]
The back stock of this train, if any. The back of the train is at the opposite end of the front.
station
:: LuaEntity?
[Read]
The train stop this train is stopped at, if any.
has_path
:: boolean
[Read]
If this train has a path.
path_end_rail
:: LuaEntity?
[Read]
The destination rail this train is currently pathing to, if any.
path_end_stop
:: LuaEntity?
[Read]
The destination train stop this train is currently pathing to, if any.
id
:: uint
[Read]
The unique train ID.
passengers
:: array[LuaPlayer]
[Read]
The player passengers on the train
This does not index using player index. See LuaPlayer::index on each player instance for the player index.
riding_state
:: RidingState
[Read]
The riding state of this train.
killed_players
:: dictionary[uint → uint]
[Read]
The players killed by this train.
The keys are the player indices, the values are how often this train killed that player.
kill_count
:: uint
[Read]
The total number of kills by this train.
path
:: LuaRailPath?
[Read]
The path this train is using, if any.
signal
:: LuaEntity?
[Read]
The signal this train is arriving or waiting at, if any.
valid
:: boolean
[Read]
Is this object valid? This Lua object holds a reference to an object within the game engine. It is possible that the game-engine object is removed whilst a mod still holds the corresponding Lua object. If that happens, the object becomes invalid, i.e. this attribute will be false
. Mods are advised to check for object validity if any change to the game state might have occurred between the creation of the Lua object and its access.
object_name
:: string
[Read]
The class name of this object. Available even when valid
is false. For LuaStruct objects it may also be suffixed with a dotted path to a member of the struct.