22 lines
915 B
Markdown
22 lines
915 B
Markdown
# 02 — Typ-Registry statt Enums
|
|
|
|
Type: grilling
|
|
Status: open
|
|
Blocked by: 01
|
|
|
|
## Question
|
|
|
|
Wie werden Item-Typen, Rassen und Klassen zu Daten statt zu Rust-Enums?
|
|
|
|
`enum ItemType` kann ein Modder nicht erweitern — es muss eine Registry aus String-IDs werden.
|
|
Zu klären:
|
|
|
|
- Was deklariert ein Typ? Ausrüstungsslot, welche Felder Pflicht sind, welche Effekte er tragen darf.
|
|
- Gibt es Slots als eigene Registry (`core:helmet`), oder ist der Slot ein fester Aufzählungswert?
|
|
- Wie prüft das Spiel beim Laden, dass ein Item einen existierenden Typ nennt — und was passiert, wenn nicht?
|
|
- Wie unterscheiden sich Rasse und Klasse strukturell, oder sind beide dasselbe: eine benannte Effektliste
|
|
plus Metadaten?
|
|
- Was verliert man ohne Enum an Compile-Zeit-Sicherheit, und was fängt das ab (Validierung beim Laden)?
|
|
|
|
Ergebnis: das Registry-Datenmodell plus TOML-Beispiel für einen selbstdefinierten Item-Typ.
|