Editor-side affector that implements IArchAffector for walkway connections. It declares its Kind and Order, resolves walkway connections by delegating to ArchWalkwayConnection.Resolve, checks if a payload closes (is an ArchRoom with Spans true), and removes walkway connections via ArchWalkwayConnection.Remove.
namespace Sunless.Architecture;
public sealed class ArchWalkwayAffector : IArchAffector
{
public ArchKind Kind => ArchKind.Walkway;
public int Order => 10;
public int Resolve( ArchPlan plan, ArchKit kit ) => ArchWalkwayConnection.Resolve( plan, kit );
public bool Closes( object payload ) => payload is ArchRoom { Spans: true };
public void Close( ArchPlan plan, object payload )
{
if ( payload is ArchRoom link )
{
ArchWalkwayConnection.Remove( plan, link );
}
}
}