fix: løst stationsopslag (40 m, uanset retning) for stalde og fabrikker — mælketank ved siden af markøren genkendes (v1.12.21.0)

This commit is contained in:
2026-09-23 18:06:04 +02:00
parent 034286f69e
commit 4a283b086f
5 changed files with 59 additions and 1 deletions
+9
View File
@@ -1097,6 +1097,15 @@ check("W15 kører hjem", orphanTask.destinationID, 30)
check("W15 AD's mål gendannet", orphan.ad.stateModule.secondMarkerId, 30)
testVehicles = {}
-- N1: løst opslag (stald/fabrik): nærmeste læssestation inden for maxDistance, uanset retning og "bag næsen"
-- (in-game 23/9: mælketankens trigger lå ved siden af markøren, 20+ m væk -> "ingen læssestation")
resetWorld()
addMarker(1, "cow 1 milk", "Milk", 0, 0, -30, 0) -- kører mod +x; tanken ligger 25 m til siden
table.insert(stations, makeStation(101, 0, 25, {[WHEAT] = 1}))
check("N1 strengt opslag finder intet", ADSmartPickup.getLoadStationAtWayPointId(FS25_AutoDrive, 1, 1), nil)
check("N1 løst opslag finder tanken", ADSmartPickup.getLoadStationNearWayPointId(FS25_AutoDrive, 1, 1, 40), stations[1])
check("N1 uden for afstanden -> nil", ADSmartPickup.getLoadStationNearWayPointId(FS25_AutoDrive, 1, 1, 20), nil)
-- X: udkørsel koblet på getNextPickup-wrap'en og Wait-logikken
resetWorld()
addMarker(1, "Suger Load", "Pickup points", 0, 0); table.insert(stations, makeStation(101, 0, 15, {[WHEAT] = 1000}))
+12
View File
@@ -347,5 +347,17 @@ loadAt[11] = {owningPlaceable = nil}
wayPoints[11] = {id = 11, x = 2000, z = 2000}; table.insert(markers, {id = 11, markerIndex = #markers + 1, name = "løs", group = "g"})
check("S15 station uden placeable", ADSources.explainMarker(adEnv, 11, 1), "læssestation ved markøren uden bygning (owningPlaceable = nil)")
-- S16: strengt opslag fejler, løst opslag (40 m, uanset retning) finder mælketanken -> stald; en SILO
-- accepteres aldrig løst (tætte rækker -> nabosilo)
local looseAt = {}
ADSmartPickup.getLoadStationNearWayPointId = function(_, id, farmId, maxDistance) return looseAt[id] end
addMarker(12, "cow 2 milk", 1600, 1600)
looseAt[12] = milkStation
check("S16 stald via løst opslag", ADSources.identify(adEnv, 12, 1).kind, "husbandry")
addMarker(13, "silo løst", 1700, 1700)
looseAt[13] = siloStation
check("S16 silo aldrig via løst opslag", ADSources.identify(adEnv, 13, 1), nil)
check("S16 forklaring nævner den løse station", ADSources.explainMarker(adEnv, 13, 1):find("silo", 1, true) ~= nil, true)
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
os.exit(failures == 0 and 0 or 1)