fix(marksilo): siloer inden for 100 m af et gårdlager er gårdens (Farma-klynge deler lager) — sukkerroer blev kørt fra én Farma-silo til nabosiloen (v1.36.1.0)

This commit is contained in:
2026-09-27 12:19:06 +02:00
parent c2ab20d9aa
commit d7f4d0b3d3
3 changed files with 22 additions and 3 deletions
+12 -2
View File
@@ -11,6 +11,9 @@ ADFieldSilos.STUCK_MS = 120000
ADFieldSilos.PAUSE_MS = 600000
ADFieldSilos.FAIL_MS = 30000 -- AD slukket inden for 30 s uden fremdrift = turen kunne ikke køres
ADFieldSilos.CARGO_MIN_LITERS = 100 -- rest under dette tæller ikke som last
-- Silo så tæt på et gårdlager er en del af gården (Farma-siloer deler lager inden for 50 m): ikke marksilo.
-- (in-game 27/9: sukkerroer blev kørt fra én Farma-silo til nabosiloen i samme klynge)
ADFieldSilos.FARM_RADIUS = 100
ADFieldSilos.MOVING_SPEED = 0.00028 -- m/ms, samme grænse som AutoDrive
ADFieldSilos.FILE_NAME = "ADSmartPickup_fieldsilos.xml"
ADFieldSilos.ROOT = "ADSmartPickupFieldSilos"
@@ -110,6 +113,13 @@ local function runBuildingIds()
return ids
end
local function nearStore(stores, x, z)
for _, store in ipairs(stores) do
if (store.x - x) ^ 2 + (store.z - z) ^ 2 <= ADFieldSilos.FARM_RADIUS ^ 2 then return true end
end
return false
end
-- Gårdlagre fra opsætningen + marksiloer (alle markers marksiloer, uden dubletter og uden gårdlagre).
function ADFieldSilos.collectBuildings(adEnv)
local fid = farmId()
@@ -125,9 +135,9 @@ function ADFieldSilos.collectBuildings(adEnv)
local silos, seen = {}, runBuildingIds()
for _, info in ipairs(ADFields.list()) do
for _, building in ipairs(ADFields.fieldSilos(adEnv, fid, info)) do
if not seen[building.id] and not ADFieldSiloConfig.hasStore(ADFieldSilos.config, building.id) then
local x, z = position(building.placeable ~= nil and building.placeable.rootNode or nil)
if not seen[building.id] and not ADFieldSiloConfig.hasStore(ADFieldSilos.config, building.id) and not nearStore(stores, x, z) then
seen[building.id] = true
local x, z = position(building.placeable ~= nil and building.placeable.rootNode or nil)
table.insert(silos, {id = building.id, name = building.name, markerId = firstMarker(building, "load"),
x = x, z = z, stock = siloStock(building.placeable)})
end