Factorio Runtime DocsVersion 1.1.110

ClassLuaFluidBox

An array of fluid boxes of an entity. Entities may contain more than one fluid box, and some can change the number of fluid boxes -- for instance, an assembling machine will change its number of fluid boxes depending on its active recipe. See Fluid.

Do note that reading from a LuaFluidBox creates a new table and writing will copy the given fields from the table into the engine's own fluid box structure. Therefore, the correct way to update a fluidbox of an entity is to read it first, modify the table, then write the modified table back. Directly accessing the returned table's attributes won't have the desired effect.

Example

-- Double the temperature of the fluid in entity's first fluid box.
fluid = entity.fluidbox[1]
fluid.temperature = fluid.temperature * 2
entity.fluidbox[1] = fluid

Members

get_prototype(index)  → LuaFluidBoxPrototype or array[LuaFluidBoxPrototype]

The prototype of this fluidbox index. [...]

The prototype of this fluidbox index. [...]

get_capacity(index)  → double

The capacity of the given fluidbox index.

The capacity of the given fluidbox index.

get_connections(index)  → array[LuaFluidBox]

The fluidboxes to which the fluidbox at the given index is connected.

The fluidboxes to which the fluidbox at the given index is connected.

get_pipe_connections(index)  → array[PipeConnection]

Get the fluid box's connections and associated data.

Get the fluid box's connections and associated data.

get_filter(index)  → FluidBoxFilter?

Get a fluid box filter

Get a fluid box filter

set_filter(index, filter)  → boolean

Set a fluid box filter. [...]

Set a fluid box filter. [...]

get_flow(index)  → double

Flow through the fluidbox in the last tick. [...]

Flow through the fluidbox in the last tick. [...]

get_locked_fluid(index)  → string?

Returns the fluid the fluidbox is locked onto.

Returns the fluid the fluidbox is locked onto.

get_fluid_system_id(index)  → uint?

Gets unique fluid system identifier of selected fluid box. [...]

Gets unique fluid system identifier of selected fluid box. [...]

get_fluid_system_contents(index)  → dictionary[string → uint]?

Gets counts of all fluids in the fluid system. [...]

Gets counts of all fluids in the fluid system. [...]

flush(index, fluid?)  → dictionary[string → float]

Flushes all fluid from this fluidbox and its fluid system.

Flushes all fluid from this fluidbox and its fluid system.

help()  → string

All methods and properties that this object supports.

All methods and properties that this object supports.

owner [R] :: LuaEntity

The entity that owns this fluidbox.

The entity that owns this fluidbox.

valid [R] :: boolean

Is this object valid? [...]

Is this object valid? [...]

object_name [R] :: string

The class name of this object. [...]

The class name of this object. [...]

[] (index) [R] :: Fluid?

Access, set or clear a fluid box. [...]

Access, set or clear a fluid box. [...]

# (length) [R] :: uint

Number of fluid boxes.

Number of fluid boxes.

Methods

get_prototype(index)  → LuaFluidBoxPrototype or array[LuaFluidBoxPrototype]

The prototype of this fluidbox index. If this is used on a fluidbox of a crafting machine which due to recipe was created by merging multiple prototypes, a table of prototypes that were merged will be returned instead

Parameters

index :: uint


get_capacity(index)  → double

The capacity of the given fluidbox index.

Parameters

index :: uint


get_connections(index)  → array[LuaFluidBox]

The fluidboxes to which the fluidbox at the given index is connected.

Parameters

index :: uint


get_pipe_connections(index)  → array[PipeConnection]

Get the fluid box's connections and associated data.

Parameters

index :: uint


get_filter(index)  → FluidBoxFilter?

Get a fluid box filter

Parameters

index :: uint

The index of the filter to get.

The index of the filter to get.

Return values

→ FluidBoxFilter?

The filter at the requested index, or nil if there isn't one.


set_filter(index, filter)  → boolean

Set a fluid box filter.

Some entities cannot have their fluidbox filter set, notably fluid wagons and crafting machines.

Parameters

index :: uint

The index of the filter to set.

The index of the filter to set.

filter :: FluidBoxFilterSpec or nil

The filter to set. Setting nil clears the filter.

The filter to set. Setting nil clears the filter.

Return values

→ boolean

Whether the filter was set successfully.


get_flow(index)  → double

Flow through the fluidbox in the last tick. It is the larger of in-flow and out-flow.

Fluid wagons do not track it and will return 0.

Parameters

index :: uint


get_locked_fluid(index)  → string?

Returns the fluid the fluidbox is locked onto.

Parameters

index :: uint

Return values

→ string?

nil if the fluidbox is not locked to any fluid.


get_fluid_system_id(index)  → uint?

Gets unique fluid system identifier of selected fluid box. May return nil for fluid wagon, fluid turret's internal buffer or a fluidbox which does not belong to a fluid system

Parameters

index :: uint


get_fluid_system_contents(index)  → dictionary[string → uint]?

Gets counts of all fluids in the fluid system. May return nil for fluid wagon, fluid turret's internal buffer, or a fluidbox which does not belong to a fluid system.

Parameters

index :: uint

Return values

→ dictionary[string → uint]?

The counts, indexed by fluid name.


flush(index, fluid?)  → dictionary[string → float]

Flushes all fluid from this fluidbox and its fluid system.

Parameters

index :: uint
fluid :: FluidIdentification?

If provided, only this fluid is flushed.

If provided, only this fluid is flushed.

Return values

→ dictionary[string → float]

The removed fluid.


help()  → string

All methods and properties that this object supports.

Attributes

owner :: LuaEntityRead

The entity that owns this fluidbox.


valid :: booleanRead

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 :: stringRead

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.

Operators

[] (index) :: Fluid?

Access, set or clear a fluid box. The index must always be in bounds (see LuaFluidBox::length_operator). New fluidboxes may not be added or removed using this operator.

Is nil if the given fluid box does not contain any fluid. Writing nil removes all fluid from the fluid box.


# (length) :: uint

Number of fluid boxes.

Classes

Events

Concepts

Defines