fix(gui): maskiner der er faste på en anden mark vises ikke ved den valgte mark (hverken faste maskiner eller markflåden) — 'N maskiner er faste på andre marker (F22)' (v1.30.3.0)
This commit is contained in:
@@ -145,3 +145,27 @@ function ADFieldFleet.toggle(enabledIds, id)
|
||||
copy[id] = (not copy[id]) or nil
|
||||
return copy
|
||||
end
|
||||
|
||||
-- Til menuen: skjul maskiner der er faste på en ANDEN mark end den valgte. Returnerer synlige, antal
|
||||
-- skjulte og de marker de er faste på (sorteret). selectedFieldId nil = vis alle.
|
||||
function ADFieldFleet.visibleForField(rigs, selectedFieldId, rigIdsByField)
|
||||
if selectedFieldId == nil then return rigs, 0, {} end
|
||||
local ownerOf = {}
|
||||
for fieldId, ids in pairs(rigIdsByField or {}) do
|
||||
for _, id in ipairs(ids or {}) do ownerOf[id] = fieldId end
|
||||
end
|
||||
local visible, hidden, fieldSet = {}, 0, {}
|
||||
for _, rig in ipairs(rigs or {}) do
|
||||
local owner = ownerOf[rig.id]
|
||||
if owner ~= nil and owner ~= selectedFieldId then
|
||||
hidden = hidden + 1
|
||||
fieldSet[owner] = true
|
||||
else
|
||||
table.insert(visible, rig)
|
||||
end
|
||||
end
|
||||
local fields = {}
|
||||
for fieldId in pairs(fieldSet) do table.insert(fields, fieldId) end
|
||||
table.sort(fields, function(a, b) return tostring(a) < tostring(b) end)
|
||||
return visible, hidden, fields
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user