From 36a6419481599c5b5ae2b43697722108fbc1d63d Mon Sep 17 00:00:00 2001 From: DS Date: Sun, 3 Sep 2017 20:27:31 +0200 Subject: Fix active button staying on forever (#355) --- mesecons_button/init.lua | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'mesecons_button') diff --git a/mesecons_button/init.lua b/mesecons_button/init.lua index 11c328c..c67c149 100644 --- a/mesecons_button/init.lua +++ b/mesecons_button/init.lua @@ -4,12 +4,13 @@ mesecon.button_turnoff = function (pos) local node = minetest.get_node(pos) - if node.name=="mesecons_button:button_on" then --has not been dug - minetest.swap_node(pos, {name = "mesecons_button:button_off", param2=node.param2}) - minetest.sound_play("mesecons_button_pop", {pos=pos}) - local rules = mesecon.rules.buttonlike_get(node) - mesecon.receptor_off(pos, rules) + if node.name ~= "mesecons_button:button_on" then -- has been dug + return end + minetest.swap_node(pos, {name = "mesecons_button:button_off", param2 = node.param2}) + minetest.sound_play("mesecons_button_pop", {pos = pos}) + local rules = mesecon.rules.buttonlike_get(node) + mesecon.receptor_off(pos, rules) end minetest.register_node("mesecons_button:button_off", { @@ -45,7 +46,7 @@ minetest.register_node("mesecons_button:button_off", { minetest.swap_node(pos, {name = "mesecons_button:button_on", param2=node.param2}) mesecon.receptor_on(pos, mesecon.rules.buttonlike_get(node)) minetest.sound_play("mesecons_button_push", {pos=pos}) - minetest.after(1, mesecon.button_turnoff, pos) + minetest.get_node_timer(pos):start(1) end, sounds = default.node_sound_stone_defaults(), mesecons = {receptor = { @@ -89,7 +90,8 @@ minetest.register_node("mesecons_button:button_on", { mesecons = {receptor = { state = mesecon.state.on, rules = mesecon.rules.buttonlike_get - }} + }}, + on_timer = mesecon.button_turnoff, }) minetest.register_craft({ -- cgit v1.2.3