Sergei Mozhaisky 1151ec6953 initial commit
2019-11-15 11:34:13 +00:00

107 lines
2.9 KiB
Lua

--[[
Mod Sunos para Minetest
Copyright (C) 2018 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/>.
Fundamento para colocação de Casa Comunal
]]
-- Tradução de strings
local S = sunos.S
-- Verificar se pode construir e envontra vila
local verificar_terreno = function(pos, dist)
-- Encontrar vila ativa
local vila = sunos.encontrar_vila(pos, 25)
if not vila then
return S("Nenhuma vila habitavel encontrada")
end
-- Verificar casa comunal ja existente
if sunos.bd.verif("vila_"..vila, "comunal") == true then
return S("Ja existe @1 nessa vila", S("Casa Comunal"))
end
-- Variaveis auxiliares
local largura = 13
-- Verifica se está muito perto de outras estruturas atravez de areas protegidas
for x=-1, 1 do
for y=-1, 1 do
for z=-1, 1 do
if minetest.is_protected({x=pos.x+((dist+2)*x), y=pos.y+((8*y)+7), z=pos.z+((dist+2)*z)}, "") == true then
return S("Muito perto de estruturas protegidas")
end
end
end
end
-- Verificar população minima
if sunos.verif_nivel(sunos.bd.pegar("vila_"..vila, "pop_total"), sunos.estruturas.comunal.var.niveis) == 0 then
return S("A vila precisa ter habitantes")
end
local r = sunos.verificar_area_para_fundamento(pos, dist)
if r ~= true then
return r
end
return true, vila
end
-- Fundamento de casa comunal
--[[
Esse é o node usado para construir uma casa comunal
]]
minetest.register_node("sunos:fundamento_comunal", {
description = S("Fundamento de Casa Comunal dos Sunos"),
tiles = {"default_tree_top.png^sunos_fundamento.png", "default_tree_top.png", "default_tree.png"},
inventory_image = "sunos_fundamento_fundo_inv.png^sunos_fundamento_comunal_inv.png",
wield_image = "sunos_fundamento_estrutura_namao.png^sunos_fundamento_comunal_namao.png",
paramtype2 = "facedir",
is_ground_content = false,
groups = {choppy = 2, oddly_breakable_by_hand = 1},
sounds = default.node_sound_wood_defaults(),
stack_max = 1,
-- Colocar uma casa comunal
on_place = function(itemstack, placer, pointed_thing)
local pos = pointed_thing.under
local r, vila = verificar_terreno(pos, 6)
if r == true then
-- Coloca rua em torno
sunos.colocar_rua(pos, 6)
-- Colocar fundamento step
sunos.colocar_fundamento_step(pos, {
tipo = "comunal",
dist = 6,
vila = vila,
dias = 1,
schem = "nivel_1",
rotat = sunos.pegar_rotat(),
})
-- Retorna mensagem de montagem concluida
minetest.chat_send_player(placer:get_player_name(), S("Construindo @1", S("Casa Comunal")))
itemstack:take_item()
return itemstack
else
-- Mostra area necessaria
sunos.criar_caixa_de_area(pointed_thing.under, 6+2)
-- Retorna mensagem de falha
minetest.chat_send_player(placer:get_player_name(), r)
return itemstack
end
end,
})