mirror of
https://github.com/minetest-mods/technic.git
synced 2024-12-30 17:37:32 +01:00
Add technic_on_disable callback (#592)
This adds a new callback to trigger when the machine is no longer powered by the technic power grid. Also allows mods to override the infotext if needed.
This commit is contained in:
parent
1c219487d3
commit
140701c99e
@ -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
|
||||
* `<itemdef>.technic_run(pos, node)`
|
||||
* This function is currently used to update the node.
|
||||
* `<itemdef>.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.
|
||||
* `<itemdef>.technic_disabled_machine_name = "string"`
|
||||
* Specifies the machine's node name to use when it's not connected connected to a network
|
||||
* `<itemdef>.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
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user