forked from minetest-mods/mesecons
Don't totally force deactivation of block two below the pressure plate if connected to a receptor
This commit is contained in:
parent
2848df007e
commit
e707afef1a
@ -17,12 +17,15 @@ pp_on_timer = function (pos, elapsed)
|
|||||||
if not ppspec then return end
|
if not ppspec then return end
|
||||||
|
|
||||||
local objs = minetest.env:get_objects_inside_radius(pos, 1)
|
local objs = minetest.env:get_objects_inside_radius(pos, 1)
|
||||||
|
local two_below = mesecon:addPosRule(pos, {x = 0, y = -2, z = 0})
|
||||||
|
|
||||||
if objs[1] == nil and node.name == ppspec.onstate then
|
if objs[1] == nil and node.name == ppspec.onstate then
|
||||||
minetest.env:add_node(pos, {name = ppspec.offstate})
|
minetest.env:add_node(pos, {name = ppspec.offstate})
|
||||||
mesecon:receptor_off(pos)
|
mesecon:receptor_off(pos)
|
||||||
-- force deactivation of mesecon two blocks below (hacky)
|
-- force deactivation of mesecon two blocks below (hacky)
|
||||||
mesecon:turnoff(mesecon:addPosRule(pos, {x = 0, y = -2, z = 0}))
|
if not mesecon:connected_to_receptor(two_below) then
|
||||||
|
mesecon:turnoff(two_below)
|
||||||
|
end
|
||||||
else
|
else
|
||||||
for k, obj in pairs(objs) do
|
for k, obj in pairs(objs) do
|
||||||
local objpos = obj:getpos()
|
local objpos = obj:getpos()
|
||||||
@ -30,7 +33,7 @@ pp_on_timer = function (pos, elapsed)
|
|||||||
minetest.env:add_node(pos, {name=ppspec.onstate})
|
minetest.env:add_node(pos, {name=ppspec.onstate})
|
||||||
mesecon:receptor_on(pos)
|
mesecon:receptor_on(pos)
|
||||||
-- force activation of mesecon two blocks below (hacky)
|
-- force activation of mesecon two blocks below (hacky)
|
||||||
mesecon:turnon(mesecon:addPosRule(pos, {x = 0, y = -2, z = 0}))
|
mesecon:turnon(two_below)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user