Make series_enter_choice linear complexity instead of quadratic.

This commit is contained in:
Ekdohibs 2017-12-12 09:31:24 +01:00
parent fec7f4a25b
commit 7a57d6167f

View File

@ -116,15 +116,16 @@ local function series_enter_choice(player, 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)
local complete = {}
for _, v in ipairs(completed) do
complete[v] = true
end
for k, box_id in pairs(boxes) do
local bmeta = db.box_get_meta(box_id)
local bname = bmeta.meta.box_name or "[unnamed]"
local color = "#c0c0c0"
for _, v in ipairs(completed) do
if v == box_id then
color = "#00ff00"
break
end
if complete[box_id] then
color = "#00ff00"
end
f = f .. color
f = f .. minetest.formspec_escape("[" .. box_id .. "] " .. bname)