Editor/Wall/ArchOpeningManifest.cs

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