From: Auke Kok Date: Tue, 26 Apr 2016 00:51:38 +0000 (-0700) Subject: TNT: make tnt:boom visual a particle, and larger X-Git-Tag: 0.4.14~14 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=5cd4b5a23192e3a4e16b87ecea4a732cea36115d;p=oweals%2Fminetest_game.git 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. --- 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)