Wall¶
Vanilla game class for wall structures. Inherits from LargeStructure. Wall-painting flow must honor inheritance ordering when dispatching.
Wall extends LargeStructure inheritance ordering¶
Source: F0029f.
Wall extends LargeStructure. The wall branch in PaintNetwork must come first. If walls-painting is disabled for a wall target, the method returns early rather than falling through to the large-structure grid flood.
Visual wall variants share the Wall C# class¶
Source: Assembly-CSharp.dll decompile, full : Wall subclass scan.
The visual wall variants the player sees in Stationpedia ("Wall", "Wall Flat", "Wall Arched", "Wall Iron", "Wall Padded", "Wall Composite", "Wall Glass", and so on) are not separate C# classes. They are Unity prefab variants of the same Wall class, distinguished by:
- A different prefab
PrefabHashandPrefabName(e.g.StructureWall,StructureWallFlat,StructureWallArched). - A different
Wall.WallMaterialTypeenum value (Default,Metal,Composite,Glass) for the four material families. - A different mesh assigned to
_wallMesh.
The complete set of C# classes that derive from Wall is exactly four:
| Class | Inheritance | Notes |
|---|---|---|
RocketCrewUmbilicalDoor |
: Wall |
Crew umbilical door for rockets. |
ShutteredWindowConnector |
: Wall, IWindowShutter |
Shutter connector. |
WallTransparent |
: Wall |
Glass / window walls. ShutteredWindow : WallTransparent extends this further. |
Floor |
: Wall |
Floor tiles. LadderPlatform : Floor extends this further. |
There is no FlatWall, ArchedWall, WallShort, WallTall, or per-visual-style subclass anywhere in Assembly-CSharp.dll.
Implication for type-keyed flood-fill code. Code that filters by Thing.GetType() (exact type, not is) treats every visual wall variant as the same target. originalWall.GetType() == typeof(Wall) holds for a Wall, a Flat Wall, an Arched Wall, an Iron Wall, etc., all at once. A flood-fill keyed on s.GetType() != targetType does not separate them; it paints every Wall instance bounding the same Room, regardless of visual variant. Distinguishing visual variants requires comparing PrefabHash (or PrefabName), not GetType().
Verification history¶
- 2026-04-20: page created from the Research migration; verbatim content lifted from F0029f. No conflicts.
- 2026-04-28: added "Visual wall variants share the Wall C# class" section after a SprayPaintPlus bug report ("wall painting is spilling over to different types of walls"). Confirmed via decompile scan that the visual variants are prefabs of one C# class, not distinct types. Additive content; no conflict.
Open questions¶
None at creation.