HammeriteBoundaryWall
Core: the map. Inherits RefCounted
A cell-wall face after portal apertures have been punched out of it.
One per kept boundary face. Produced once per graph compile (HammeriteMap.get_boundary_walls()) and shared by every renderer, so the aperture decomposition runs once per edit rather than once per viewport redraw. Runtime-derived, never serialized. Read it and do not change it: pieces and openings are the arrays every renderer draws from until the next compile.
Properties
| Type | Name | Default |
|---|---|---|
HammeriteFace | face | null |
PackedVector3Array[] | pieces | [] |
bool | fill_surface | false |
PackedVector3Array[] | openings | [] |
Methods
| Returns | Method |
|---|---|
bool | looks_into_void() |
Property descriptions
face
var face: HammeriteFace = null
The source cell-wall face - use it for the plane, texture, outward normal and UV projection.
pieces
var pieces: PackedVector3Array[] = []
The convex wall polygons (world-space, on the face plane, wound CCW about the outward normal like HammeriteFace.get_vertices()) that remain after apertures are removed. Empty means the whole wall is an opening (fully portaled) and nothing should be meshed or outlined for it.
fill_surface
var fill_surface: bool = false
Whether this wall is the surface of a fill - the top of a pool - rather than a wall of a room. It is drawn, and it is NOT solid. The opening between the two cells is deliberately not punched out of it (that opening is the surface), so unlike every other wall its polygon is not a statement about where the world stops: you swim up through it. Whoever builds collision has to leave it out, or the water has a lid on it.
openings
var openings: PackedVector3Array[] = []
The removed regions that are genuine passages (world-space polygons on the face plane): portal apertures and interpenetration openings where this wall opens into another cell. Excludes the coincident-wall dedup removals, which are a shared SOLID surface meshed by the winning cell, not a passage. Used to draw portals as edges in the viewports - a doorway and a corner interpenetration both produce openings, so both read as connections.
Method descriptions
looks_into_void()
func looks_into_void() -> bool
Whether this wall is see-through with nothing but rock behind it - a window into the void. Every cell wall has rock on its far side: whatever opens onto another cell has already been punched out of pieces. So a transparent texture here shows the author the outside of the world, or nothing at all when it is fully clear, and the room it bounds looks as if it was never carved. The surface of a fill is the one wall with something behind it, and is exempt.