Fix bad repeater updates when next to opaque block
parent
f4657f79f5
commit
01952b56fd
|
@ -482,9 +482,15 @@ function mesecon.turnoff(pos, link)
|
|||
-- Warning: A LOT of nodes need to be looked at for this to work
|
||||
for _, r in ipairs(mesecon.rule2meta(f.link, mesecon.rules.mcl_alldirs_spread)) do
|
||||
local np = vector.add(f.pos, r)
|
||||
if mesecon.is_receptor_on(mesecon.get_node_force(np).name) then
|
||||
local n = mesecon.get_node_force(np)
|
||||
if mesecon.is_receptor_on(n.name) then
|
||||
local receptorrules = mesecon.receptor_get_rules(n)
|
||||
for _, rr in pairs(receptorrules) do
|
||||
if vector.equals(mesecon.invertRule(rr), r) then
|
||||
return false
|
||||
end
|
||||
end
|
||||
end
|
||||
for _, l in ipairs(mesecon.rules_link_rule_all(f.pos, r)) do
|
||||
local nlink = table.copy(l)
|
||||
nlink.spread = false
|
||||
|
|
|
@ -84,7 +84,7 @@ mesecon.on_dignode = function(pos, node)
|
|||
local nnode = minetest.get_node(npos)
|
||||
if mesecon.is_conductor_on(nnode) then
|
||||
mesecon.receptor_off(npos, mesecon.conductor_get_rules(nnode))
|
||||
elseif mesecon.is_effector_on(nnode.name) then
|
||||
elseif mesecon.is_effector_on(nnode.name) and mesecon.is_powered(npos) == false then
|
||||
mesecon.changesignal(npos, nnode, nlink, mesecon.state.off, 1)
|
||||
mesecon.deactivate(npos, nnode, nlink, 1)
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue