diff --git a/formspecs.lua b/formspecs.lua new file mode 100644 index 0000000..de53adb --- /dev/null +++ b/formspecs.lua @@ -0,0 +1,25 @@ +local S = skins.S + +-- Show skin info +function skins.get_skin_info_formspec(skin) + local texture = skin:get_texture() + local m_name = skin:get_meta_string("name") + local m_author = skin:get_meta_string("author") + local m_license = skin:get_meta_string("license") + -- overview page + local formspec = "image[0,.75;1,2;"..skin:get_preview().."]" + if texture then + formspec = formspec.."label[6,.5;"..S("Raw texture")..":]" + .."image[6,1;2,1;"..skin:get_texture().."]" + end + if m_name ~= "" then + formspec = formspec.."label[2,.5;"..S("Name")..": "..minetest.formspec_escape(m_name).."]" + end + if m_author ~= "" then + formspec = formspec.."label[2,1;"..S("Author")..": "..minetest.formspec_escape(m_author).."]" + end + if m_license ~= "" then + formspec = formspec.."label[2,1.5;"..S("License")..": "..minetest.formspec_escape(m_license).."]" + end + return formspec +end diff --git a/init.lua b/init.lua index 37331e0..32a2205 100644 --- a/init.lua +++ b/init.lua @@ -9,9 +9,18 @@ skins = {} skins.modpath = minetest.get_modpath(minetest.get_current_modname()) skins.default = "character" +local S +if minetest.get_modpath("intllib") then + skins.S = intllib.Getter() +else + skins.S = function(s) return s end +end + + dofile(skins.modpath.."/skin_meta_api.lua") dofile(skins.modpath.."/api.lua") dofile(skins.modpath.."/skinlist.lua") +dofile(skins.modpath.."/formspecs.lua") dofile(skins.modpath.."/chatcommands.lua") -- Unified inventory page/integration if minetest.get_modpath("unified_inventory") then diff --git a/sfinv_page.lua b/sfinv_page.lua index 1d63163..ab9cb3c 100644 --- a/sfinv_page.lua +++ b/sfinv_page.lua @@ -1,33 +1,10 @@ -local S -if minetest.get_modpath("intllib") then - S = intllib.Getter() -else - S = function(s) return s end -end +local S = skins.S -- generate the current formspec local function get_formspec(player, context) local name = player:get_player_name() local skin = skins.get_player_skin(player) - local texture = skin:get_texture() - local m_name = skin:get_meta_string("name") - local m_author = skin:get_meta_string("author") - local m_license = skin:get_meta_string("license") - -- overview page - local formspec = "image[0,.75;1,2;"..skin:get_preview().."]" - if texture then - formspec = formspec.."label[6,.5;"..S("Raw texture")..":]" - .."image[6,1;2,1;"..skin:get_texture().."]" - end - if m_name ~= "" then - formspec = formspec.."label[2,.5;"..S("Name")..": "..minetest.formspec_escape(m_name).."]" - end - if m_author ~= "" then - formspec = formspec.."label[2,1;"..S("Author")..": "..minetest.formspec_escape(m_author).."]" - end - if m_license ~= "" then - formspec = formspec.."label[2,1.5;"..S("License")..": "..minetest.formspec_escape(m_license).."]" - end + local formspec = skins.get_skin_info_formspec(skin) local page = 1 if context.skins_page then diff --git a/unified_inventory_page.lua b/unified_inventory_page.lua index ebac196..5a581d5 100644 --- a/unified_inventory_page.lua +++ b/unified_inventory_page.lua @@ -1,38 +1,14 @@ -local S -if minetest.get_modpath("intllib") then - S = intllib.Getter() -else - S = function(s) return s end -end +local S = skins.S local dropdown_values = {} local skins_reftab = {} local skins_list = skins.get_skinlist_for_player() --public only unified_inventory.register_page("skins", { get_formspec = function(player) - local name = player:get_player_name() local skin = skins.get_player_skin(player) - local texture = skin:get_texture() - local m_name = skin:get_meta_string("name") - local m_author = skin:get_meta_string("author") - local m_license = skin:get_meta_string("license") - local formspec = "background[0.06,0.99;7.92,7.52;ui_misc_form.png]".."image[0,.75;1,2;"..skin:get_preview().."]" - if texture then - formspec=formspec.."label[6,.5;"..S("Raw texture")..":]" - .."image[6,1;2,1;"..texture.."]" - end - if m_name ~= "" then - formspec = formspec.."label[2,.5;"..S("Name")..": "..minetest.formspec_escape(m_name).."]" - end - if m_author ~= "" then - formspec = formspec.."label[2,1;"..S("Author")..": "..minetest.formspec_escape(m_author).."]" - end - if m_license ~= "" then - formspec = formspec.."label[2,1.5;"..S("License")..": "..minetest.formspec_escape(m_license).."]" - end - local page = skin:get_meta("inv_page") or 1 - formspec = formspec .. "button[.75,3;6.5,.5;skins_page$"..page..";"..S("Change").."]" + local formspec = "background[0.06,0.99;7.92,7.52;ui_misc_form.png]"..skins.get_skin_info_formspec(skin).. + "button[.75,3;6.5,.5;skins_page$"..page..";"..S("Change").."]" return {formspec=formspec} end, })