summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeija <norrepli@gmail.com>2013-01-09 16:56:25 +0100
committerJeija <norrepli@gmail.com>2013-01-09 16:56:25 +0100
commit841bc70b97e237477b0dd9ba36fd9cd307daf581 (patch)
tree73cf0ce33fdbff460796fa776b0009dfdfc8e894
parent17579a6aa139d306780bcb2556b74dde667c0697 (diff)
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.
-rw-r--r--mesecons/init.lua8
-rw-r--r--mesecons_gates/init.lua2
2 files changed, 7 insertions, 3 deletions
diff --git a/mesecons/init.lua b/mesecons/init.lua
index 011c96f..50ed4ca 100644
--- a/mesecons/init.lua
+++ b/mesecons/init.lua
@@ -94,8 +94,12 @@ function mesecon:receptor_off(pos, rules)
for _, rule in ipairs(rules) do
local np = mesecon:addPosRule(pos, rule)
local link, rulename = mesecon:rules_link(pos, np, rules)
- if link and not mesecon:connected_to_receptor(np) then
- mesecon:turnoff(np, rulename)
+ if link then
+ if not mesecon:connected_to_receptor(np) then
+ mesecon:turnoff(np, rulename)
+ else
+ mesecon:changesignal(np, minetest.env:get_node(np), rulename)
+ end
end
end
end
diff --git a/mesecons_gates/init.lua b/mesecons_gates/init.lua
index f49da0b..0e3d934 100644
--- a/mesecons_gates/init.lua
+++ b/mesecons_gates/init.lua
@@ -99,7 +99,7 @@ gates = {
{name = "xor" , inputnumber = 2}}
local onoff, drop, nodename, description, groups
-for i, gate in ipairs(gates) do
+for _, gate in ipairs(gates) do
if gate.inputnumber == 1 then
get_rules = gate_get_input_rules_oneinput
elseif gate.inputnumber == 2 then