Editor/Stair/ArchExteriorStairAuthoring.cs
namespace Sunless.Architecture;
public sealed class ArchExteriorStairAuthoring : IArchExteriorStairs {
public bool Preview( ArchPlan plan, ArchKit kit, ArchFixtureStation? at, ArchExteriorStairPart draft ) {
if ( ArchExteriorStair.Place( plan, kit, at, draft, out var host ) is not { } sketch ) {
return false;
}
var shape = ArchExteriorStair.Resolve( sketch, host, kit );
foreach ( var leg in shape.Flights ) {
ArchStairGhost.Flight( leg.Shape, leg.Stair.BaseHeight );
}
foreach ( var landing in shape.Landings ) {
ArchGhost.Ring( landing.Outline, landing.Height );
}
ArchGhost.Note( new Vector3( sketch.Anchor.x, sketch.Anchor.y, sketch.TopHeight + 8f ),
$"fire escape — {sketch.Rise:0} climb, {shape.Landings.Count} landings" );
return true;
}
public ArchExteriorStairPart Place( ArchPlan plan, ArchKit kit, ArchFixtureStation? at, ArchExteriorStairPart draft, out ArchBuilding host ) {
return ArchExteriorStair.Place( plan, kit, at, draft, out host );
}
}