/tg/ Station 13 - Modules - TypesVar Details - Proc Details

circuit_datatype

A circuit datatype. Used to determine the datatype of a port and also handle any additional behaviour.

Vars

colorThe color of the port in the UI. Doesn't work with hex colours.
datatypeThe key. Used to identify the datatype. Should be a define.
datatype_flagsThe flags of the circuit datatype

Procs

can_receive_from_datatypeDetermines if a datatype is compatible with another port of a different type. Note: This is ALWAYS called on the input port, never on the output port. Inputs need to care about what types they're receiving, output ports don't have to care.
convert_valueReturns the value to be set for the port
datatype_ui_dataThe data to send to the UI attached to the port. Received by the type in FUNDAMENTAL_PORT_TYPES
handle_manual_inputWhen an input is manually set by a player. This is where extra sanitizing can happen. Will still call convert_value()
is_compatibleDetermines if a port is compatible with this datatype. This WILL throw a runtime if it returns false. This is for sanity checking and it should not return false unless under extraordinary circumstances or people fail to write proper code.
on_gainCalled when the datatype is given to a port.
on_lossCalled when the datatype is removed from a port.

Var Details

color

The color of the port in the UI. Doesn't work with hex colours.

datatype

The key. Used to identify the datatype. Should be a define.

datatype_flags

The flags of the circuit datatype

Proc Details

can_receive_from_datatype

Determines if a datatype is compatible with another port of a different type. Note: This is ALWAYS called on the input port, never on the output port. Inputs need to care about what types they're receiving, output ports don't have to care.

Arguments:

convert_value

Returns the value to be set for the port

Used for implicit conversions between outputs and inputs (e.g. number -> string) and applying/removing signals on inputs

datatype_ui_data

The data to send to the UI attached to the port. Received by the type in FUNDAMENTAL_PORT_TYPES

Arguments:

handle_manual_input

When an input is manually set by a player. This is where extra sanitizing can happen. Will still call convert_value()

Arguments:

is_compatible

Determines if a port is compatible with this datatype. This WILL throw a runtime if it returns false. This is for sanity checking and it should not return false unless under extraordinary circumstances or people fail to write proper code.

Arguments:

on_gain

Called when the datatype is given to a port.

Arguments:

on_loss

Called when the datatype is removed from a port.

Arguments: