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;"
|
f = f .. "textlist[0.2,0.5;5.4,7.4;in_series;"
|
||||||
local boxes = db.series_get_boxes(id)
|
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
|
for k, box_id in pairs(boxes) do
|
||||||
-- TODO: color box depending on completed status
|
|
||||||
local bmeta = db.box_get_meta(box_id)
|
local bmeta = db.box_get_meta(box_id)
|
||||||
local bname = bmeta.meta.box_name or "[unnamed]"
|
local bname = bmeta.meta.box_name or "[unnamed]"
|
||||||
--f = f .. "#00FF00"
|
local color = "#c0c0c0"
|
||||||
f = f .. minetest.formspec_escape("[" .. k .. "] " .. bname)
|
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
|
if k ~= #boxes then
|
||||||
f = f .. ","
|
f = f .. ","
|
||||||
end
|
end
|
||||||
|
@ -278,6 +278,27 @@ function db.player_get_players()
|
|||||||
return players
|
return players
|
||||||
end
|
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)
|
function db.series_create(name)
|
||||||
assert(name ~= "")
|
assert(name ~= "")
|
||||||
local stmt = itb_db:prepare[[
|
local stmt = itb_db:prepare[[
|
||||||
|
Loading…
x
Reference in New Issue
Block a user