local function disintigrate(pos, radius, node_name, user) local p1 = vector.subtract(pos, radius) local p2 = vector.add(pos, radius) local nodes = minetest.find_nodes_in_area(p1, p2, node_name) for _, node in pairs(nodes) do if not minetest.is_protected(node, user) then minetest.remove_node(node) end end end local nodes = {{'fun_caves:pyramid_1', 'default:sandstone_block'},} for _, node in pairs(nodes) do local node_name = node[1] local comp = node[2] or node_name local node_texture = minetest.registered_items[node_name].tiles if type(node_texture) == 'table' then node_texture = node_texture[1] end local newnode = fun_caves.clone_node(node_name) local _, d_name = node_name:match('(.*:)(.*)') local d_name_u = d_name:gsub("(%l)(%w*)", function(a,b) return string.upper(a)..b end) newnode.description = d_name_u.." Bomb" newnode.inventory_image = '[inventorycube{tnt_top.png{'..node_texture..'{tnt_side.png' newnode.on_punch = function(pos, node, puncher, pointed_thing) minetest.after(5, function() disintigrate(pos, 5, node_name, puncher) minetest.remove_node(pos) end) end minetest.register_node("fun_caves:"..d_name..'_bomb', newnode) minetest.register_craft({ output = "fun_caves:"..d_name..'_bomb', recipe = { {"", comp, ""}, {comp, "tnt:gunpowder", comp}, {"", comp, ""} } }) end