43 lines
956 B
Lua
43 lines
956 B
Lua
PyuTestCore.create_explosion = function (pos, range, rm_pos)
|
|
if rm_pos then
|
|
minetest.remove_node(pos)
|
|
end
|
|
|
|
for dx = -range, range do
|
|
for dz = -range, range do
|
|
for dy = -range, range do
|
|
local npos = {x = pos.x + dx, y = pos.y + dy, z = pos.z + dz}
|
|
if minetest.get_node(npos).name == "pyutest_core:tnt" then
|
|
minetest.get_node_timer(npos):start(0.2)
|
|
else
|
|
minetest.dig_node(npos)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
local r = range
|
|
local minpos = {x = pos.x - r, y = pos.y - r, z = pos.z - r}
|
|
local maxpos = {x = pos.x + r, y = pos.y + r, z = pos.z + r}
|
|
|
|
minetest.add_particlespawner({
|
|
amount = range * 3,
|
|
time = 1,
|
|
minexptime = 1,
|
|
maxexptime = 1,
|
|
minsize = 32,
|
|
maxsize = 64,
|
|
|
|
collisiondetection = false,
|
|
texture = "blast.png",
|
|
|
|
minpos = minpos,
|
|
maxpos = maxpos,
|
|
})
|
|
|
|
minetest.sound_play("block_break", {
|
|
pos = pos,
|
|
gain = 1.5
|
|
})
|
|
end
|