Home

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.

Attributes

owner

The entity that owns this fluidbox.

valid

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

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.

Methods

get_prototype

LuaFluidBox.get_prototype(index: uint32) -> LuaFluidBoxPrototype | Array<LuaFluidBoxPrototype>

Call As

fluidBox.get_prototype(index)

Call Convention

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

Returns

get_capacity

LuaFluidBox.get_capacity(index: uint32) -> double

Call As

fluidBox.get_capacity(index)

Call Convention

The capacity of the given fluidbox segment.

Parameters

Returns

get_connections

LuaFluidBox.get_connections(index: uint32) -> Array<LuaFluidBox>

Call As

fluidBox.get_connections(index)

Call Convention

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

Parameters

Returns

get_pipe_connections

LuaFluidBox.get_pipe_connections(index: uint32) -> Array<PipeConnection>

Call As

fluidBox.get_pipe_connections(index)

Call Convention

Get the fluid box's connections and associated data.

Parameters

Returns

get_filter

LuaFluidBox.get_filter(index: uint32) -> FluidBoxFilter?

Call As

fluidBox.get_filter(index)

Call Convention

Get a fluid box filter

Parameters

Returns

set_filter

LuaFluidBox.set_filter(index: uint32, filter: FluidBoxFilterSpec | nil) -> boolean

Call As

fluidBox.set_filter(index, filter)

Call Convention

Set a fluid box filter.

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

Parameters

Returns

get_locked_fluid

LuaFluidBox.get_locked_fluid(index: uint32) -> string?

Call As

fluidBox.get_locked_fluid(index)

Call Convention

Returns the fluid the fluidbox is locked onto

Parameters

Returns

get_fluid_segment_id

LuaFluidBox.get_fluid_segment_id(index: uint32) -> uint32?

Call As

fluidBox.get_fluid_segment_id(index)

Call Convention

Gets the unique ID of the fluid segment this fluid box belongs to. May return nil for fluid wagon, fluid turret's internal buffer or a fluidbox which does not belong to a fluid segment.

Parameters

Returns

get_fluid_segment_contents

LuaFluidBox.get_fluid_segment_contents(index: uint32) -> Dict<string, uint32>?

Call As

fluidBox.get_fluid_segment_contents(index)

Call Convention

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

Note that this method only ever returns one fluid, since fluids can't be mixed anymore.

Parameters

Returns

get_fluid_segment_extent_bounding_box

LuaFluidBox.get_fluid_segment_extent_bounding_box(index: uint32) -> BoundingBox?

Call As

fluidBox.get_fluid_segment_extent_bounding_box(index)

Call Convention

Gets the current extent bounding box of the fluid segment this fluid box belongs to. May return nil for fluid wagon, fluid turret's internal buffer, or a fluidbox which does not belong to a fluid segment.

Parameters

Returns

flush

LuaFluidBox.flush(index: uint32, fluid?: FluidID) -> Dict<string, FluidAmount>

Call As

fluidBox.flush(index, fluid)

Call Convention

Flushes all fluid from this fluidbox and its fluid system.

Parameters

Returns

add_linked_connection

LuaFluidBox.add_linked_connection(this_linked_connection_id: uint32, other_entity: LuaEntity, other_linked_connection_id: uint32)

Call As

fluidBox.add_linked_connection(this_linked_connection_id, other_entity, other_linked_connection_id)

Call Convention

Registers a linked connection between this entity and other entity. Because entity may have multiple fluidboxes, each with multiple connections that could be linked, a unique value for this and other linked_connection_id may need to be given.

It may happen a linked connection is not established immediately due to crafting machines being possible to not have certain fluidboxes exposed at a given point in time, but once they appear (due to recipe changes that would use them) they will be linked. Linked connections are persisted as (this_entity, this_linked_connection_id, other_entity, other_linked_connection_id) so if a pipe connection definition's value of linked_connection_id changes existing connections may not restore correct connections.

Every fluidbox connection that was defined in prototypes as connection_type=="linked" may be linked to at most 1 other fluidbox. When trying to connect already used connection, previous connection will be removed.

Linked connections cannot go to the same entity even if they would be part of other fluidbox.

Parameters

remove_linked_connection

LuaFluidBox.remove_linked_connection(this_linked_connection_id: uint32)

Call As

fluidBox.remove_linked_connection(this_linked_connection_id)

Call Convention

Removes linked connection record. If connected, other end will be also removed.

Parameters

get_linked_connection

LuaFluidBox.get_linked_connection(this_linked_connection_id: uint32) -> LuaEntity?, uint32?

Call As

fluidBox.get_linked_connection(this_linked_connection_id)

Call Convention

Returns other end of a linked connection.

Parameters

Returns

get_linked_connections

LuaFluidBox.get_linked_connections() -> Array<FluidBoxConnectionRecord>

Call As

fluidBox.get_linked_connections()

Call Convention

Returns list of all linked connections registered for this entity.

Returns