From 25867e2d8895d4be1c7d752dd675a6c8f02f8333 Mon Sep 17 00:00:00 2001 From: masterdraco Date: Sun, 27 Sep 2026 14:54:54 +0200 Subject: [PATCH] =?UTF-8?q?fix(bygninger):=20pallespawner=20f=C3=A5r=20ald?= =?UTF-8?q?rig=20afl=C3=A6sningens=20n=C3=A6rmeste=20mark=C3=B8r=20?= =?UTF-8?q?=E2=80=94=20i=20f=C3=A5restald=203=20og=205=20stod=20spawneren?= =?UTF-8?q?=20t=C3=A6ttest=20(5=20mod=209=20m),=20s=C3=A5=20Goat=20Food=20?= =?UTF-8?q?kun=20kunne=20levere=20til=203=20af=205=20stalde=20(v1.38.6.0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FS25_ADSmartPickup/adBuildings.lua | 10 +++++----- FS25_ADSmartPickup/modDesc.xml | 2 +- tests/test_adBuildings.lua | 4 +++- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/FS25_ADSmartPickup/adBuildings.lua b/FS25_ADSmartPickup/adBuildings.lua index e91e18d..cea6177 100644 --- a/FS25_ADSmartPickup/adBuildings.lua +++ b/FS25_ADSmartPickup/adBuildings.lua @@ -249,13 +249,13 @@ local function markerCandidates(adEnv, nodes) return found end --- Læssemarkør for én læssegruppe. En pallespawner (upræcist startpunkt) viger for aflæsningen, når begge vil --- have samme markør og aflæsningen står tættere — så tager den sin næstnærmeste. Rigtige læssetriggere beholder --- markøren (Sugarbeet Crusher: pickup står tættere på aflæsningstriggeren end drop). Gælder alle bygningstyper. --- (in-game 27/9 fårestald: spawner 9 m fra "Sheep Food", foderindkast 5 m -> Goat Food fik "Sheep Milk") +-- Læssemarkør for én læssegruppe. En pallespawner (upræcist startpunkt) får aldrig aflæsningens nærmeste markør — +-- den tager sin næstnærmeste. Rigtige læssetriggere beholder markøren (Sugarbeet Crusher: pickup står tættere på +-- aflæsningstriggeren end drop). Gælder alle bygningstyper. (in-game 27/9 fårestald: spawner 9 m fra "Sheep Food", +-- foderindkast 5 m -> Goat Food fik "Sheep Milk"; i stald 3 og 5 stod spawneren endda tættest, 5 mod 9 m) function ADBuildings.pickLoadMarker(candidates, unloadBest, yieldsToUnload) for _, candidate in ipairs(candidates or {}) do - local isUnloads = yieldsToUnload and unloadBest ~= nil and candidate.id == unloadBest.id and unloadBest.distance < candidate.distance + local isUnloads = yieldsToUnload and unloadBest ~= nil and candidate.id == unloadBest.id if not isUnloads then return {id = candidate.id, name = candidate.name, distance = math.floor(candidate.distance + 0.5)} end diff --git a/FS25_ADSmartPickup/modDesc.xml b/FS25_ADSmartPickup/modDesc.xml index 725239c..43bf47e 100644 --- a/FS25_ADSmartPickup/modDesc.xml +++ b/FS25_ADSmartPickup/modDesc.xml @@ -1,7 +1,7 @@ masterdraco - 1.38.5.0 + 1.38.6.0 <en>AD Smart Pickup</en> diff --git a/tests/test_adBuildings.lua b/tests/test_adBuildings.lua index 4ca6fac..3212ffe 100644 --- a/tests/test_adBuildings.lua +++ b/tests/test_adBuildings.lua @@ -242,7 +242,9 @@ do local unloadBest = {id = 1, name = "Sheep Food 1", distance = 5} check("PL spawner viger for tættere aflæsning", ADBuildings.pickLoadMarker({food, milk}, unloadBest, true).name, "Sheep Milk 1") check("PL rigtig læssetrigger beholder markøren (Sugarbeet Crusher)", ADBuildings.pickLoadMarker({food, milk}, unloadBest, false).name, "Sheep Food 1") - check("PL spawner tættest selv -> beholder", ADBuildings.pickLoadMarker({food, milk}, {id = 1, name = "Sheep Food 1", distance = 12}, true).name, "Sheep Food 1") + -- in-game 27/9 fårestald 3 og 5: spawner 5 m fra "Sheep Food", foderindkast 9 m -> spawneren vandt stadig + check("PL spawner viger også når den selv står tættest", ADBuildings.pickLoadMarker({food, milk}, {id = 1, name = "Sheep Food 1", distance = 12}, true).name, "Sheep Milk 1") + check("PL rigtig læssetrigger tættest beholder", ADBuildings.pickLoadMarker({food, milk}, {id = 1, name = "Sheep Food 1", distance = 12}, false).name, "Sheep Food 1") check("PL ingen konflikt", ADBuildings.pickLoadMarker({milk}, unloadBest, true).name, "Sheep Milk 1") check("PL eneste kandidat er aflæsningens -> ingen læssemarkør", ADBuildings.pickLoadMarker({food}, unloadBest, true), nil) check("PL ingen kandidater", ADBuildings.pickLoadMarker({}, unloadBest, true), nil)