Pressure plates : fix set_node being called twice + some other fixes

master
Jean-Patrick Guerrero 2016-03-04 13:26:21 +01:00
parent cd8d90f244
commit 21cf911db0
1 changed files with 9 additions and 2 deletions

View File

@ -6,11 +6,17 @@ local function door_toggle(pos_actuator, pos_door, player)
local actuator = minetest.get_node(pos_actuator)
local door = doors.get(pos_door)
minetest.set_node(pos_actuator, {name=actuator.name:gsub("_off", "_on"), param2=actuator.param2})
if actuator.name:sub(-4) == "_off" then
minetest.set_node(pos_actuator,
{name=actuator.name:gsub("_off", "_on"), param2=actuator.param2})
end
door:open(player)
minetest.after(2, function()
minetest.set_node(pos_actuator, {name=actuator.name, param2=actuator.param2})
if minetest.get_node(pos_actuator).name:sub(-3) == "_on" then
minetest.set_node(pos_actuator,
{name=actuator.name, param2=actuator.param2})
end
door:close(player)
end)
end
@ -32,6 +38,7 @@ function plate.timer(pos)
for i = 1, #doors do
door_toggle(pos, doors[i], player)
end
break
end
end
return true