From e6cef57661071a956d1c514f7a8acc97347b6b9f Mon Sep 17 00:00:00 2001 From: Auke Kok Date: Tue, 29 Mar 2016 07:39:46 -0700 Subject: [PATCH] TNT: Move timer start to on_create() for burning nodes. We add on_create() handlers for both burning TNT and burning gunpowder. Because gunpowder will explode TNT in 1 second, and not 4, we need to modify the 4 second timer after we make the TNT burning. Other mods can now place burning TNT that will by default explode after 4 seconds. --- mods/tnt/init.lua | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/mods/tnt/init.lua b/mods/tnt/init.lua index c447c715..bb1f144b 100644 --- a/mods/tnt/init.lua +++ b/mods/tnt/init.lua @@ -198,9 +198,7 @@ function tnt.burn(pos) minetest.set_node(pos, {name = name .. "_burning"}) minetest.get_node_timer(pos):start(1) elseif name == "tnt:gunpowder" then - minetest.sound_play("tnt_gunpowder_burning", {pos = pos, gain = 2}) minetest.set_node(pos, {name = "tnt:gunpowder_burning"}) - minetest.get_node_timer(pos):start(1) end end @@ -378,6 +376,10 @@ minetest.register_node("tnt:gunpowder_burning", { end, -- unaffected by explosions on_blast = function() end, + on_construct = function(pos) + minetest.sound_play("tnt_gunpowder_burning", {pos = pos, gain = 2}) + minetest.get_node_timer(pos):start(1) + end, }) minetest.register_abm({ @@ -426,9 +428,7 @@ function tnt.register_tnt(def) sounds = default.node_sound_wood_defaults(), on_punch = function(pos, node, puncher) if puncher:get_wielded_item():get_name() == "default:torch" then - minetest.sound_play("tnt_ignite", {pos = pos}) minetest.set_node(pos, {name = name .. "_burning"}) - minetest.get_node_timer(pos):start(4) end end, on_blast = function(pos, intensity) @@ -466,6 +466,10 @@ function tnt.register_tnt(def) end, -- unaffected by explosions on_blast = function() end, + on_construct = function(pos) + minetest.sound_play("tnt_ignite", {pos = pos}) + minetest.get_node_timer(pos):start(4) + end, }) end