From 3c67591cb3f1c2d4a20544a746cae1208f532159 Mon Sep 17 00:00:00 2001 From: masterdraco Date: Tue, 29 Sep 2026 23:26:31 +0200 Subject: [PATCH] =?UTF-8?q?fix(marker):=20vinh=C3=B8stere=20genkendes=20vi?= =?UTF-8?q?a=20spec=5FvineCutter=20(v1.60.17.0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 ++ FS25_ADSmartPickup/adCpBridge.lua | 33 ++++++++++++++++++++++++++++++- FS25_ADSmartPickup/modDesc.xml | 2 +- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68861ed..6adadbc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ står i [docs/BRUGERMANUAL.md](docs/BRUGERMANUAL.md) (dansk) og [docs/USER_MANUA ## 1.60 — "Kræver handling" → flow, menuplacering, flow-vogne i guiden +- **1.60.17** Vinhøstere (fx Grégoire GL86) genkendes som høstere af den afgrøde, de er konfigureret til + (spec_vineCutter). Før fik vinmarker "ingen kan" (in-game: F22 hvide druer). - **1.60.16** Tipvogne skiftes under AD-aflæsning til en tip-side, AutoDrive må aflæsse fra (`allowAIDischarge`). Farmtech EDK 650 (Unrealistic) tillader kun bagudtip; stod den på venstre, højre eller kornluge, åbnede AD aflæsningen, men intet løb ud, og vognen holdt med fuldt læs. CP-genstartslisten logges kun, når den ændrer sig. diff --git a/FS25_ADSmartPickup/adCpBridge.lua b/FS25_ADSmartPickup/adCpBridge.lua index e893468..734581f 100644 --- a/FS25_ADSmartPickup/adCpBridge.lua +++ b/FS25_ADSmartPickup/adCpBridge.lua @@ -169,12 +169,43 @@ function ADCpBridge.getSpecs(vehicle) return specs end --- Afgrøder høsteren kan tage (alle skærebord/optagere i kæden). nil = ikke en høster. +-- Vinhøster (fx Grégoire GL86): afgrøden vælges i konfigurationen og står i spec_vineCutter, ikke i spec_cutter +-- (in-game 29/9: F22 hvide druer "none can do it" — moddet så aldrig vinhøstere som høstere). +function ADCpBridge.vineFruitSet(spec) + local fruits = {} + if spec == nil then return fruits end + for _, key in ipairs({"fruitTypeIndex", "fruitType"}) do + if type(spec[key]) == "number" then fruits[spec[key]] = true end + end + if type(spec.fruitTypes) == "table" then + for key, value in pairs(spec.fruitTypes) do + if type(value) == "number" then fruits[value] = true + elseif value == true and type(key) == "number" then fruits[key] = true end + end + end + return fruits +end + +local vineLogged = setmetatable({}, {__mode = "k"}) + +-- Afgrøder høsteren kan tage (alle skærebord/optagere/vinhøstere i kæden). nil = ikke en høster. function ADCpBridge.getHarvestFruits(vehicle) if vehicle.spec_combine == nil then return nil end local fruits = {} for _, object in ipairs(collect(vehicle)) do for fruit in pairs(ADCpBridge.harvestFruitSet(object.spec_cutter)) do fruits[fruit] = true end + if object.spec_vineCutter ~= nil then + local vine = ADCpBridge.vineFruitSet(object.spec_vineCutter) + for fruit in pairs(vine) do fruits[fruit] = true end + if next(vine) == nil and not vineLogged[object] then + -- ukendt feltnavn i denne spilversion: vis nøglerne, så reglen kan rettes + vineLogged[object] = true + local keys = {} + for key, value in pairs(object.spec_vineCutter) do table.insert(keys, tostring(key) .. "=" .. type(value)) end + table.sort(keys) + Logging.info("ADSmartPickup: vinhøster uden afgrøde fundet — spec_vineCutter: %s", table.concat(keys, ", ")) + end + end end return fruits end diff --git a/FS25_ADSmartPickup/modDesc.xml b/FS25_ADSmartPickup/modDesc.xml index e0659ce..53bb615 100644 --- a/FS25_ADSmartPickup/modDesc.xml +++ b/FS25_ADSmartPickup/modDesc.xml @@ -1,7 +1,7 @@ masterdraco - 1.60.16.0 + 1.60.17.0 <en>AD Smart Pickup</en>