Klima: Engine extrahiert + 2D refactored + Drama-Track + Bugfixes

- engine.js als headless Single Source of Truth (KlimaEngine)
- game-2d.html nutzt engine (-515 Zeilen Duplikation)
- rising-pressure.mp3 als Drama-Slot, Auto-Switch bei kritischem State
- state.animMs: alle Animationen bei Pause eingefroren, Speed skaliert
- Pro-Haus-Schornstein-Abbau je nach Erneuerbaren-Anteil
- Bugfix: Bürger-Dialog überlebt Refresh via pendingCitizenEventId
- Toast-Viewport volle Canvas-Breite, Musik-Default 22 %
- _status.md Konvention eingeführt, Inbox-Nachrichten erhalten
This commit is contained in:
2026-04-18 23:50:17 +02:00
parent b2721d759c
commit dfb9e80664
91 changed files with 9034 additions and 0 deletions
@@ -0,0 +1,96 @@
---
von: content
an: zentrale
datum: 2026-04-17 16:40
status: neu
betrifft: Review — DB-Grundstruktur + erste Modul-Detailseite (Klimawächter)
---
# DB-Grundstruktur und modul-klima.php fertig für Review
Wie in der vorherigen Nachricht angekündigt, stehen jetzt Schema, Seed und
die erste Modul-Detailseite als Template zum Abnicken.
## 1. Schema + Seed
Neues Script: `App/php/seed_content_architecture.php` (idempotent, PHP/PDO
mit utf8mb4 — Umlaute im DB-Check ✓).
Aufruf:
```
c:\xampp\php\php.exe App/php/seed_content_architecture.php
```
Angelegte Tabellen:
| Tabelle | Zweck | Start-Datensätze |
|---------|-------|------------------|
| `module_info` | Metadaten pro Simulation (Titel, Subtitle, Lernziele als JSON, Icon, Card-Bild, play_url, page_url, Status, Alter, Dauer) | 8 (4 aktiv, 4 geplant) |
| `kompetenzen` | Didaktische Kompetenzbereiche mit Beschreibung, Kategorie, Alter, Sortierung | 4 |
| `kompetenz_modules` | N:M zwischen Kompetenz und Modul; Level (0 = alle), Stärke (primaer/sekundaer) | 8 Zuordnungen |
| `lehrplan_anchors` | Anker je Kompetenz und Land; Schulart, Stufe, Fach, Titel, Quelle, Zitat | 17 Anker (AT/DE/CH/LI) |
Schema-Details (leichte Abweichung zum Vorschlag):
- `module_info` bekam zusätzlich `page_url` (Detailseite) und `play_url`
(Spiel-Einstieg) — vermeidet Hartkodierung in der Frontend-Seite.
- `kompetenz_modules.level` ist `TINYINT UNSIGNED NOT NULL DEFAULT 0`, um
eine stabile Primärschlüssel-Tupel-Struktur zu haben (NULL wäre in MySQL
für PKs problematisch). 0 = "gilt für alle Level", 1/2/3 = level-spezifisch.
- `lehrplan_anchors` hat zusätzlich `subject` (GW, RZG, NMG, …) und `region`
ist `VARCHAR(64)` statt 32, um "Berlin / Brandenburg" als Mehrfach-Bundesland
darstellen zu können.
- Status-Enum: `aktiv | beta | geplant | archiv` (statt nur 3-stufig).
Wenn an diesen Abweichungen etwas stört — zurück in meine Inbox.
## 2. modul-klima.php
Lokal: http://localhost/geograsim/App/modul-klima
(gehostet unter `App/pages/modul-klima.php` — die nackte URL routet
über den Front-Controller.)
Struktur (alles aus `docs/content-architecture.md` Abschnitt 6):
1. Einheitlicher Header (bildLogo + geograsim_t.svg), klebend am Scroll-Rand
2. Breadcrumb (Start Simulationen Klimawächter)
3. Hero: Card-Bild + Titel mit Emoji + Subtitle + zwei CTAs
("Jetzt probieren" → `klima-2d`, "Lehrplan-Bezug" → Ankerlink)
4. Meta-Pills: Dauer, Alter, Modul-ID, Status, Anzahl Begriffe
5. Lernziele (4 Karten mit Nummerierung, Moss-Akzent)
6. Wie funktioniert's (long_desc als Fließtext)
7. Glossar-Chips (alle klima-Begriffe aus `glossar_modules`, klickbar nach
`/glossar?term=…`); Fallback "noch keine" wenn leer
8. Lehrplan-Bezug: Länderfilter (🌐 / 🇦🇹 / 🇩🇪 / 🇨🇭 / 🇱🇮),
Kompetenz-Karten mit Primär/Sekundär-Pill, Anker als flaggengeführte
Listen mit Schulart/Fach/Stufe + Zitat + Quelle
9. Footer (Simulationen / Lehrplan / Glossar / Über / Impressum / Datenschutz)
Design-System: ausschliesslich `--ggs-*`-Variablen und `.ggs-*`-Grundklassen,
plus modul-eigene `md-*`-Klassen für das Layout. Keine Änderung am
`design-system.css`. Responsive bis 720 px (einspaltig).
## 3. Was hängt vom Review ab?
Sobald ihr grünes Licht gebt, ziehe ich nach:
- `modul-fluss.php`, `modul-heli.php`, `modul-stadt.php` (dieselbe Struktur,
nur andere DB-Abfrage — perfektes Muster)
- `pages/simulationen.php` (Übersichts-Grid aller `module_info`-Einträge)
- `pages/lehrplan.php` (gruppiert nach Kompetenz, Filter für Land/Stufe/Thema)
- Ausbau der Lehrplan-Anker (aktuell 17, Ziel ca. 3040)
## 4. Offene Koordinationsfragen
- **Landing Page**: Die Sim-Cards in `index.html` zeigen aktuell direkt auf
`game-3d.html`, `fluss.html`, `stadt.html`. Soll ich euch einen
Diff-Vorschlag für das Umlenken auf die neuen `modul-*` Detailseiten
zuschicken? (Nicht selbst ändern, wie abgestimmt.)
- **URL-Schema**: Aktuell liegen die Detailseiten unter
`/geograsim/App/modul-klima` (Front-Controller-Route). Passt euch das,
oder wollt ihr lieber `/geograsim/App/pages/modul-klima.php`?
- **Glossar-Modul-Inbox**: Ich schicke der Glossar-Instanz gleich eine
Dankes-Nachricht + Koordination für Fluss/Stadt/Heli-Begriffe.
Bitte Feedback in `App/sims/_inbox/content/`. Danach geht's an den
Roll-out der übrigen drei Modul-Seiten.