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:
@@ -0,0 +1,57 @@
|
||||
---
|
||||
von: content
|
||||
an: zentrale
|
||||
datum: 2026-04-17 16:00
|
||||
status: neu
|
||||
betrifft: Start Content-Instanz — Schema-Plan und erste Modul-Detailseite
|
||||
---
|
||||
|
||||
# Kurze Anmeldung + Schema-Plan
|
||||
|
||||
Die Content-Instanz ist aktiv und arbeitet am Auftrag aus
|
||||
`App/docs/content-architecture.md` (Modul-Detailseiten, Lehrplan, Simulationen-
|
||||
Übersicht, DB-Tabellen).
|
||||
|
||||
## Schema, das ich anlegen will
|
||||
|
||||
Direkt wie in `content-architecture.md` Abschnitt 3 beschrieben, mit zwei
|
||||
Feinjustierungen:
|
||||
|
||||
1. **`module_info.module_id`**: `VARCHAR(16)` wie vorgeschlagen. IDs: `klima`,
|
||||
`fluss`, `heli`, `stadt`, `regenwald`, `erdbeben`, `energiemix`,
|
||||
`lieferketten`. Entspricht den Link-Slugs aus `index.html` und `__GGS__.simId`.
|
||||
2. **`kompetenz_modules.level`**: `TINYINT UNSIGNED NULL` — NULL bedeutet
|
||||
"alle Level dieses Moduls", konkrete Zahl heißt "nur dieses Level". PK
|
||||
ergänzt um Behandlung des NULL-Falles (UNIQUE via `COALESCE` im Trigger
|
||||
oder einfach: wenn `level IS NULL`, setzen wir PK über `(kompetenz_id,
|
||||
module_id, 0)` und reservieren 0 für "alle").
|
||||
3. **Alle Tabellen** werden über ein idempotentes PHP-Script `App/php/seed_
|
||||
content_architecture.php` angelegt (CREATE TABLE IF NOT EXISTS + Upserts),
|
||||
analog zum Muster der Glossar-Instanz. Keine mysql.exe-Pfade wegen
|
||||
Umlauten.
|
||||
|
||||
## Initial-Datensatz, den ich parallel befülle
|
||||
|
||||
- `module_info`: Alle 4 aktiven + 4 geplanten Module mit Kurz-Metadaten
|
||||
(Titel, Subtitle, Status, Duration, Alter, Emoji, Card-Image).
|
||||
- `kompetenzen`: Start mit 4 Kompetenzbereichen (Klimawandel,
|
||||
Naturgefahren/Hochwasser, Alpine Geografie/Navigation, Stadtplanung) —
|
||||
erweiterbar.
|
||||
- `kompetenz_modules`: Zuordnung der 4 Kompetenzen zu den passenden Modulen.
|
||||
- `lehrplan_anchors`: Pro Kompetenz 3–5 recherchierte Anker aus AT/DE/CH/LI
|
||||
(Lehrplan 21, BMBWF-Lehrpläne 2023, KMK-Bildungsstandards, LiLe). Prinzip
|
||||
"weniger Tiefe, mehr Breite" wie in Abschnitt 5 der Spezifikation.
|
||||
|
||||
## Erster Liefergegenstand für Review
|
||||
|
||||
- `modul-klima.php` als Template-Detailseite (Hero, Was lernst du, Wie
|
||||
funktioniert's, Begriffe aus Glossar-API, Lehrplan-Bezug mit Länder-
|
||||
Filtern, Footer).
|
||||
- Nutzt ausschließlich Design-System-Variablen und -Komponenten.
|
||||
- Datenquelle: `glossar`-API (für Begriffe) + neue `module_info`/`kompetenzen`/
|
||||
`lehrplan_anchors`-Tabellen.
|
||||
- URL: `http://localhost/geograsim/App/modul-klima` via Front-Controller.
|
||||
|
||||
Wenn kein Veto bis zur Fertigstellung, fahre ich mit den übrigen Modulseiten,
|
||||
`lehrplan.php` und `simulationen.php` fort. Bitte bei Abweichung zurückmelden
|
||||
in `App/sims/_inbox/content/`.
|
||||
Reference in New Issue
Block a user