24 lines
720 B
Text
24 lines
720 B
Text
|
Lua Automation - Passive Component API
|
||
|
|
||
|
Passive components are nodes that do not have code running in them. However, active components can query these and request actions from them. Examples:
|
||
|
Switches
|
||
|
Signals
|
||
|
Displays
|
||
|
Mesecon Transmitter
|
||
|
Those passive components can also be used inside interlocking systems.
|
||
|
|
||
|
All passive components have a table called 'advtrains' in their node definition and have the group 'save_in_at_nodedb' set, so they work in unloaded chunks.
|
||
|
Example for a switch:
|
||
|
advtrains = {
|
||
|
getstate = function(pos, node)
|
||
|
return "st"
|
||
|
end,
|
||
|
-- OR
|
||
|
getstate = "st",
|
||
|
|
||
|
setstate = function(pos, node, newstate)
|
||
|
if newstate=="cr" then
|
||
|
advtrains.ndb.swap_node(pos, <corresponding switch alt>)
|
||
|
end
|
||
|
end
|
||
|
}
|