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:
2026-09-21 15:18:02 +02:00
parent fb87dc4d37
commit 95615253b0
4 changed files with 59 additions and 8 deletions
+32 -5
View File
@@ -1,12 +1,39 @@
# FS25_ADSmartPickup
AutoDrive-tillæg til Farming Simulator 25: når pålæsningsmål roteres i en AD-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.
AutoDrive-tillæg til Farming Simulator 25 med to funktioner oven på Pickup&Deliver:
## 1. Vare-bevidst mappe-rotation (én vare valgt)
Når pålæsningsmål roteres i en AD-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.
## 2. Behovsstyret forsyning (flere varer valgt)
Én traktor holder alle input i en produktion fyldt — fx hø, græs, ensilage og sukkerroer til en
TMR-blander — i stedet for én traktor pr. vare.
1. Aflæsningsmål = produktionens markør.
2. Multi-vælg ingredienserne i AutoDrives vare-dropdown.
3. Start Pickup&Deliver. Loop-tælleren virker som normalt (N læs → parkér, 0 = uendeligt).
Pr. tur læses målets lager; den ingrediens der mangler mest (relativt til kapacitet) hentes fra en
silo **hvor som helst på kortet** (eget lager før nabo-lån, mindst fyldte først). Ingredienser uden
plads i målet (< 1000 l fri) eller uden kilde springes over. Mens AD kører viser HUD'en kun turens
vare (AutoDrive ville ellers selv rotere vare ved triggeren); når AD stopper, gendannes hele listen.
Slå fra ved at vælge en anden enkelt vare.
"Mest brug for" defineres i `ADSupplyPlanner.scoreNeed` (`adSupplyPlanner.lua`).
## Fælles
- Wrapper `ADMultipleTargetsManager.getNextPickup` (via den globale `FS25_AutoDrive`-tabel); rører ikke AutoDrive-zip'en.
- Siloens eget lager rangeres før nabo-lån (udvidelses-siloer deler lager inden for `storageRadius`).
- Finder den ingen silo med varen, eller fejler et spil-API, bruges AutoDrives originale rotation.
- Intet fund, intet behov eller fejl i et spil-API → AutoDrives originale rotation. Valg logges som `ADSmartPickup:` i log.txt.
- Kræver i AutoDrive: "Brug mapper" + "Rotér mål: pålæsning" på køretøjet.
Test: `luajit tests/test_adSmartPickup.lua` · Byg: zip indholdet af `FS25_ADSmartPickup/` til `FS25_ADSmartPickup.zip`.
Begrænsninger: AD læsser fuld vogn — er der mindre plads i målet end ét læs, venter traktoren ved
aflæsning. Målet skal være en placeable med aflæsningstrigger (ikke en blandevogn).
Test: `luajit tests/test_adSupplyPlanner.lua && luajit tests/test_adSmartPickup.lua`
Byg: `cd FS25_ADSmartPickup && zip -qr ../FS25_ADSmartPickup.zip .`
Design/plan: `docs/superpowers/`