chore: v1.12.0.0 — udkørsel af produkter (README, byg)
This commit is contained in:
@@ -141,6 +141,53 @@ vare valgt betyder ingen bytte-mulighed, og traktoren venter som hidtil. Wait-lo
|
|||||||
kun mens aflæsningsopgaven peger på AD's rigtige aflæsningsmål, så en silo-omvej (fx efter et bytte)
|
kun mens aflæsningsopgaven peger på AD's rigtige aflæsningsmål, så en silo-omvej (fx efter et bytte)
|
||||||
aldrig fejlagtigt bliver opfattet som et fuldt mål.
|
aldrig fejlagtigt bliver opfattet som et fuldt mål.
|
||||||
|
|
||||||
|
## v1.12 — Udkørsel af produkter
|
||||||
|
|
||||||
|
Et run har nu en **retning**: *Forsyning* (som hidtil) eller *Udkørsel*. ESC-fanen har tre
|
||||||
|
under-faner: **Oversigt** · **Forsyning** · **Udkørsel**.
|
||||||
|
|
||||||
|
Et udkørsels-run består af:
|
||||||
|
|
||||||
|
- **Kilder** (én eller flere AD-markører): en **fabrik** (produktionspunkt, dens outputs),
|
||||||
|
en **silo** (`spec_silo`, dens indhold) eller et **objektlager** (palle-/ballelager som HVF-
|
||||||
|
pakkens; paller tages ud automatisk). Kilden genkendes inden for 40 m af markøren.
|
||||||
|
- **Varer** med politik pr. vare: **Fra** · **Lager** · **Salg** · **Salg, ellers lager**.
|
||||||
|
Bulk-varer kræver tipvogn/tank; pallevarer kræver **Universal Autoload** på vognen.
|
||||||
|
- **Regler:** *Sælg fra* (% af årets toppris, standard 90), *Kør til lager over* (% fyldning i
|
||||||
|
kilden, standard 80), *Saml op på én tur* (opsamlingsrunde).
|
||||||
|
- Wait-pulje og traktorer som i forsynings-runs.
|
||||||
|
|
||||||
|
**Turvurdering** (før hver pålæsning, og hvert 5. sekund mens traktoren holder):
|
||||||
|
|
||||||
|
1. *Salg*: en vare med Salg-politik, hvis bedst betalende **nåelige** salgssted giver mindst
|
||||||
|
tærsklen af årets toppris — **kører uanset mængde**. Højeste pris-% først. Toppris = stationens
|
||||||
|
grundpris nu × (årets højeste periodefaktor ÷ nuværende). Stor efterspørgsel giver > 100 %.
|
||||||
|
2. *Lager*: en vare med Lager-politik, når der er et **fuldt læs** eller kildens lager er over
|
||||||
|
tærsklen — til nærmeste silo med plads til hele læsset og vejnet begge veje (aldrig en kilde,
|
||||||
|
fabrik eller stald). Mest fyldte kilde først.
|
||||||
|
3. Ingen tur → traktoren holder ved et ledigt Wait-punkt (run'ets pulje) og prøver igen.
|
||||||
|
Loggen viser hvorfor: `holder ved Wait 3: SUGAR 78 % af top (kræver 90), lager 41 %`.
|
||||||
|
|
||||||
|
**Opsamlingsrunde:** tipvogn = samme vare fra flere kilder efter tur til vognen er fuld (næste
|
||||||
|
kilde kun ved ≥ 10 % fri plads); autoload-vogn = flere pallevarer med samme mål på én tur.
|
||||||
|
|
||||||
|
**Objektlager:** markøren skal stå så vognens autoload-zone dækker lagerets spawn-område (som når
|
||||||
|
man læsser manuelt). Moden beder lageret spawne **én palle ad gangen** og venter til UAL har taget
|
||||||
|
den, så der aldrig ligger paller tilbage. Sidder lageret fast (kendt spilfejl), afsluttes
|
||||||
|
læsningen efter 30 s med det der er. Ved en autoload-kilde uden fremdrift i 15 s køres der med
|
||||||
|
det der er ("uanset mængde").
|
||||||
|
|
||||||
|
**Advarsler på skærmen:** kan intet salgssted nås (vejnet), eller findes ingen silo med plads,
|
||||||
|
vises en rød AutoDrive-notifikation (`'MT635' kan ikke nå salgssted 'Grain Elevator' for SUGAR –
|
||||||
|
tjek vejnettet`), samme tekst i AD's notifikations-historik, i log.txt (WARN) og i run'ets status.
|
||||||
|
Traktoren holder ved Wait og kører selv når vejen er koblet på. Advarslen gentages først når
|
||||||
|
traktor, station eller vare ændrer sig.
|
||||||
|
|
||||||
|
**Opsætning:** Udkørsel-fanen → Nyt run → afkryds kilder → sæt politik pr. vare → Ja på traktorer
|
||||||
|
→ Start. AD-tilstand pr. traktor: PickupAndDeliver, 1./2. markør = første kilde (pladsholder,
|
||||||
|
sættes pr. tur), rotation "kun pålæsning". Runs gemmes i `ADSmartPickup_runs.xml` version 2;
|
||||||
|
ældre filer læses som forsynings-runs.
|
||||||
|
|
||||||
## Fælles
|
## Fælles
|
||||||
|
|
||||||
- Wrapper `ADMultipleTargetsManager.getNextPickup` (via den globale `FS25_AutoDrive`-tabel); rører ikke AutoDrive-zip'en.
|
- Wrapper `ADMultipleTargetsManager.getNextPickup` (via den globale `FS25_AutoDrive`-tabel); rører ikke AutoDrive-zip'en.
|
||||||
@@ -174,6 +221,6 @@ aldrig fejlagtigt bliver opfattet som et fuldt mål.
|
|||||||
Begrænsninger: AD læsser fuld vogn — er der mindre plads i målet end ét læs, venter traktoren ved
|
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).
|
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`
|
Test: `for t in tests/test_*.lua; do luajit $t | tail -1; done`
|
||||||
Byg: `cd FS25_ADSmartPickup && zip -qr ../FS25_ADSmartPickup.zip .`
|
Byg: `cd FS25_ADSmartPickup && zip -qr ../FS25_ADSmartPickup.zip .`
|
||||||
Design/plan: `docs/superpowers/`
|
Design/plan: `docs/superpowers/`
|
||||||
|
|||||||
Reference in New Issue
Block a user