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:
@@ -387,6 +387,21 @@ function SmartPickupFrame:rigDetails(rig)
|
||||
return #parts > 0 and (" — " .. table.concat(parts, " — ")) or ""
|
||||
end
|
||||
|
||||
-- {[fieldId] = rigIds} for alle marker
|
||||
local function rigIdsByField()
|
||||
local byField = {}
|
||||
for fieldId, field in pairs(ADFieldJobs.state.fields) do byField[fieldId] = field.plan ~= nil and field.plan.rigIds or {} end
|
||||
return byField
|
||||
end
|
||||
|
||||
-- "3 maskiner er faste på andre marker (F22, F90)"
|
||||
function SmartPickupFrame:addHiddenDedicatedRow(hidden, fields)
|
||||
if hidden <= 0 then return end
|
||||
local names = {}
|
||||
for _, fieldId in ipairs(fields) do table.insert(names, "F" .. tostring(fieldId)) end
|
||||
self:addTextRow(" " .. string.format(self.i18n:getText("spu_field_hiddenDedicated"), hidden, table.concat(names, ", ")))
|
||||
end
|
||||
|
||||
-- Faste maskiner til den valgte mark: en fast maskine bruges kun her, og marken venter på sin egen hellere
|
||||
-- end at låne en anden med samme opgave. Maskiner der er faste på en anden mark er markeret.
|
||||
function SmartPickupFrame:fillDedicatedRows(adEnv, field)
|
||||
@@ -396,7 +411,7 @@ function SmartPickupFrame:fillDedicatedRows(adEnv, field)
|
||||
for fieldId, other in pairs(ADFieldJobs.state.fields) do
|
||||
for _, id in ipairs(other.plan ~= nil and other.plan.rigIds or {}) do owner[id] = fieldId end
|
||||
end
|
||||
local rigs = ADFieldJobs.getRigs(adEnv)
|
||||
local rigs, hiddenRigs, hiddenFields = ADFieldFleet.visibleForField(ADFieldJobs.getRigs(adEnv), field.id, rigIdsByField())
|
||||
table.sort(rigs, function(a, b)
|
||||
local ma, mb = owner[a.id] == field.id, owner[b.id] == field.id
|
||||
if ma ~= mb then return ma end
|
||||
@@ -410,6 +425,7 @@ function SmartPickupFrame:fillDedicatedRows(adEnv, field)
|
||||
row:getDescendantByName("title"):setText(string.format(" %s — %s%s", tostring(rig.label), self:roleText(rig.role), elsewhere))
|
||||
row:getDescendantByName("option"):setState(owner[rig.id] == field.id and SmartPickupFrame.STATE_ON or SmartPickupFrame.STATE_OFF, false)
|
||||
end
|
||||
self:addHiddenDedicatedRow(hiddenRigs, hiddenFields)
|
||||
end
|
||||
|
||||
function SmartPickupFrame:fillFleetRows(adEnv)
|
||||
@@ -417,7 +433,8 @@ function SmartPickupFrame:fillFleetRows(adEnv)
|
||||
self:addTextRow(i18n:getText("spu_field_section_fleet"))
|
||||
local useAll = ADFieldJobs.state.fleetMode ~= "ticked"
|
||||
self:addToggleRow("fleetMode", i18n:getText("spu_field_fleetAll"), {i18n:getText("ui_no"), i18n:getText("ui_yes")}, useAll)
|
||||
local rigs = ADFieldJobs.getRigs(adEnv)
|
||||
-- valgt mark: maskiner der er faste på en anden mark skjules (de kan ikke bruges her)
|
||||
local rigs, hiddenRigs, hiddenFields = ADFieldFleet.visibleForField(ADFieldJobs.getRigs(adEnv), self.selectedFieldId, rigIdsByField())
|
||||
table.sort(rigs, function(a, b)
|
||||
if a.role ~= b.role then return a.role < b.role end
|
||||
return ADFlowView.naturalLess(a.label, b.label)
|
||||
@@ -431,6 +448,7 @@ function SmartPickupFrame:fillFleetRows(adEnv)
|
||||
if #rigs == 0 then
|
||||
self:addTextRow(" " .. i18n:getText("spu_field_noRigs"))
|
||||
end
|
||||
self:addHiddenDedicatedRow(hiddenRigs, hiddenFields)
|
||||
end
|
||||
|
||||
-- ---- live ----
|
||||
|
||||
Reference in New Issue
Block a user