Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Call nodeupdate on the entire blast zone
This will make sand and gravel blocks on top of TNT actually fly
in the air.

  https://youtu.be/4omndVZijLc
  • Loading branch information
sofar authored and paramat committed Apr 16, 2016
1 parent 8114c3d commit a2d4e57
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions mods/tnt/init.lua
Expand Up @@ -247,6 +247,19 @@ local function tnt_explode(pos, radius, ignore_protection, ignore_on_blast)
vm:update_map()
vm:update_liquids()

-- call nodeupdate for everything within 1.5x blast radius
for z = -radius * 1.5, radius * 1.5 do
for x = -radius * 1.5, radius * 1.5 do
for y = -radius * 1.5, radius * 1.5 do
local s = vector.add(pos, {x = x, y = y, z = z})
local r = vector.distance(pos, s)
if r / radius < 1.4 then
nodeupdate(s)
end
end
end
end

for _, data in ipairs(on_blast_queue) do
local dist = math.max(1, vector.distance(data.pos, pos))
local intensity = (radius * radius) / (dist * dist)
Expand Down

0 comments on commit a2d4e57

Please sign in to comment.