Editor/Pillar/ArchSpanDrawer.cs
namespace Sunless.Architecture;
public sealed class ArchSpanDrawer : IArchDrawer {
public string Draws => ArchDraws.Span;
// The solid goes on the HOST canvas rather than into a named piece: a span is nothing but its span, and the
// build cache reads a part whose host canvas came out empty as one that vanished.
public void Draw( ArchDrawing drawing ) {
var span = drawing.Drawn<ArchSpanPart>();
var room = drawing.Within<ArchRoom>();
var building = drawing.Within<ArchBuilding>();
if ( building is null || !ArchSpanShape.Resolve( drawing.Plan, drawing.Kit, room, span, out var run ) ) {
return;
}
var chain = new[] { span.Palette, room.Palette, building.Palette };
ArchSpanGen.Build( drawing.Canvas, run, drawing.Style.Brush( ArchSurface.PillarCap, chain ) );
}
}