PyuTestCore.create_explosion = function (pos, range, rm_pos, dmg, creator) 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 for _, v in pairs(minetest.get_objects_inside_radius(pos, range)) do if v ~= nil and v ~= creator then v:set_hp(v:get_hp() - dmg) 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 * 2, 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