Added tabs

master
debiankaios 2022-04-18 14:09:19 +02:00
parent 611118594e
commit aed0b3faa4
1 changed files with 42 additions and 14 deletions

View File

@ -77,6 +77,8 @@ local update_highscore = function()
end
end
-- Updater
local timer = 0
minetest.register_globalstep(function(dtime)
timer = timer + dtime;
@ -87,21 +89,47 @@ minetest.register_globalstep(function(dtime)
end
end)
-- Formspec
local function playerhighscore_lister()
local string = ""
local number = 1
for _,entry in pairs(xp_highscores.highscore) do
if rounding then
string = string..tostring(number)..". "..entry.name .. ": " .. round(entry.xp) .. ","
else
string = string..tostring(number)". "..entry.name .. ": " .. entry.xp .. ","
end
number = number + 1
end
return string, number
end
local function showxpform(pname, selected_idx, list)
string, number = playerhighscore_lister()
minetest.show_formspec(pname, "highscores:xp_highscores",
"size[8,9]"..
"tabheader[0,0;highscores_tab;" .. "Player Highscores,Top climber;"
.. tostring(selected_idx) .. ";true;false]"..
"table[1,1;6,7;highscores_table;"..string..";1]")
end
minetest.register_chatcommand("highscores", {
description = "show xp highscore",
func = function(caller)
local string = ""
local number = 1
for _,entry in pairs(xp_highscores.highscore) do
if rounding then
string = string..tostring(number)..". "..entry.name .. ": " .. round(entry.xp) .. ","
else
string = string..tostring(number)". "..entry.name .. ": " .. entry.xp .. ","
end
number = number + 1
end
minetest.show_formspec(caller, "highscores:xp_highscores",
"size[8,9]"..
"table[1,1;6,7;"..caller..";"..string..";1]")
func = function(pname)
showxpform(pname, 1)
end,
})
minetest.register_on_player_receive_fields(function(player, formname, fields)
if formname ~= "highscores:xp_highscores" then
return
end
local pname = player:get_player_name()
if fields.highscores_tab == "1" then
showxpform(pname, 1)
elseif fields.highscores_tab == "2" then
showxpform(pname, 2)
end
end)