38 lines
1.9 KiB
Markdown
38 lines
1.9 KiB
Markdown
# 10 — Raum-Prefab-Format
|
|
|
|
Type: grilling
|
|
Status: open
|
|
Blocked by: 03
|
|
|
|
## Question
|
|
|
|
Wie sieht ein Raum-Prefab in TOML aus, und wie fügt der Generator daraus eine Etage zusammen?
|
|
|
|
Entschieden ist der Hybrid: Modder bauen Prefabs, der Generator setzt prozedural zusammen. Zu klären:
|
|
|
|
- Prefab-Inhalt: Grid als ASCII-Block oder als Koordinatenliste? Wie werden Ausgänge markiert?
|
|
Wie Spawn-Punkte für Gegner, Loot, NPCs, Treppen?
|
|
- Wie flexibel ist die Größe — feste Raster oder beliebige Rechtecke, Rotation und Spiegelung erlaubt?
|
|
- Verbindungsregeln: Wie weiß der Generator, welche Prefabs aneinanderpassen? Tags an den Ausgängen?
|
|
- Steuerung durch Daten: Welche Prefabs auf welcher Etage, mit welcher Gewichtung? Pflichträume
|
|
(Eingang, Treppe, Boss) versus optionale?
|
|
- Garantien: Wie wird sichergestellt, dass die Treppe erreichbar ist?
|
|
- Wie greift ein Mod ein — nur neue Prefabs hinzufügen, oder auch Generator-Parameter ändern?
|
|
|
|
Ergebnis: Prefab-Schema mit Beispiel plus die Regeln, nach denen der Generator zusammensetzt.
|
|
|
|
## Vorgabe aus Ticket 07
|
|
|
|
`Game` besitzt genau **einen** `Floor`, dessen Innenbau — Grid, Räume, Bodenloot, Ausgänge — dieses
|
|
Ticket entscheidet. Besuchte Etagen werden verworfen, es gibt kein Backtracking: Der Generator muss
|
|
also keine begehbaren Rückwege garantieren, aber **ein Händlerraum muss auf jeder Etage auftauchen
|
|
können**, sonst ist Handel nach dem Abstieg unerreichbar. Bodenloot ist `ItemInstance`, also
|
|
`{ def, affixes }`, nicht bloß eine ID.
|
|
|
|
## Vorgabe aus Ticket 03
|
|
|
|
Prefabs sind eine **weitere Registry über dieselbe Ladepipeline**, kein eigener Lader — das
|
|
beantwortet die letzte Frage oben halb: Hinzufügen ist der Normalfall, Ersetzen geht über `overrides`.
|
|
Offen bleibt, ob **Generator-Parameter** (Etagen-Tabellen, Gewichtungen, Pflichträume) ebenfalls
|
|
Registry-Einträge sind — dann mit derselben Maschine moddbar — oder ein Sonderfall.
|