Editor/Tool/ArchExteriorStairs.cs
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 );
	}
}