ui: kompakte tal i behovs-/overbliksrækker, ingen dobbelt 'Overview'-titel (v1.11.2.0)
This commit is contained in:
@@ -374,6 +374,14 @@ function SmartPickupFrame:fillNeedsRows(adEnv, run)
|
||||
end
|
||||
end
|
||||
|
||||
-- Overblik: "Cow 1 food: TMR 18.0k/27.8k · Silage 3.0k/…" (mest trængende først)
|
||||
function SmartPickupFrame:describeTargetLevels(target)
|
||||
if #target.levels == 0 then
|
||||
return string.format("%s: %s", target.name, self.i18n:getText("spu_needs_none"))
|
||||
end
|
||||
return string.format("%s: %s", target.name, self:formatLevels(target.levels))
|
||||
end
|
||||
|
||||
function SmartPickupFrame:describeTargetNeeds(target)
|
||||
if #target.levels == 0 then
|
||||
return string.format("%s: %s", target.name, self.i18n:getText("spu_needs_none"))
|
||||
@@ -505,11 +513,21 @@ function SmartPickupFrame:syncOptionsFromModel(adEnv, run)
|
||||
end
|
||||
|
||||
-- "Silage 0/33.750 l · Straw 21.375/21.375 l" — mest trængende først.
|
||||
-- Kompakte tal, så 4–5 varer kan stå på én række: 18.0k/27.8k
|
||||
function SmartPickupFrame.formatCompact(liters)
|
||||
if liters >= 1000000 then
|
||||
return string.format("%.1fM", liters / 1000000)
|
||||
elseif liters >= 1000 then
|
||||
return string.format("%.1fk", liters / 1000)
|
||||
end
|
||||
return string.format("%d", liters)
|
||||
end
|
||||
|
||||
function SmartPickupFrame:formatLevels(levels)
|
||||
local parts = {}
|
||||
for _, need in ipairs(levels) do
|
||||
local title = g_fillTypeManager.getFillTypeTitleByIndex ~= nil and g_fillTypeManager:getFillTypeTitleByIndex(need.fillType) or g_fillTypeManager:getFillTypeNameByIndex(need.fillType)
|
||||
table.insert(parts, string.format("%s %s/%s l", tostring(title), g_i18n:formatNumber(need.level, 0), g_i18n:formatNumber(need.capacity, 0)))
|
||||
table.insert(parts, string.format("%s %s/%s", tostring(title), SmartPickupFrame.formatCompact(need.level), SmartPickupFrame.formatCompact(need.capacity)))
|
||||
end
|
||||
return table.concat(parts, " · ")
|
||||
end
|
||||
@@ -542,7 +560,6 @@ function SmartPickupFrame:fillOverviewRows(adEnv)
|
||||
table.insert(rows, title.parent)
|
||||
return title
|
||||
end
|
||||
add(self.i18n:getText("spu_overview"))
|
||||
self.overviewRows = {}
|
||||
for _, run in ipairs(ADRunsController.store.runs) do
|
||||
local status = ADRunsController.getRunStatus(adEnv, run)
|
||||
@@ -557,7 +574,7 @@ function SmartPickupFrame:fillOverviewRows(adEnv)
|
||||
end
|
||||
end
|
||||
for _, target in ipairs(ADRunsController.getTargetsLevels(adEnv, run)) do
|
||||
table.insert(entry.targets, {wayPointId = target.wayPointId, title = add(" " .. self:describeTargetNeeds(target))})
|
||||
table.insert(entry.targets, {wayPointId = target.wayPointId, title = add(" " .. self:describeTargetLevels(target))})
|
||||
end
|
||||
table.insert(self.overviewRows, entry)
|
||||
end
|
||||
@@ -590,7 +607,7 @@ function SmartPickupFrame:refreshOverview(adEnv)
|
||||
end
|
||||
for _, item in ipairs(entry.targets) do
|
||||
if byId[item.wayPointId] ~= nil then
|
||||
item.title:setText(" " .. self:describeTargetNeeds(byId[item.wayPointId]))
|
||||
item.title:setText(" " .. self:describeTargetLevels(byId[item.wayPointId]))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user