Editor/Pipe/ArchPipeSheets.cs

Editor UI glue for architecture pipe parts. Provides implementations of IArchPipeForms and IArchSheet that route to ArchPipeUi methods to build inspector panels for ArchPipePart and ArchPipeBracketPart.

namespace Sunless.Architecture;

public sealed class ArchPipeForms : IArchPipeForms
{
	public void Run( ToolSidebarWidget panel, ArchPipePart part, Action refresh, Action changed )
	{
		ArchPipeUi.Run( panel, part, refresh, changed );
	}
}

public sealed class ArchPipeSheet : IArchSheet
{
	public Type Payload => typeof( ArchPipePart );

	public void Build( ToolSidebarWidget panel, ArchTool tool, ArchSelection picked, Action refresh, Action changed )
	{
		if ( picked.Item is ArchPipePart part )
		{
			ArchPipeUi.Run( panel, part, refresh, changed );
		}
	}
}

public sealed class ArchPipeBracketSheet : IArchSheet
{
	public Type Payload => typeof( ArchPipeBracketPart );

	public void Build( ToolSidebarWidget panel, ArchTool tool, ArchSelection picked, Action refresh, Action changed )
	{
		if ( picked.Item is ArchPipeBracketPart part )
		{
			ArchPipeUi.Brackets( panel, part, refresh, changed );
		}
	}
}