Editor manifest class for wall openings. It defines metadata for ArchOpening assets such as kind, UI slot, host types, label, icon glyph, subtool, indirect rank, layer stage, and a naming helper that formats presets with id.
using System;
using System.Collections.Generic;
using System.Linq;
namespace Sunless.Architecture;
public sealed class ArchOpeningManifest : ArchKindManifest<ArchOpening>
{
public override ArchKind Kind => ArchKind.Opening;
public override string Slot => "Openings";
public override IEnumerable<Type> Hosts => new[] { typeof( ArchWall ) };
public override string Label => "Opening";
public override string Glyph => ArchIcons.Get( "subtool_opening", "door_front" );
public override string Subtool => ArchSubtools.Opening;
public override int IndirectRank => 101;
public override ArchLayerStage Stage( object payload ) => ArchLayerStage.Void;
public override string NameOf( object payload, int id )
{
return payload is ArchOpening opening ? $"{opening.Preset} {opening.Id}" : base.NameOf( payload, id );
}
}