915 B
915 B
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.