Overheat gates only when output changes
This commit is contained in:
parent
1e5b485264
commit
535b5cca99
|
@ -23,16 +23,18 @@ local gate_get_input_rules_twoinputs = mesecon.horiz_rules_getter({
|
||||||
local function set_gate(pos, node, state)
|
local function set_gate(pos, node, state)
|
||||||
local gate = minetest.registered_nodes[node.name]
|
local gate = minetest.registered_nodes[node.name]
|
||||||
|
|
||||||
if mesecon.do_overheat(pos) then
|
local new_nodename = state and gate.onstate or gate.offstate
|
||||||
minetest.remove_node(pos)
|
minetest.swap_node(pos, {name = new_nodename, param2 = node.param2})
|
||||||
mesecon.receptor_off(pos, gate_get_output_rules(node))
|
if new_nodename ~= node.name then
|
||||||
minetest.add_item(pos, gate.drop)
|
if mesecon.do_overheat(pos) then
|
||||||
elseif state then
|
minetest.remove_node(pos)
|
||||||
minetest.swap_node(pos, {name = gate.onstate, param2=node.param2})
|
mesecon.receptor_off(pos, gate_get_output_rules(node))
|
||||||
mesecon.receptor_on(pos, gate_get_output_rules(node))
|
minetest.add_item(pos, gate.drop)
|
||||||
else
|
elseif state then
|
||||||
minetest.swap_node(pos, {name = gate.offstate, param2=node.param2})
|
mesecon.receptor_on(pos, gate_get_output_rules(node))
|
||||||
mesecon.receptor_off(pos, gate_get_output_rules(node))
|
else
|
||||||
|
mesecon.receptor_off(pos, gate_get_output_rules(node))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue