From 83e46f94ff89af69e83ad89de30c5c61177773f8 Mon Sep 17 00:00:00 2001 From: masterdraco Date: Wed, 23 Sep 2026 02:05:55 +0200 Subject: [PATCH] =?UTF-8?q?ui:=20kompakte=20tal=20i=20behovs-/overbliksr?= =?UTF-8?q?=C3=A6kker,=20ingen=20dobbelt=20'Overview'-titel=20(v1.11.2.0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FS25_ADSmartPickup/gui/SmartPickupFrame.lua | 25 +++++++++++++++++---- FS25_ADSmartPickup/modDesc.xml | 2 +- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/FS25_ADSmartPickup/gui/SmartPickupFrame.lua b/FS25_ADSmartPickup/gui/SmartPickupFrame.lua index 9f172df..933b1f2 100644 --- a/FS25_ADSmartPickup/gui/SmartPickupFrame.lua +++ b/FS25_ADSmartPickup/gui/SmartPickupFrame.lua @@ -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 diff --git a/FS25_ADSmartPickup/modDesc.xml b/FS25_ADSmartPickup/modDesc.xml index ae8301f..eb778b2 100644 --- a/FS25_ADSmartPickup/modDesc.xml +++ b/FS25_ADSmartPickup/modDesc.xml @@ -1,7 +1,7 @@ masterdraco - 1.11.1.0 + 1.11.2.0 <en>AD Smart Pickup</en>