Editor/Roof/ArchGutterFiler.cs
using System.Collections.Generic;
using Sandbox;
namespace Sunless.Architecture;
// The channel is one mesh gathered from every run the roof shed into, so it is filed beside the roof's own pieces
// rather than drawn as a layer of its own.
public sealed class ArchGutterChannelFiler : IArchFiler {
public string Files => ArchFiles.GutterChannel;
public void File( ArchFiling filing ) {
var building = filing.Within<ArchBuilding>();
var canvas = new ArchMesh( filing.Within<Transform>() );
foreach ( var run in filing.Drawn<List<ArchRunPath>>() ) {
ArchGutterGen.Run( canvas, run, filing.Kit, filing.Style.Brush( ArchSurface.Gutter, building.Palette ) );
}
filing.Output.Add( $"{filing.Path}/{ArchPieces.Gutters}/{ArchPieces.Channel}", Transform.Zero, canvas );
}
}