Fix a bug that occured when using a receptor placed directly next to a

gate.
We need to call a changesignal even if the gate/other effector is still
connected to a power source in a way.
This commit is contained in:
Jeija 2013-01-09 16:56:25 +01:00
parent 17579a6aa1
commit 841bc70b97
2 changed files with 7 additions and 3 deletions

@ -94,8 +94,12 @@ function mesecon:receptor_off(pos, rules)
for _, rule in ipairs(rules) do for _, rule in ipairs(rules) do
local np = mesecon:addPosRule(pos, rule) local np = mesecon:addPosRule(pos, rule)
local link, rulename = mesecon:rules_link(pos, np, rules) local link, rulename = mesecon:rules_link(pos, np, rules)
if link and not mesecon:connected_to_receptor(np) then if link then
if not mesecon:connected_to_receptor(np) then
mesecon:turnoff(np, rulename) mesecon:turnoff(np, rulename)
else
mesecon:changesignal(np, minetest.env:get_node(np), rulename)
end
end end
end end
end end

@ -99,7 +99,7 @@ gates = {
{name = "xor" , inputnumber = 2}} {name = "xor" , inputnumber = 2}}
local onoff, drop, nodename, description, groups local onoff, drop, nodename, description, groups
for i, gate in ipairs(gates) do for _, gate in ipairs(gates) do
if gate.inputnumber == 1 then if gate.inputnumber == 1 then
get_rules = gate_get_input_rules_oneinput get_rules = gate_get_input_rules_oneinput
elseif gate.inputnumber == 2 then elseif gate.inputnumber == 2 then