Skip to content

Commit

Permalink
TNT: make tnt:boom visual a particle, and larger
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
sofar authored and paramat committed Apr 26, 2016
1 parent f62afa0 commit 5cd4b5a
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions mods/tnt/init.lua
Expand Up @@ -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)
Expand Down

0 comments on commit 5cd4b5a

Please sign in to comment.