forked from minetest/minetest_game
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
This commit is contained in:
parent
8114c3dbab
commit
a2d4e57716
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue
Block a user