Editor/Stair/ArchStairHostCarving.cs
namespace Sunless.Architecture;
public sealed class ArchStairHostCarving : IArchHostCarving {
public IEnumerable<List<Vector2>> Mouths( IArchCarveHost host, object payload, ArchBuilding building, ArchKit kit ) {
if ( payload is not ArchStairPart stair ) {
return Enumerable.Empty<List<Vector2>>();
}
return ArchStairCarve.Resolve( host, stair, building, kit ).Runs
.Where( run => run.Last )
.Select( run => run.Axes.Rect( run.Length - run.Going * 2f, run.Length + run.Going * 0.5f,
-ArchProbe.Step, run.Width + ArchProbe.Step ) );
}
public IEnumerable<ArchCarveVolume> Volumes( IArchCarveHost host, object payload, ArchBuilding building, ArchKit kit ) {
return payload is ArchStairPart stair
? ArchStairCarve.Volumes( host, stair, building, kit )
: Enumerable.Empty<ArchCarveVolume>();
}
}