Editor/Data/ArchSurface.cs
using System;
using System.Collections.Generic;
using System.Linq;
using Sandbox;
namespace Sunless.Architecture;
public enum ArchSurface {
WallExterior,
WallInterior,
WallCap,
Reveal,
Trim,
Sill,
Baseboard,
Floor,
Ceiling,
Roof,
RoofEdge,
Soffit,
Gutter,
StairTread,
StairRiser,
StairStringer,
Pillar,
PillarCap,
DoorLeaf,
Siding,
Wainscot,
WindowFrame,
WindowSash,
Glass,
Deck,
Railing,
Foundation,
// Append only - inserting mid-list renumbers every ordinal after it.
Threshold,
Road,
Pavement,
Kerb,
RoadLine,
Panel,
Post,
Wire,
RoofFrame,
Bridge,
Pier,
Lining,
Portal,
// Appended, never inserted - a mid-list role silently repaints the whole map.
WallBase,
// Burglar bar, security gate, boarded panel - the one thing on every window in these suburbs.
Grille,
Shutter,
Sign,
// Chimney cowls, vent stacks, tanks: what stands on a deck rather than what the deck is.
Plant,
// Services. Plumbing and electrical are two roles rather than one, so a map can paint a red rainwater run
// apart from a grey cable tray without touching either part; the hangers are a third, because galvanised
// stock reads as neither.
Pipework,
Cabling,
Bracket,
// Canvas over a shopfront. Its own role, or a striped awning can only be painted by repainting every
// roller shutter in the map with it.
Awning,
// Fitted joinery. The box, the doors on it and the counter over it are three roles because they are three
// materials in every kitchen there has ever been - melamine carcass, painted front, stone top.
CabinetCarcass,
CabinetFront,
Worktop,
// Ironmongery. Its own role because a handle is the one part of a cabinet that is never the colour of the
// door it is screwed to.
CabinetHandle
}