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:
|
* Specifies how the tool wear level is handled. Available modes:
|
||||||
* `"mechanical_wear"`: represents physical damage
|
* `"mechanical_wear"`: represents physical damage
|
||||||
* `"technic_RE_charge"`: represents electrical charge
|
* `"technic_RE_charge"`: represents electrical charge
|
||||||
* `<itemdef>.technic_run(pos, node)`
|
* `<itemdef>.technic_run = function(pos, node) ...`
|
||||||
* This function is currently used to update the node.
|
* This callback is used to update the node.
|
||||||
Modders have to manually change the information about supply etc. in the
|
Modders have to manually change the information about supply etc. in the
|
||||||
node metadata.
|
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
|
## Node Metadata fields
|
||||||
Nodes connected to the network will have one or more of these parameters as meta
|
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
|
for tier, machines in pairs(technic.machines) do
|
||||||
if machines[node.name] and switching_station_timeout_count(pos, tier) then
|
if machines[node.name] and switching_station_timeout_count(pos, tier) then
|
||||||
local nodedef = minetest.registered_nodes[node.name]
|
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
|
if nodedef then
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
meta:set_string("infotext", S("%s Has No Network"):format(nodedef.description))
|
meta:set_string("infotext", S("%s Has No Network"):format(nodedef.description))
|
||||||
end
|
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
|
end
|
||||||
end,
|
end,
|
||||||
|
Loading…
Reference in New Issue
Block a user