fix: Wait-pulje = mapper med 'Wait' i navnet, ikke markørnavne (v1.7.1.0)

Savegame viste eksisterende mark-ventepladser 'F91 Wait', 'F108 Wait' m.fl. i
mark-mapperne — de ville være røget i puljen med navne-reglen. Brugerens nye
punkter ligger i mappen 'Cow Wait' (6 markører med samme navn) -> mappen afgør.
Log viser markørnummer, da navne kan være ens.
This commit is contained in:
2026-09-22 21:28:00 +02:00
parent 39fccefa40
commit a4a761fabc
6 changed files with 25 additions and 22 deletions
+6 -7
View File
@@ -122,14 +122,13 @@ function ADSupplyPlanner.fullLoadFits(freeSpace, loadCapacity)
return freeSpace >= loadCapacity
end
-- Wait-punkter: markører med ordet "Wait" i navnet (uanset store/små) eller i mappen "Wait".
-- Her venter en traktor med rest-læs, til der igen er plads i målet.
-- Wait-punkter: alle markører i en MAPPE med ordet "Wait" i navnet (uanset store/små),
-- fx mappen "Cow Wait". Her venter en traktor med rest-læs, til der igen er plads i
-- målet. Markørens eget navn tæller ikke — spillerens mark-ventepladser ("F91 Wait")
-- ligger i mark-mapperne og hører ikke til puljen.
function ADSupplyPlanner.isWaitMarker(marker)
if marker.group == "Wait" then
return true
end
local name = string.lower(tostring(marker.name or ""))
return string.find(name, "%f[%a]wait%f[%A]") ~= nil
local group = string.lower(tostring(marker.group or ""))
return string.find(group, "%f[%a]wait%f[%A]") ~= nil
end
-- candidates: {{marker, x, z}}; claims: {[marker.id] = køretøj}. Nærmeste punkt der er
+3 -3
View File
@@ -2,7 +2,7 @@
-- Holder en traktor med rest-læs ved en fuld stald AutoDrive i dag stille ved
-- aflæsningspunktet "til den er tømt på en eller anden måde" — og spærrer for
-- de næste i køen. Her omdirigeres den i stedet til nærmeste ledige Wait-punkt
-- (markør med ordet "Wait" i navnet eller i mappen "Wait"), og når målet igen
-- (markør i en mappe med ordet "Wait" i navnet, fx "Cow Wait"), og når målet igen
-- har plads til HELE resten, sendes den tilbage og læsser af.
--
-- Kun den aktuelle aflæsningsopgaves destination ændres; AutoDrives mål,
@@ -94,7 +94,7 @@ local function startWaiting(adEnv, task)
if candidate == nil then
if not warnedNoWaitPoint[vehicle] then
warnedNoWaitPoint[vehicle] = true
Logging.warning(ADUnloadWait.LOG_PREFIX .. "'%s' har %.0f l rest, og målet er fuldt — intet ledigt Wait-punkt (markør med 'Wait' i navnet), så AutoDrive venter ved målet", tostring(vehicle:getName()), rest)
Logging.warning(ADUnloadWait.LOG_PREFIX .. "'%s' har %.0f l rest, og målet er fuldt — intet ledigt Wait-punkt (markør i en mappe med 'Wait' i navnet), så AutoDrive venter ved målet", tostring(vehicle:getName()), rest)
end
return
end
@@ -103,7 +103,7 @@ local function startWaiting(adEnv, task)
waits[vehicle] = {task = task, homeDestinationID = task.destinationID, waitMarker = candidate.marker, fillType = fillType, rest = rest}
redirect(task, candidate.marker.id)
local fillTypeName = g_fillTypeManager ~= nil and g_fillTypeManager:getFillTypeNameByIndex(fillType) or tostring(fillType)
Logging.info(ADUnloadWait.LOG_PREFIX .. "'%s' venter ved %s: %.0f l %s rest, målet har kun %.0f l fri", tostring(vehicle:getName()), tostring(candidate.marker.name), rest, tostring(fillTypeName), free)
Logging.info(ADUnloadWait.LOG_PREFIX .. "'%s' venter ved %s (markør %s): %.0f l %s rest, målet har kun %.0f l fri", tostring(vehicle:getName()), tostring(candidate.marker.name), tostring(candidate.marker.markerIndex or candidate.marker.id), rest, tostring(fillTypeName), free)
end
-- Ventende køretøj: er der nu plads til hele resten, køres tilbage til målet.
+2 -2
View File
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<modDesc descVersion="107">
<author>masterdraco</author>
<version>1.7.0.0</version>
<version>1.7.1.0</version>
<title>
<en>AD Smart Pickup</en>
</title>
<description>
<en><![CDATA[AutoDrive-tillæg: når pålæsningsmål roteres i en mappe, køres der direkte til den silo i mappen, der har den valgte vare (mindst fyldte først), i stedet for at prøve markørerne én efter én. Vælges FLERE varer i AutoDrive, ses de som ingredienser til aflæsningsmålet (fx en TMR-blander): én traktor henter pr. tur den vare målet mangler mest, fra en silo hvor som helst på kortet. Er målet en fabrik, følger listen automatisk fabrikkens tændte produktioner (tid-til-tom først). Rest-læs ved fuldt mål venter ved nærmeste ledige "Wait"-markør til der er plads. Kræver FS25_AutoDrive med "Brug mapper" + "Rotér mål: pålæsning".]]></en>
<en><![CDATA[AutoDrive-tillæg: når pålæsningsmål roteres i en mappe, køres der direkte til den silo i mappen, der har den valgte vare (mindst fyldte først), i stedet for at prøve markørerne én efter én. Vælges FLERE varer i AutoDrive, ses de som ingredienser til aflæsningsmålet (fx en TMR-blander): én traktor henter pr. tur den vare målet mangler mest, fra en silo hvor som helst på kortet. Er målet en fabrik, følger listen automatisk fabrikkens tændte produktioner (tid-til-tom først). Rest-læs ved fuldt mål venter ved nærmeste ledige markør i en "Wait"-mappe til der er plads. Kræver FS25_AutoDrive med "Brug mapper" + "Rotér mål: pålæsning".]]></en>
</description>
<iconFilename>icon.dds</iconFilename>
<multiplayer supported="true"/>