diff --git a/docs/superpowers/plans/2026-09-16-strassen.md b/docs/superpowers/plans/2026-09-16-strassen.md index b130b72..3cc8c7f 100644 --- a/docs/superpowers/plans/2026-09-16-strassen.md +++ b/docs/superpowers/plans/2026-09-16-strassen.md @@ -1725,11 +1725,12 @@ In `tools/extract/leonida/emit.py` die Signatur und den Rumpf ersetzen. `_rings` def _line(line, i: int, j: int) -> list[list[float]]: """Ein Linienzug in Chunk-Koordinaten, richtungsunabhängig festgelegt. - normalize() dreht eine Linie in eine feste Laufrichtung. Das ist hier anders als bei den - früheren centerlines erwünscht: Die Laternen wählen ihre Seite seit Teil 2 aus der - Kantenrichtung *und* prüfen gegen die Gehwegfläche, hängen also nicht mehr an der - Listenposition (siehe props.js). Damit darf die Ausgabe sortiert und normalisiert werden, - und ein Lauf erzeugt wieder Datei für Datei dasselbe. + normalize() dreht eine Linie in eine feste Laufrichtung, und sortiert wird nach der Ausgabe + selbst. Beides ist nur zulässig, solange niemand Reihenfolge oder Laufrichtung eine Bedeutung + gibt — bei den früheren centerlines tat das vergeLampPoints() in props.js, das die Straßenseite + einer Laterne aus dem Listenindex ablas. sidewalkLampPoints() wählt die Seite aus der Geometrie + und prüft gegen die Gehwegfläche; erst damit darf die Ausgabe sortiert werden, und ein Lauf + erzeugt wieder Datei für Datei dasselbe. """ ox = SLICE["x0"] + i * CHUNK_SIZE oy = SLICE["y1"] - j * CHUNK_SIZE @@ -2202,6 +2203,8 @@ Die erzeugten Daten kommen erst in Task 16 in einen eigenen Commit — hier **ni ### Task 13: Browser — Geometrie der neuen Schichten +> **Seit Task 10 gebrochen, hier zu reparieren:** `buildChunkGeometry()` liest `chunk.roads.filter(...)` ohne Rückfall und wirft mit Chunks im neuen Format einen `TypeError`. Die Fixtures in `tests/geometry.test.js` sind von Hand im alten Format gebaut und merken das nicht — stell sie mit um, sonst prüfen sie weiter eine Schnittstelle, die es nicht mehr gibt. + **Dateien:** - Ändern: `src/world/geometry.js` - Test: `tests/geometry.test.js` (erweitern) @@ -2414,6 +2417,8 @@ git commit -m "feat(world): Fahrbahnmulde, Bordsteinwand und Markierungen bauen" ### Task 14: Browser — Materialien, Kollision, Laternen +> **Seit Task 10 still gebrochen, hier zu reparieren:** `props.js` liest `chunk.centerlines ?? []` und `chunk.roads ?? []`. Beide Schlüssel gibt es nicht mehr — es entsteht kein Fehler, sondern einfach **keine einzige Laterne** auf der ganzen Karte. Die Fixtures in `tests/props.test.js` sind im alten Format gebaut und merken das nicht. Nach dieser Aufgabe muss eine Laterne aus einem Chunk im neuen Format entstehen; prüf das mit einem Test, der genau so einen Chunk benutzt. + **Dateien:** - Ändern: `src/world/materials.js`, `src/world/streaming.js`, `src/world/props.js` - Test: `tests/materials.test.js`, `tests/streaming.test.js`, `tests/props.test.js` @@ -2597,6 +2602,8 @@ git commit -m "feat(world): Materialien, Kollision und Laternen für die neuen S ### Task 15: Minimap und Begehbarkeit +> **Seit Task 10 gebrochen, hier zu reparieren:** `overview.py` liest `chunk["roads"]` und `item["bridge"]` ohne Rückfall und wirft mit Chunks im neuen Format einen `KeyError`. Die Fixtures in `tools/extract/tests/test_overview.py` sind im alten Format gebaut; stell sie mit um. + **Dateien:** - Ändern: `tools/extract/overview.py` - Test: `tools/extract/tests/test_overview.py`