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:
2026-09-26 19:08:21 +02:00
parent 780b6a0daa
commit a95cb9e71d
6 changed files with 54 additions and 3 deletions
+24
View File
@@ -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