summaryrefslogtreecommitdiff
path: root/mesecons_pressureplates
diff options
context:
space:
mode:
Diffstat (limited to 'mesecons_pressureplates')
-rw-r--r--mesecons_pressureplates/init.lua7
1 files changed, 5 insertions, 2 deletions
diff --git a/mesecons_pressureplates/init.lua b/mesecons_pressureplates/init.lua
index 68c9efa..87b3bb9 100644
--- a/mesecons_pressureplates/init.lua
+++ b/mesecons_pressureplates/init.lua
@@ -17,12 +17,15 @@ pp_on_timer = function (pos, elapsed)
if not ppspec then return end
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
minetest.env:add_node(pos, {name = ppspec.offstate})
mesecon:receptor_off(pos)
-- 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
for k, obj in pairs(objs) do
local objpos = obj:getpos()
@@ -30,7 +33,7 @@ pp_on_timer = function (pos, elapsed)
minetest.env:add_node(pos, {name=ppspec.onstate})
mesecon:receptor_on(pos)
-- 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