Speichere individuelle Haar- und Augenfarben je Charakter
All checks were successful
Deploy to production / deploy (push) Successful in 2m24s
All checks were successful
Deploy to production / deploy (push) Successful in 2m24s
This commit is contained in:
38
backend/docs/falukant-character-appearance.md
Normal file
38
backend/docs/falukant-character-appearance.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# Dauerhafte Charakterfarben
|
||||
|
||||
`falukant_data.character` enthält `hair_color` und `eye_color` als `VARCHAR(7)`.
|
||||
Die Sequelize- und API-Felder heißen `hairColor` und `eyeColor`.
|
||||
Erlaubt sind sechsstellige Hex-Farben einschließlich `#`, z. B. `#69432d`.
|
||||
|
||||
Migration: `20261104000001-add-character-appearance.cjs`.
|
||||
Im Backend-Verzeichnis mit `npm run db:migrate` ausführen, bevor der neue
|
||||
Backend-Code startet. Die Migration wird hier nur in einer isolierten
|
||||
Testdatenbank ausgeführt; die produktive Datenbank wird nicht verändert.
|
||||
|
||||
Die Migration vergibt für bestehende Charaktere einmalig Farben aus einer
|
||||
Palette mit sieben Haar- und sechs Augenfarben. Bereits vorhandene Werte
|
||||
bleiben erhalten, auch beim erneuten Ausführen der Migration. Ein separater
|
||||
DB-Trigger vergibt Farben für neue Charaktere, einschließlich roher INSERTs
|
||||
des Rust-Daemons für NPCs und Neugeborene. NULL-Werte bei Updates behalten die
|
||||
bisherige Farbe. Andere explizite, gültige Hex-Farben sind ebenfalls zulässig.
|
||||
Die Farben ändern sich beim Altern nicht automatisch. Vererbung und Ergrauen
|
||||
sind noch nicht implementiert; die aktuelle Palette ist eine Spielverteilung.
|
||||
|
||||
Familie (Partner, Kinder, Liebschaften), Taufliste, Direktoren sowie politische
|
||||
und kirchliche Amtsträger liefern die Farben an die vorhandene 3D-Anzeige.
|
||||
Die Spielerdaten und das Dashboard liefern sie ebenfalls. Die 3D-Komponenten
|
||||
verwenden die gespeicherten Farben nur in den markierten Haar-/Irisflächen.
|
||||
Unmarkierte Altersmodelle und die 2D-Porträts behalten ihre Originaltexturen.
|
||||
Der Modell-Editor bleibt eine Vorschau ohne Schreibzugriff auf Charakterdaten.
|
||||
|
||||
Prüfung mit einer ausdrücklich bereitgestellten, wegwerfbaren Datenbank:
|
||||
|
||||
```bash
|
||||
TEST_DATABASE_URL='postgresql://…/yourpart_development_test' \
|
||||
node --test tools/characterAppearance.test.mjs
|
||||
```
|
||||
|
||||
Der Integrationstest prüft Bestandsdaten, wiederholte und teilweise manuell
|
||||
vorbereitete Migrationen, beide DB-Trigger zusammen, rohe INSERTs,
|
||||
Sequelize-Erstellung/-Updates, Farbvalidierung und Rollback. Er verwirft
|
||||
das Schema `falukant_data` ausschließlich in `yourpart_development_test`.
|
||||
Reference in New Issue
Block a user