112 lines
2.5 KiB
Lua
112 lines
2.5 KiB
Lua
--[[
|
|
Mod Gestor para Minetest
|
|
Gestor v1.0 Copyright (C) 2016 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/>.
|
|
|
|
Menu Principal (Painel do gestor)
|
|
]]
|
|
|
|
-- Tradutor de texto
|
|
local S = gestor.S
|
|
|
|
-- Abas registradas
|
|
gestor.abas = {}
|
|
|
|
-- Registrar aba
|
|
local botoes_abas = {
|
|
"0,1;3,1", -- 1
|
|
"0,2;3,1", -- 2
|
|
"0,3;3,1", -- 3
|
|
"0,4;3,1", -- 4
|
|
"0,5;3,1", -- 5
|
|
"0,6;3,1", -- 6
|
|
"0,7;3,1", -- 7
|
|
"0,8;3,1", -- 8
|
|
"0,9;3,1", -- 9
|
|
}
|
|
gestor.registrar_aba = function(name, def)
|
|
gestor.abas[name] = def
|
|
gestor.abas[name].formspec_button = "button["..botoes_abas[1]..";"..name..";"..def.titulo.."]"
|
|
table.remove(botoes_abas, 1)
|
|
end
|
|
|
|
-- Abrir Menu principal
|
|
gestor.menu_principal = function(name)
|
|
local player = minetest.get_player_by_name(name)
|
|
|
|
local formspec = "size[14,11]"
|
|
..default.gui_bg
|
|
..default.gui_bg_img
|
|
.."label[0,0;"..S("Gestor Administrativo do Servidor").."]"
|
|
|
|
|
|
-- Verifica aba em acesso
|
|
local aba_atual = player:get_attribute("gestor_aba")
|
|
if aba_atual == nil then
|
|
aba_atual = "inicio"
|
|
player:set_attribute("gestor_aba", aba_atual)
|
|
end
|
|
|
|
-- Botoes de abas
|
|
for name_aba,def in pairs(gestor.abas) do
|
|
formspec = formspec..def.formspec_button
|
|
end
|
|
|
|
--
|
|
-- Gerando Abas
|
|
--
|
|
|
|
if aba_atual ~= "inicio" then
|
|
|
|
-- Gerar formspec
|
|
formspec = formspec .. gestor.abas[aba_atual].get_formspec(name)
|
|
|
|
else
|
|
formspec = formspec.."image[5.5,3;6,6;gestor.png]"
|
|
end
|
|
|
|
-- Exibir tela
|
|
minetest.show_formspec(name, "gestor:menu_principal", formspec)
|
|
end
|
|
|
|
|
|
-- Receptor de campos
|
|
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|
|
|
-- Verifica aba em acesso
|
|
local aba_atual = player:get_attribute("gestor_aba")
|
|
if aba_atual == nil then
|
|
aba_atual = "inicio"
|
|
player:set_attribute("gestor_aba", aba_atual)
|
|
end
|
|
|
|
-- Menu Principal
|
|
if formname == "gestor:menu_principal" then
|
|
local name = player:get_player_name()
|
|
|
|
-- Alternar aba
|
|
for name_aba,dados in pairs(gestor.abas) do
|
|
if fields[name_aba] then
|
|
-- Gerar formspec
|
|
player:set_attribute("gestor_aba", name_aba)
|
|
gestor.menu_principal(name)
|
|
return
|
|
end
|
|
end
|
|
|
|
-- Retornos para a aba registrada
|
|
if aba_atual ~= "inicio" then
|
|
|
|
-- Retorno
|
|
gestor.abas[aba_atual].on_receive_fields(player, fields)
|
|
return
|
|
end
|
|
|
|
end
|
|
|
|
end)
|
|
|