← Zurück zur Anfrage
RI-11 Namespace: Verse

Region-System

Temperatur-Abhängigkeit: Gefahren-Erkennung und Room-Hierarchie

Temperatur → Region Verbindung
Regions sind die Grundbausteine aus denen Districts und Rooms aufgebaut werden. Die Room-Hierarchie (Region → District → Room) bestimmt wie Temperatur berechnet wird. DangerFor nutzt die Raumtemperatur für Pawn-AI.
#1 Region → District → Room

Region = 12×12 Zellen, Grundbaustein.
District = zusammenhängende Regions gleichen Typs (Normal/Fence/ImpassableFreeAir).
Room = Districts die über Portal-Regions (Türen) verbunden sind.

Temperatur-Bezug: Die Temperatur wird pro Room berechnet, nicht pro Region oder District. Ein Raum kann mehrere Districts haben, aber hat eine einzige Temperatur.

Verse/Room.cs:1-937 Verse/RegionAndRoomUpdater.cs:1-409

#2 DangerFor — Temperatur-Gefahren Verse/Region.cs

Region.DangerFor(Pawn) prüft die Raumtemperatur gegen den SafeTemperatureRange des Pawns. Ergebnis wird gecacht.

Danger-LevelBedingungPawn-Verhalten
NoneTemperatur innerhalb SafeRangeNormal
SomeFeindliche PräsenzVorsichtig
DeadlyTemperatur außerhalb SafeRange / VakuumMeidet den Raum

Das bedeutet: Pawns gehen nicht freiwillig in Gefrierkammern oder brennende Räume, es sei denn sie werden drafted.

#3 Room-Rebuild → RegenerateEqualizationData Verse/RegionAndRoomUpdater.cs:1-409

Wenn eine Wand/Tür gebaut oder entfernt wird:

Zelle dirty → RegenerateNewRegions → FloodAndSetNewRegionIndex → CreateOrAttachToExistingDistricts → CombineDistrictsIntoRooms (DFS) → RegenerateEqualizationDataShuffle()

MP-Kritisch — Die gesamte Rebuild-Pipeline muss auf allen Clients identisch und zum gleichen Zeitpunkt ablaufen.