Editor/Road/ArchBridgeShapeBuilder.cs
using System;
using System.Collections.Generic;
using Sandbox;
namespace Sunless.Architecture;
public sealed class ArchBridgeShapeBuilder {
ArchRoadPart road;
ArchBridgePart part;
ArchPlan plan;
ArchCurve curve;
IReadOnlyList<ArchFrame> frames;
ArchKit kit;
ArchGround ground;
public ArchBridgeShapeBuilder On( ArchRoadPart road, ArchBridgePart part ) {
this.road = road;
this.part = part;
return this;
}
public ArchBridgeShapeBuilder WithPlan( ArchPlan plan ) {
this.plan = plan;
return this;
}
public ArchBridgeShapeBuilder Along( ArchCurve curve ) {
this.curve = curve;
return this;
}
public ArchBridgeShapeBuilder WithFrames( IReadOnlyList<ArchFrame> frames ) {
this.frames = frames;
return this;
}
public ArchBridgeShapeBuilder WithKit( ArchKit kit ) {
this.kit = kit;
return this;
}
public ArchBridgeShapeBuilder Over( ArchGround ground ) {
this.ground = ground;
return this;
}
public ArchBridgeShape Create() {
return ArchBridge.ResolveCore( road, part, plan, curve, frames, kit, ground );
}
}