summaryrefslogtreecommitdiff
path: root/helpers.lua
diff options
context:
space:
mode:
Diffstat (limited to 'helpers.lua')
-rw-r--r--helpers.lua56
1 files changed, 56 insertions, 0 deletions
diff --git a/helpers.lua b/helpers.lua
new file mode 100644
index 0000000..084f563
--- /dev/null
+++ b/helpers.lua
@@ -0,0 +1,56 @@
+function awards.tbv(tb,value,default)
+ if not default then
+ default = {}
+ end
+ if not tb or type(tb) ~= "table" then
+ if not value then
+ value = "[NULL]"
+ end
+ minetest.log("error", "awards.tbv - table "..dump(value).." is null, or not a table! Dump: "..dump(tb))
+ return
+ end
+ if not value then
+ error("[ERROR] awards.tbv was not used correctly!\n"..
+ "Value: '"..dump(value).."'\n"..
+ "Dump:"..dump(tb))
+ return
+ end
+ if not tb[value] then
+ tb[value] = default
+ end
+end
+
+function awards.assertPlayer(playern)
+ awards.tbv(awards.players, playern)
+ awards.tbv(awards.players[playern], "name", playern)
+ awards.tbv(awards.players[playern], "unlocked")
+ awards.tbv(awards.players[playern], "place")
+ awards.tbv(awards.players[playern], "count")
+ awards.tbv(awards.players[playern], "deaths", 0)
+ awards.tbv(awards.players[playern], "joins", 0)
+ awards.tbv(awards.players[playern], "chats", 0)
+end
+
+function awards.player(name)
+ return awards.players[name]
+end
+
+function awards._order_awards(name)
+ local done = {}
+ local retval = {}
+ local player = awards.player(name)
+ if player and player.unlocked then
+ for _,got in pairs(player.unlocked) do
+ if awards.def[got] then
+ done[got] = true
+ table.insert(retval,{name=got,got=true})
+ end
+ end
+ end
+ for _,def in pairs(awards.def) do
+ if not done[def.name] then
+ table.insert(retval,{name=def.name,got=false})
+ end
+ end
+ return retval
+end