From: Auke Kok Date: Mon, 25 Jan 2016 07:48:38 +0000 (-0800) Subject: TNT: add some depth to the explosion effect X-Git-Tag: 0.4.14~48 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=8556dd30e2a97474bf7fd33fddccef93878ad50d;p=oweals%2Fminetest_game.git TNT: add some depth to the explosion effect We add a dirt-like particle (drawn from scratch, uses some colors from default_dirt's palette) to spawn many particles that have collision enabled around the center of the blast. This has the effect of obscuring the center of the blast, as that is a painfully visible empty area when the explosion happens, as there's only a little spark. The dirt particles bounce around the walls and floor a bit, and disappear rapidly, well before the smoke particles disappear. This is a nice visual distraction that obscures the sudden appearance of the gaping hole, and makes it a whole lot more believable. --- diff --git a/mods/tnt/init.lua b/mods/tnt/init.lua index 576d3a8a..528aee02 100644 --- a/mods/tnt/init.lua +++ b/mods/tnt/init.lua @@ -162,6 +162,37 @@ local function add_effects(pos, radius) maxsize = 16, texture = "tnt_smoke.png", }) + + -- we just dropped some items. Look at the items entities and pick + -- one of them to use as texture + local texture = "tnt_blast.png" --fallback texture + local objs = minetest.get_objects_inside_radius(pos, 2) + for _, obj in pairs(objs) do + if obj and obj:get_luaentity() then + local def = ItemStack(obj:get_luaentity().itemstring):get_definition() + if def.tiles then + texture = def.tiles[1] + break + end + end + end + + minetest.add_particlespawner({ + amount = 64, + time = 0.1, + minpos = vector.subtract(pos, radius / 2), + maxpos = vector.add(pos, radius / 2), + minvel = {x=-3, y=0, z=-3}, + maxvel = {x=3, y=5, z=3}, + minacc = {x=0, y=-10, z=0}, + maxacc = {x=0, y=-10, z=0}, + minexptime = 0.8, + maxexptime = 2.0, + minsize = 2, + maxsize = 6, + texture = texture, + collisiondetection = true, + }) end local function burn(pos) diff --git a/mods/tnt/textures/tnt_blast.png b/mods/tnt/textures/tnt_blast.png new file mode 100644 index 00000000..bbb1096f Binary files /dev/null and b/mods/tnt/textures/tnt_blast.png differ