diff --git a/technic/doc/api.md b/technic/doc/api.md index 3343f11..4fcbd4e 100644 --- a/technic/doc/api.md +++ b/technic/doc/api.md @@ -136,10 +136,15 @@ Additional definition fields: * Specifies how the tool wear level is handled. Available modes: * `"mechanical_wear"`: represents physical damage * `"technic_RE_charge"`: represents electrical charge -* `.technic_run(pos, node)` - * This function is currently used to update the node. +* `.technic_run = function(pos, node) ...` + * This callback is used to update the node. Modders have to manually change the information about supply etc. in the node metadata. +* `.technic_disabled_machine_name = "string"` + * Specifies the machine's node name to use when it's not connected connected to a network +* `.technic_on_disable = function(pos, node) ...` + * This callback is run when the machine is no longer connected to a technic-powered network. + ## Node Metadata fields Nodes connected to the network will have one or more of these parameters as meta diff --git a/technic/machines/switching_station.lua b/technic/machines/switching_station.lua index 56a0db0..f262ce3 100644 --- a/technic/machines/switching_station.lua +++ b/technic/machines/switching_station.lua @@ -465,16 +465,17 @@ minetest.register_abm({ for tier, machines in pairs(technic.machines) do if machines[node.name] and switching_station_timeout_count(pos, tier) then local nodedef = minetest.registered_nodes[node.name] - if nodedef and nodedef.technic_disabled_machine_name then - node.name = nodedef.technic_disabled_machine_name - minetest.swap_node(pos, node) - elseif nodedef and nodedef.technic_on_disable then - nodedef.technic_on_disable(pos, node) - end if nodedef then local meta = minetest.get_meta(pos) meta:set_string("infotext", S("%s Has No Network"):format(nodedef.description)) end + if nodedef and nodedef.technic_disabled_machine_name then + node.name = nodedef.technic_disabled_machine_name + minetest.swap_node(pos, node) + end + if nodedef and nodedef.technic_on_disable then + nodedef.technic_on_disable(pos, node) + end end end end,