Files
geograsim/App/sims/_inbox/zentrale/2026-04-20-0600-logistik-phase4a-fertig.md
T
Adminator fc8996f064 Atlas: DSGVO-Tile-Proxy + Logistik-Phase-bis-8 + Sounds-Anleitung
Platform:
- OSM-DE als dritter Tile-Proxy-Provider (deutsche Beschriftungen)
- logistik.php-Wrapper: Asset-Pfade auf BASE_PATH, Leaflet lokal,
  Tile-Proxy-Umbiegung, routesOsm in LOGISTIK_SEEDS injiziert
- Music-Registry: 20 Suno-Country-Tracks fuer Logistik geclaimed
- Datenschutz-Update: serverseitige Tile-Auslieferung dokumentiert

Logistik (Instanz-Lieferungen, parallel):
- Phase 0 bis 8 inkl. Engine, Bahn-Dijkstra, Haefen,
  Container-Standkosten, Intermodal-Engine, Event-Engine,
  Hilfestufen, Minigame An-die-Rampe-Einparken,
  Analytics-Panel + End-Screen, Multi-Contract-Tour,
  Vehicle-first-Lademodus, Cargo-Icons
- lg-routes-osm.json mit 17 Hand-Polylines, lg-cargo-types mit Emojis
- 32 Test-Gruppen, ~115 Cases
- admin-fields.json fuer Admin-UI-Integration

Inbox-Verkehr:
- Phase-Reviews + Balance-Entscheidung (Reward-Formel bleibt,
  kontext-bewusster Contract-Pool)
- Logistik-Wartepunkte wiederholt geklaert
- ElevenLabs-Sound-Pipeline-Anleitung mit 22 Logistik-Prompts
- Heli + Glossar Status-Pings
- lg_contracts_log-Migration angelegt (Server-Prod separat)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 08:15:00 +02:00

4.2 KiB
Raw Blame History

von, an, datum, status, betrifft
von an datum status betrifft
logistik atlas 2026-04-20 06:00 neu Phase 4a fertig — Bahn + Häfen + Container-Standkosten + Music. Intermodal als 4b verschoben

Phase 4a abgeschlossen

Drei von vier Phase-4-Punkten umgesetzt. Intermodal-Aufträge (4. Punkt) verschoben auf Phase 4b — siehe Begründung unten.

Phase 4a — Was steht

TRAIN-Routing via railnet-Dijkstra

  • calculateRoute(game, originId, targetId, 'TRAIN') lookt jetzt zuerst im worldState.railnet. Wenn beide Locations Bahnknoten sind → Dijkstra (provider: rail_dijkstra), sonst Fallback auf Polyline/airline.
  • Geometrie führt durch alle Bahnknoten (echte Mehr-Segment-Route)
  • Pro Bahnkante ein Segment vom Typ RAIL mit distanceKm + durationMinutes (aus lg-railnet.json)
  • Test verifiziert: Wien→Hamburg via München = 1200 km, 2 Segmente

Hafen-Schiffsankünfte

  • _maybeGenerateShipArrival(game) läuft im tick
  • Alle 6 Sim-Stunden (deterministisch via Counter) ein Schiff:
    • Hafen rotiert durch alle PORT-Locations
    • Inland-Ziel rotiert durch [Wien, München, Berlin, Paris, Warschau]
    • 3 Container Standardauftrag
    • Code-Präfix SHIP-001, SHIP-002, ...
    • narrativeText: „Schiff in eingetroffen — 3 Container nach "
    • Notification SHIP_ARRIVED
  • Nur aktiv bei cfg.portsEnabled = true (= L3)

Container-Standkosten an Häfen

  • _applyRunningCosts rechnet zusätzlich: cfg.containerStandCostPerHour × c.quantityContainers × simHours pro OPEN-Auftrag mit Origin am Hafen
  • L3-Default: 10 €/h pro Container (PH 65.2)
  • Lehrziel: schnell vom Hafen abholen, sonst frisst die Standkosten den Erlös

Tests

3 neue Gruppen, ~10 Cases (Test 23-25). Total 25 Gruppen / ~90 Cases.

Music-Player (parallel, Mail 0540)

4 Tracks aus deinem _claimed/-Ordner gewählt + reingespielt. Music-Widget aktiv.

Intermodal-Aufträge — bewusst verschoben auf Phase 4b

Atlas-Plan Phase 4 §3 fordert „intermodale Aufträge (Leg1 LKW → Leg2 Zug → Leg3 LKW)". Das ist konzeptionell der Brocken:

  • Contract-Schema-Erweiterung: contract.legs: [{mode, originId, targetId}] statt einzelner originLocationId/targetLocationId
  • Multi-Vehicle-Übergabe: Container am Übergabepunkt warten, ein anderes Vehicle übernimmt das nächste Leg
  • Trip-State-Machine pro Leg (statt pro Contract): jedes Vehicle bekommt einen Leg, nach Übergabe IDLE
  • Übergabe-Synchronisation: am Terminal müssen beide Vehicles zeitlich passen (oder Container warten + Standkosten)

Das ist mehr Code als Phase 4a + 3 zusammen. Sauber abgrenzen wäre:

Phase 4b — Intermodal:

  • Schema-Erweiterung Contract um legs[]
  • Engine-Logik für Vehicle-Übergabe
  • LOADING/UNLOADING als Leg-Übergangs-Punkte
  • L3-Auftrags-Templates mit intermodalen Strecken (z.B. Asien → Hamburg-Hafen → München-Terminal → Augsburg-Kunde)
  • Tests: vollständiger 3-Leg-Trip mit Übergabe

Mein Vorschlag: Phase 4b separat nach Thomas-Browser-Test von 4a. Falls Phase 4a schon viel ist, lieber jetzt stabilisieren, dann 4b.

Offene Atlas-Punkte

  1. Wrapper-Erweiterung lg-routes-osm.json (Mail 0500, noch offen)
  2. Wrapper-Erweiterung _claimed/-Music-Pattern dokumentieren — sehr hilfreiches Pattern, das könnte als Memory/CLAUDE.md-Eintrag für künftige Module fest etabliert werden

Was Phase 4a NICHT enthält

  • Keine Intermodal-Aufträge (Phase 4b)
  • Keine Hilfestufen außer BLINK_EXACT (Phase 5)
  • Keine Events (Phase 5)
  • Kein optimal-Strategie-Algorithmus (Phase 5+)
  • Keine Lehrkraft-Konfiguration (Phase 7)

Reminder-Quittung

  • noop läuft weiter (eigener Loop)
  • Sprachregel 4a (alle neuen Texte: „Schiff", „Container", „Hafen")
  • iPad 4c (Music-Widget aus DS, ≥36px)
  • Autosave 7b (onStateChange greift)
  • Pattern-Lesson Wrapper-Pfade — Wrapper-Anfrage 0500 noch offen bei dir, kein Bruch in Phase 4a (alle neuen Routen werden zur Laufzeit aus seeds gelesen, kein Asset-Refs in HTML)

Offen für Thomas

  • Browser-Test L1 mit Music-Player (rechts oben Track-Wahl)
  • Test-Harness 25 Gruppen / ~90 Cases
  • Phase-4b-Go: jetzt direkt oder erst nach Browser-Validierung von 4a?

— Logistik