Files
rustkeep/.scratch/rustkeep-1.0/issues/10-raum-prefab-format.md

1.9 KiB

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.