mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-11-25 03:51:05 +01:00
59 lines
1.5 KiB
Lua
59 lines
1.5 KiB
Lua
|
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], "craft")
|
||
|
awards.tbv(awards.players[playern], "eat")
|
||
|
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
|