Editor-side interface and static accessor for exterior stair placement in an architecture tool. Defines IArchExteriorStairs with Preview and Place methods, and a static ArchExteriorStairs helper that resolves an implementation via ArchRoles.One<T>() and forwards calls.
namespace Sunless.Architecture;
public interface IArchExteriorStairs
{
bool Preview( ArchPlan plan, ArchKit kit, ArchFixtureStation? at, ArchExteriorStairPart draft );
ArchExteriorStairPart Place( ArchPlan plan, ArchKit kit, ArchFixtureStation? at, ArchExteriorStairPart draft, out ArchBuilding host );
}
public static class ArchExteriorStairs
{
static IArchExteriorStairs Load() => ArchRoles.One<IArchExteriorStairs>();
public static bool Preview( ArchPlan plan, ArchKit kit, ArchFixtureStation? at, ArchExteriorStairPart draft )
{
return Load()?.Preview( plan, kit, at, draft ) == true;
}
public static ArchExteriorStairPart Place( ArchPlan plan, ArchKit kit, ArchFixtureStation? at, ArchExteriorStairPart draft, out ArchBuilding host )
{
var stairs = Load();
if ( stairs is null )
{
host = null;
return null;
}
return stairs.Place( plan, kit, at, draft, out host );
}
}