From 9308b951635486fdcbca3474e5f5e179be4748b1 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Mon, 1 Aug 2016 22:39:32 +0100 Subject: [PATCH] Add sfinv support --- api.lua | 9 +++++---- depends.txt | 1 + init.lua | 1 + sfinv.lua | 23 +++++++++++++++++++++++ 4 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 sfinv.lua diff --git a/api.lua b/api.lua index 2ca187f..5c25da9 100644 --- a/api.lua +++ b/api.lua @@ -299,7 +299,7 @@ awards.give_achievement = awards.unlock })]]-- function awards.getFormspec(name, to, sid) - local formspec = "size[11,5]" + local formspec = "" local listofawards = awards._order_awards(name) local playerdata = awards.players[name] @@ -338,8 +338,8 @@ function awards.getFormspec(name, to, sid) if perc > 1 then perc = 1 end - formspec = formspec .. "background[0,4.80;" .. barwidth ..",0.25;awards_progress_gray.png]" - formspec = formspec .. "background[0,4.80;" .. (barwidth * perc) ..",0.25;awards_progress_green.png]" + formspec = formspec .. "background[0,4.80;" .. barwidth ..",0.25;awards_progress_gray.png;false]" + formspec = formspec .. "background[0,4.80;" .. (barwidth * perc) ..",0.25;awards_progress_green.png;false]" if label then formspec = formspec .. "label[1.75,4.63;" .. label .. "]" end @@ -414,7 +414,8 @@ function awards.show_to(name, to, sid, text) sid = 1 end -- Show formspec to user - minetest.show_formspec(to,"awards:awards", awards.getFormspec(name, to, sid)) + minetest.show_formspec(to,"awards:awards", + "size[11,5]" .. awards.getFormspec(name, to, sid)) end end awards.showto = awards.show_to diff --git a/depends.txt b/depends.txt index dad55b5..cffd947 100644 --- a/depends.txt +++ b/depends.txt @@ -1,2 +1,3 @@ intllib? +sfinv? unified_inventory? diff --git a/init.lua b/init.lua index e6e029b..f7cf6e7 100644 --- a/init.lua +++ b/init.lua @@ -25,6 +25,7 @@ end dofile(minetest.get_modpath("awards").."/api.lua") dofile(minetest.get_modpath("awards").."/chat_commands.lua") +dofile(minetest.get_modpath("awards").."/sfinv.lua") dofile(minetest.get_modpath("awards").."/unified_inventory.lua") dofile(minetest.get_modpath("awards").."/triggers.lua") awards.set_intllib(S) diff --git a/sfinv.lua b/sfinv.lua new file mode 100644 index 0000000..b2f96c2 --- /dev/null +++ b/sfinv.lua @@ -0,0 +1,23 @@ +if minetest.get_modpath("sfinv") then + sfinv.register_page("awards:awards", { + title = "Awards", + on_enter = function(self, player, context) + context.awards_idx = 1 + end, + get = function(self, player, context) + local name = player:get_player_name() + return sfinv.make_formspec(player, context, + awards.getFormspec(name, name, context.awards_idx or 1), + false, "size[11,5]") + end, + on_player_receive_fields = function(self, player, context, fields) + if fields.awards then + local event = minetest.explode_textlist_event(fields.awards) + if event.type == "CHG" then + context.awards_idx = event.index + sfinv.set(player, context) + end + end + end + }) +end