highscore table

master
BuckarooBanzay 2020-03-05 11:30:39 +01:00
parent 967ab4e1a3
commit 48993a7f38
2 changed files with 41 additions and 12 deletions

View File

@ -3,13 +3,12 @@ local FORMNAME = "epic_score.form_highscore_configure"
function epic_score.form_highscore_configure(pos, playername)
local meta = minetest.get_meta(pos)
local name = meta:get_string("name")
local topic = meta:get_string("topic")
-- TODO
local formspec = "size[8,2;]" ..
"label[0,0;Epic start block]" ..
"label[0,1;" .. name .. "]" ..
"button_exit[5.5,1;2,1;start;Start]"
"field[0,0;8,1;topic;Topic;" .. topic .. "]" ..
"button_exit[0,1;4,1;start;Start]" ..
"button_exit[4,1;4,1;show;Show]"
minetest.show_formspec(playername,
FORMNAME .. ";" .. minetest.pos_to_string(pos),
@ -28,13 +27,19 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
local pos = minetest.string_to_pos(parts[2])
if minetest.is_protected(pos, player:get_player_name()) then
-- not allowed
return
end
if fields.show then
-- show highscore
epic_score.form_highscore_view(pos, playername)
end
if fields.save then
print(pos) -- TODO
local meta = minetest.get_meta(pos)
meta:set_string("topic", fields.topic or "")
end
end)

View File

@ -3,13 +3,37 @@ local FORMNAME = "epic_score.form_highscore_view"
function epic_score.form_highscore_view(pos, playername)
local meta = minetest.get_meta(pos)
local name = meta:get_string("name")
local topic = meta:get_string("topic") or ""
local score_table = epic_score.get_score(topic)
local list = ""
-- render list items
for i, entry in ipairs(score_table) do
local color = "#FFFFFF"
if i == 1 then
-- gold
color = "#D4AF37"
elseif i == 2 then
-- silver
color = "#C0C0C0"
elseif i == 3 then
-- bronze
color = "#CD7F32"
end
list = list .. "," .. color .. "," .. entry.score .. "," .. entry.playername
end
local formspec = [[
size[16,12;]
label[0,0;Highscore]
button_exit[12,11;4,1;exit;Exit]
tablecolumns[color;text;text]
table[0,1;15.7,10;items;#999,Score,Playername]] .. list
-- TODO
local formspec = "size[8,2;]" ..
"label[0,0;Epic start block]" ..
"label[0,1;" .. name .. "]" ..
"button_exit[5.5,1;2,1;start;Start]"
minetest.show_formspec(playername,
FORMNAME .. ";" .. minetest.pos_to_string(pos),