Editor/Walkway/ArchWalkwayAffector.cs

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 );
		}
	}
}