Editor/Decompiler/Formats/Descriptors/UnknownBspFormatDescriptor.cs
using BspImport.Decompiler.Formats.Readers;
namespace BspImport.Decompiler.Formats.Descriptors;
/// <summary>
/// Fallback descriptor for BSP versions that have no registered handler.
/// Uses standard Source v20 struct readers as a best-effort fallback.
/// Log a warning when this is active so the caller can investigate.
/// </summary>
public sealed class UnknownBspFormatDescriptor : IBspFormatDescriptor
{
/// <summary>Singleton instance, this descriptor holds no mutable state.</summary>
public static readonly UnknownBspFormatDescriptor Instance = new();
private static readonly IBspStructReaders _readers = new StandardBspStructReaders();
private UnknownBspFormatDescriptor() { }
public BspGameFormat GameFormat => BspGameFormat.Unknown;
public IReadOnlySet<int> SupportedVersions { get; } = new HashSet<int>();
public string DisplayName => "Unknown BSP format (fallback: Source v20 readers)";
public int SpecificityScore => -1;
public LumpHeaderLayout LumpHeaderLayout => LumpHeaderLayout.Standard;
public BrushSideLayout BrushSideLayout => BrushSideLayout.Standard;
public StaticPropLayout StaticPropLayout => StaticPropLayout.V4;
public IBspStructReaders GetStructReaders( int bspVersion ) => _readers;
public bool MatchesMapName( string mapName ) => false;
public bool MatchesEntities( IReadOnlyList<string> entityClassNames ) => false;
}