minetest-3d_armor/3d_armor_ui/init.lua

59 lines
2.1 KiB
Lua

-- support for i18n
local S = armor_i18n.gettext
local F = minetest.formspec_escape
local has_technic = minetest.get_modpath("technic") ~= nil
if not minetest.global_exists("unified_inventory") then
minetest.log("warning", S("3d_armor_ui: Mod loaded but unused."))
return
end
if unified_inventory.sfinv_compat_layer then
return
end
armor:register_on_update(function(player)
local name = player:get_player_name()
if unified_inventory.current_page[name] == "armor" then
unified_inventory.set_inventory_formspec(player, "armor")
end
end)
unified_inventory.register_button("armor", {
type = "image",
image = "inventory_plus_armor.png",
tooltip = S("3d Armor")
})
unified_inventory.register_page("armor", {
get_formspec = function(player, perplayer_formspec)
local fy = perplayer_formspec.formspec_y
local name = player:get_player_name()
if armor.def[name].init_time == 0 then
return {formspec="label[0,0;"..F(S("Armor not initialized!")).."]"}
end
local formspec = "background[0.06,"..fy..";7.92,7.52;3d_armor_ui_form.png]"..
"label[0,0;"..F(S("Armor")).."]"..
"list[detached:"..name.."_armor;armor;0,"..fy..";2,3;]"..
"image[2.5,"..(fy - 0.25)..";2,4;"..armor.textures[name].preview.."]"..
"label[5.0,"..(fy + 0.0)..";"..F(S("Level"))..": "..armor.def[name].level.."]"..
"label[5.0,"..(fy + 0.4)..";"..F(S("Heal"))..": "..armor.def[name].heal.."]"..
"label[5.0,"..(fy + 1.6)..";"..F(S("Speed"))..": "..armor.def[name].speed.."]"..
"label[5.0,"..(fy + 2)..";"..F(S("Jump"))..": "..armor.def[name].jump.."]"..
"label[5.0,"..(fy + 2.4)..";"..F(S("Gravity"))..": "..armor.def[name].gravity.."]"..
"listring[current_player;main]"..
"listring[detached:"..name.."_armor;armor]"
if armor.config.fire_protect then
formspec = formspec.."label[5.0,"..(fy + 0.8)..";"..
F(S("Fire"))..": "..armor.def[name].fire.."]"
end
if has_technic then
formspec = formspec.."label[5.0,"..(fy + 1.2)..";"..
F(S("Radiation"))..": "..armor.def[name].groups["radiation"].."]"
end
return {formspec=formspec}
end,
})
minetest.log("action", "[3d_armor_ui] loaded.")