Color boxes in the random order selection formspec.
white/gray: not yet completed boxes green: completed boxes Display the box numbers, since the order numbers may be confusing.
This commit is contained in:
parent
0b106b1a34
commit
fec7f4a25b
@ -114,12 +114,20 @@ local function series_enter_choice(player, id)
|
||||
|
||||
f = f .. "textlist[0.2,0.5;5.4,7.4;in_series;"
|
||||
local boxes = db.series_get_boxes(id)
|
||||
local player_id = db.player_get_id(name)
|
||||
local completed = db.player_get_series_boxes(player_id, id)
|
||||
for k, box_id in pairs(boxes) do
|
||||
-- TODO: color box depending on completed status
|
||||
local bmeta = db.box_get_meta(box_id)
|
||||
local bname = bmeta.meta.box_name or "[unnamed]"
|
||||
--f = f .. "#00FF00"
|
||||
f = f .. minetest.formspec_escape("[" .. k .. "] " .. bname)
|
||||
local color = "#c0c0c0"
|
||||
for _, v in ipairs(completed) do
|
||||
if v == box_id then
|
||||
color = "#00ff00"
|
||||
break
|
||||
end
|
||||
end
|
||||
f = f .. color
|
||||
f = f .. minetest.formspec_escape("[" .. box_id .. "] " .. bname)
|
||||
if k ~= #boxes then
|
||||
f = f .. ","
|
||||
end
|
||||
|
@ -278,6 +278,27 @@ function db.player_get_players()
|
||||
return players
|
||||
end
|
||||
|
||||
function db.player_get_series_boxes(player_id, series_id)
|
||||
local stmt = itb_db:prepare[[
|
||||
SELECT box_id FROM points WHERE player_id=:player_id AND type="time" AND box_id
|
||||
IN (SELECT box_id FROM series_box WHERE series_id=:series_id)
|
||||
]]
|
||||
stmt:bind_names{
|
||||
player_id = player_id,
|
||||
series_id = series_id
|
||||
}
|
||||
local completed = {}
|
||||
local completed_count = 1
|
||||
for row in stmt:nrows() do
|
||||
completed[completed_count] = row.box_id
|
||||
completed_count = completed_count + 1
|
||||
end
|
||||
|
||||
stmt:finalize()
|
||||
|
||||
return completed
|
||||
end
|
||||
|
||||
function db.series_create(name)
|
||||
assert(name ~= "")
|
||||
local stmt = itb_db:prepare[[
|
||||
|
Loading…
x
Reference in New Issue
Block a user