summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubenwardy <rubenwardy@gmail.com>2016-07-29 16:23:34 +0100
committerrubenwardy <rubenwardy@gmail.com>2016-07-29 16:23:34 +0100
commit92eaa5c876b71a9457b436122284e268a2aaa7db (patch)
tree4a3c42a6caae018aa9b480daa13e63d53a709b6d
parentf3f6af9e66a5d7e4c39c9533b07ac4d7858cc724 (diff)
Add awards.getFormspec()
-rw-r--r--api.lua126
1 files changed, 63 insertions, 63 deletions
diff --git a/api.lua b/api.lua
index 0fb2d17..7b0c65c 100644
--- a/api.lua
+++ b/api.lua
@@ -246,6 +246,68 @@ awards.give_achievement = awards.unlock
end
})]]--
+function awards.getFormspec(name, to, sid)
+ local formspec = "size[11,5]"
+ local listofawards = awards._order_awards(name)
+
+ -- Sidebar
+ if sid then
+ local item = listofawards[sid+0]
+ local def = awards.def[item.name]
+ if def and def.secret and not item.got then
+ formspec = formspec .. "label[1,2.75;Secret Award]"..
+ "image[1,0;3,3;unknown.png]"
+ if def and def.description then
+ formspec = formspec .. "label[0,3.25;Unlock this award to find out what it is]"
+ end
+ else
+ local title = item.name
+ if def and def.title then
+ title = def.title
+ end
+ local status = ""
+ if item.got then
+ status = " (got)"
+ end
+ formspec = formspec .. "label[1,2.75;" .. title .. status .. "]"
+ if def and def.icon then
+ formspec = formspec .. "image[1,0;3,3;" .. def.icon .. "]"
+ end
+ if def and def.description then
+ formspec = formspec .. "label[0,3.25;"..def.description.."]"
+ end
+ end
+ end
+
+ -- Create list box
+ formspec = formspec .. "textlist[4.75,0;6,5;awards;"
+ local first = true
+ for _,award in pairs(listofawards) do
+ local def = awards.def[award.name]
+ if def then
+ if not first then
+ formspec = formspec .. ","
+ end
+ first = false
+
+ if def.secret and not award.got then
+ formspec = formspec .. "#ACACACSecret Award"
+ else
+ local title = award.name
+ if def and def.title then
+ title = def.title
+ end
+ if award.got then
+ formspec = formspec .. minetest.formspec_escape(title)
+ else
+ formspec = formspec .. "#ACACAC".. minetest.formspec_escape(title)
+ end
+ end
+ end
+ end
+ return formspec .. ";"..sid.."]"
+end
+
function awards.show_to(name, to, sid, text)
if name == "" or name == nil then
name = to
@@ -280,70 +342,8 @@ function awards.show_to(name, to, sid, text)
if sid == nil or sid < 1 then
sid = 1
end
- local formspec = "size[11,5]"
- local listofawards = awards._order_awards(name)
-
- -- Sidebar
- if sid then
- local item = listofawards[sid+0]
- local def = awards.def[item.name]
- if def and def.secret and not item.got then
- formspec = formspec .. "label[1,2.75;Secret Award]"..
- "image[1,0;3,3;unknown.png]"
- if def and def.description then
- formspec = formspec .. "label[0,3.25;Unlock this award to find out what it is]"
- end
- else
- local title = item.name
- if def and def.title then
- title = def.title
- end
- local status = ""
- if item.got then
- status = " (got)"
- end
- local icon = ""
- if def and def.icon then
- icon = def.icon
- end
- formspec = formspec .. "label[1,2.75;"..title..status.."]"..
- "image[1,0;3,3;"..icon.."]"
- if def and def.description then
- formspec = formspec .. "label[0,3.25;"..def.description.."]"
- end
- end
- end
-
- -- Create list box
- formspec = formspec .. "textlist[4.75,0;6,5;awards;"
- local first = true
- for _,award in pairs(listofawards) do
- local def = awards.def[award.name]
- if def then
- if not first then
- formspec = formspec .. ","
- end
- first = false
-
- if def.secret and not award.got then
- formspec = formspec .. "#ACACACSecret Award"
- else
- local title = award.name
- if def and def.title then
- title = def.title
- end
- if award.got then
- formspec = formspec .. minetest.formspec_escape(title)
- else
- formspec = formspec .. "#ACACAC".. minetest.formspec_escape(title)
- end
- end
- end
- end
- formspec = formspec .. ";"..sid.."]"
-
-- Show formspec to user
- minetest.show_formspec(to,"awards:awards",formspec)
+ minetest.show_formspec(to,"awards:awards", awards.getFormspec(name, to, sid))
end
end
awards.showto = awards.show_to