From 5cd4b5a23192e3a4e16b87ecea4a732cea36115d Mon Sep 17 00:00:00 2001 From: Auke Kok Date: Mon, 25 Apr 2016 17:51:38 -0700 Subject: [PATCH] TNT: make tnt:boom visual a particle, and larger We reuse the tnt:boom texture for a particle that is added by the on_construct() of tnt:boom, and has a short expiry time (0.2sec). It is 3 nodes larged, centered on the explosion. We then make tnt:boom airlike so it doesn't have a texture, and it's the thing that emits lots of light (we could even make it exist a bit longer). The nice thing about particles is that the client is less susceptible to lag and will always remove them as fast as possible, so this makes the visual more constant and responsive. --- mods/tnt/init.lua | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/mods/tnt/init.lua b/mods/tnt/init.lua index 3ef8a844..4330c4fc 100644 --- a/mods/tnt/init.lua +++ b/mods/tnt/init.lua @@ -309,14 +309,24 @@ function tnt.boom(pos, def) end minetest.register_node("tnt:boom", { - drawtype = "plantlike", - tiles = {"tnt_boom.png"}, + drawtype = "airlike", light_source = default.LIGHT_MAX, walkable = false, drop = "", groups = {dig_immediate = 3}, on_construct = function(pos) - minetest.get_node_timer(pos):start(0.5) + minetest.add_particle({ + pos = pos, + velocity = vector.new(), + acceleration = vector.new(), + expirationtime = 0.4, + size = 30, + collisiondetection = false, + vertical = false, + texture = "tnt_boom.png", + playername = nil, + }) + minetest.get_node_timer(pos):start(0.4) end, on_timer = function(pos, elapsed) minetest.remove_node(pos)