fix: læs lager direkte fra produktionspunktet når targetStorages mangler (v1.1.0.0)
Genskabt efter disk-crash 2026-09-21: det oprindelige commit (d38366e) gik tabt som tomt objekt; indholdet er gendannet fra arbejdskopien. README udvidet med behovsstyret forsyning, test S10 dækker produktionspunkt-lageret.
This commit is contained in:
@@ -186,13 +186,27 @@ function ADSmartPickup.findLeastFilledPickup(adEnv, driver)
|
||||
return findLeastFilled(collectMarkerStations(adEnv, groupMarkers, farmId, nil), fillTypes, farmId)
|
||||
end
|
||||
|
||||
-- Lagrene bag aflæsningsstationen; produktionspunkter uden targetStorages læses direkte.
|
||||
local function getTargetStorages(station)
|
||||
if station.targetStorages ~= nil and next(station.targetStorages) ~= nil then
|
||||
return station.targetStorages
|
||||
end
|
||||
local placeable = station.owningPlaceable
|
||||
local productionPoint = placeable ~= nil and placeable.spec_productionPoint ~= nil and placeable.spec_productionPoint.productionPoint or nil
|
||||
if productionPoint ~= nil and productionPoint.storage ~= nil then
|
||||
return {productionPoint.storage}
|
||||
end
|
||||
return {}
|
||||
end
|
||||
|
||||
-- Niveau + kapacitet pr. ingrediens i aflæsningsmålets lager.
|
||||
local function getTargetNeeds(station, ingredients, farmId)
|
||||
local needs = {}
|
||||
local storages = getTargetStorages(station)
|
||||
for _, fillType in ipairs(ingredients) do
|
||||
if station.getIsFillTypeSupported == nil or station:getIsFillTypeSupported(fillType) then
|
||||
local level, freeSpace = 0, 0
|
||||
for _, storage in pairs(station.targetStorages or {}) do
|
||||
for _, storage in pairs(storages) do
|
||||
level = level + (storage:getFillLevel(fillType) or 0)
|
||||
freeSpace = freeSpace + (storage:getFreeCapacity(fillType) or 0)
|
||||
end
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<modDesc descVersion="107">
|
||||
<author>masterdraco</author>
|
||||
<version>1.0.0.0</version>
|
||||
<version>1.1.0.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. 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. Kræver FS25_AutoDrive med "Brug mapper" + "Rotér mål: pålæsning".]]></en>
|
||||
</description>
|
||||
<iconFilename>icon.dds</iconFilename>
|
||||
<multiplayer supported="true"/>
|
||||
<extraSourceFiles>
|
||||
<sourceFile filename="adSupplyPlanner.lua"/>
|
||||
<sourceFile filename="adSmartPickup.lua"/>
|
||||
</extraSourceFiles>
|
||||
</modDesc>
|
||||
|
||||
Reference in New Issue
Block a user