terrenos/podar.lua

56 lines
1.4 KiB
Lua

--[[
Mod Terrenos para Minetest
Copyright (C) 2017 BrunoMine (https://github.com/BrunoMine)
Recebeste uma cópia da GNU Lesser General
Public License junto com esse software,
se não, veja em <http://www.gnu.org/licenses/>.
Podar terreno : remover folhas e arvore das laterais e em cima
]]
-- Nodes podáveis
local podaveis = {
"default:papyrus",
"default:tree",
"default:jungletree",
"default:pine_tree",
"default:acacia_tree",
"default:apple",
"default:cactus"
}
-- Nodes extras para os lados a serem podados
local largura_extra = 2
local altura_extra = 10
-- Podar terreno (remove partes de arvores de perto cima e lados do terreno)
terrenos.podar = function(pos1, pos2)
if pos1.x > pos2.x then -- Mantendo pos1 com o menor x
local aux = pos1.x
pos1.x = pos2.x
pos2.x = aux
end
if pos1.z > pos2.z then -- Mantendo pos1 com o menor z
local aux = pos1.z
pos1.z = pos2.z
pos2.z = aux
end
if pos1.y > pos2.y then -- Mantendo pos1 com o menor z
local aux = pos1.y
pos1.y = pos2.y
pos2.y = aux
end
-- Pega todos os nodes na area em volta do terreno
local nodes = minetest.find_nodes_in_area(
{x=pos1.x-largura_extra, y=pos1.y, z=pos1.z-largura_extra},
{x=pos2.x+largura_extra, y=pos2.y+altura_extra, z=pos2.z+largura_extra},
podaveis
)
-- Remove todos os nodes pegos
for i, pos in ipairs(nodes) do
minetest.remove_node(pos)
end
end