Factorio API Docs

1.1.70 <>

Class LuaFluidBox

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
get_prototype(index)

The prototype of this fluidbox index.


get_capacity(index)
double

The capacity of the given fluidbox index.


→ array[LuaFluidBox]

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


get_filter(index)

Get a fluid box filter


set_filter(index, filter)
boolean

Set a fluid box filter.


get_flow(index)
double

Flow through the fluidbox in the last tick.


string?

Returns the fluid the fluidbox is locked onto


uint

Gets unique fluid system identifier of selected fluid box.


flush(index, fluid?)
→ dictionary[stringfloat]

Flushes all fluid from this fluidbox and its fluid system.


help()
string

All methods and properties that this object supports.


[R]

The entity that owns this fluidbox.


:: boolean
[R]

Is this object valid?


:: string
[R]

The class name of this object.


:: uint
[R]

Number of fluid boxes.


:: Fluid?
[R]

Access, set or clear a fluid box.

Methods

get_prototype (index) → LuaFluidBoxPrototype

The prototype of this fluidbox index.

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_filter (index) → FluidBoxFilter?

Get a fluid box filter

Parameters

index
:: uint

The index of the filter to get.

Return values

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


set_filter (index, filter) → boolean

Set a fluid box filter.

Parameters

index
:: uint

The index of the filter to set.


filter

The filter to set. Setting nil clears the filter.

Return values

:: boolean

Whether the filter was set successfully.

Note

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


get_flow (index) → double

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

Parameters

index
:: uint

Note

Fluid wagons do not track it and will return 0.


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

flush (index, fluid?) → dictionary[stringfloat]

Flushes all fluid from this fluidbox and its fluid system.

Parameters

index
:: uint

fluid

If provided, only this fluid is flushed.

Return values

:: dictionary[stringfloat]

The removed fluid.


help () → string

All methods and properties that this object supports.

Attributes

owner :: LuaEntity [Read]

The entity that owns this fluidbox.


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.

Operators

# (length) :: uint

Number of fluid boxes.


[] (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.

|<

Classes

Events

Concepts

Defines

Builtin types

>|