mirror of
https://github.com/minetest-mods/mesecons.git
synced 2024-09-25 22:00:31 +02:00
Overheat gates only when output changes
This commit is contained in:
parent
1e5b485264
commit
535b5cca99
|
@ -23,18 +23,20 @@ local gate_get_input_rules_twoinputs = mesecon.horiz_rules_getter({
|
|||
local function set_gate(pos, node, state)
|
||||
local gate = minetest.registered_nodes[node.name]
|
||||
|
||||
local new_nodename = state and gate.onstate or gate.offstate
|
||||
minetest.swap_node(pos, {name = new_nodename, param2 = node.param2})
|
||||
if new_nodename ~= node.name then
|
||||
if mesecon.do_overheat(pos) then
|
||||
minetest.remove_node(pos)
|
||||
mesecon.receptor_off(pos, gate_get_output_rules(node))
|
||||
minetest.add_item(pos, gate.drop)
|
||||
elseif state then
|
||||
minetest.swap_node(pos, {name = gate.onstate, param2=node.param2})
|
||||
mesecon.receptor_on(pos, gate_get_output_rules(node))
|
||||
else
|
||||
minetest.swap_node(pos, {name = gate.offstate, param2=node.param2})
|
||||
mesecon.receptor_off(pos, gate_get_output_rules(node))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function update_gate(pos, node, link, newstate)
|
||||
local gate = minetest.registered_nodes[node.name]
|
||||
|
|
Loading…
Reference in New Issue
Block a user