mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-04-13 17:53:07 +00:00
This change looks dramatic, but it's just separating out the already-split namespaces into separate top-level folders. In theory, every single one could be built into their own Nuget package. `SabreTools.Serialization` still builds the normal Nuget package that is used by all other projects and includes all namespaces.
368 lines
11 KiB
C#
368 lines
11 KiB
C#
namespace SabreTools.Data.Models.BSP
|
|
{
|
|
/// <summary>
|
|
/// Half-Life Level
|
|
/// </summary>
|
|
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/VBSPFile.h"/>
|
|
/// <see href="https://developer.valvesoftware.com/wiki/BSP_(Source)"/>
|
|
public sealed class VbspFile
|
|
{
|
|
/// <summary>
|
|
/// Header data
|
|
/// </summary>
|
|
public VbspHeader Header { get; set; } = new();
|
|
|
|
#region Lumps
|
|
|
|
/// <summary>
|
|
/// LUMP_ENTITIES [0]
|
|
/// </summary>
|
|
public EntitiesLump Entities { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_PLANES [1]
|
|
/// </summary>
|
|
public PlanesLump PlanesLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_TEXDATA [2]
|
|
/// </summary>
|
|
public TexdataLump TexdataLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_VERTEXES [3]
|
|
/// </summary>
|
|
public VerticesLump VerticesLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_VISIBILITY [4]
|
|
/// </summary>
|
|
public VisibilityLump VisibilityLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_NODES [5]
|
|
/// </summary>
|
|
public VbspNodesLump NodesLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_TEXINFO [6]
|
|
/// </summary>
|
|
public VbspTexinfoLump TexinfoLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_FACES [7]
|
|
/// </summary>
|
|
public VbspFacesLump FacesLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_LIGHTING [8]
|
|
/// </summary>
|
|
public LightmapLump LightmapLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_OCCLUSION [9]
|
|
/// </summary>s
|
|
public OcclusionLump OcclusionLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_LEAVES [10]
|
|
/// </summary>
|
|
public VbspLeavesLump LeavesLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_FACEIDS [11]
|
|
/// </summary>
|
|
public MarksurfacesLump MarksurfacesLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_EDGES [12]
|
|
/// </summary>
|
|
public EdgesLump EdgesLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_SURFEDGES [13]
|
|
/// </summary>
|
|
public SurfedgesLump SurfedgesLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_MODELS [14]
|
|
/// </summary>
|
|
public VbspModelsLump ModelsLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_WORLDLIGHTS [15]
|
|
/// </summary>
|
|
public WorldLightsLump LDRWorldLightsLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_LEAFFACES [16]
|
|
/// </summary>
|
|
public LeafFacesLump LeafFacesLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_LEAFBRUSHES [17]
|
|
/// </summary>
|
|
public LeafBrushesLump LeafBrushesLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_BRUSHES [18]
|
|
/// </summary>
|
|
public BrushesLump BrushesLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_BRUSHSIDES [19]
|
|
/// </summary>
|
|
public BrushsidesLump BrushsidesLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_AREAS [20]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public AreasLump AreasLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_AREAPORTALS [21]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public AreaPortalsLump AreaPortalsLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_PORTALS / LUMP_UNUSED0 / LUMP_PROPCOLLISION [22]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public PortalsLump PortalsLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_CLUSTERS / LUMP_UNUSED1 / LUMP_PROPHULLS [23]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public ClustersLump ClustersLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_PORTALVERTS / LUMP_UNUSED2 / LUMP_FAKEENTITIES / LUMP_PROPHULLVERTS [24]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public PortalVertsLump PortalVertsLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_CLUSTERPORTALS / LUMP_UNUSED3 / LUMP_PROPTRIS [25]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public ClusterPortalsLump ClusterPortalsLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_DISPINFO [26]
|
|
/// </summary>
|
|
public DispInfosLump DispInfosLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_ORIGINALFACES [27]
|
|
/// </summary>
|
|
public VbspFacesLump OriginalFacesLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_PHYSDISP [28]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public PhysDispLump PhysDispLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_PHYSCOLLIDE [29]
|
|
/// </summary>
|
|
public PhysCollideLump PhysCollideLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_VERTNORMALS [30]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public VertNormalsLump VertNormalsLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_VERTNORMALINDICES [31]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public VertNormalIndicesLump VertNormalIndicesLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_DISP_LIGHTMAP_ALPHAS [32]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public DispLightmapAlphasLump DispLightmapAlphasLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_DISP_VERTS [33]
|
|
/// </summary>
|
|
public DispVertsLump DispVertsLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_DISP_LIGHTMAP_SAMPLE_POSITIONS [34]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public DispLightmapSamplePositions? DispLightmapSamplePositions { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_GAME_LUMP [35]
|
|
/// </summary>
|
|
public GameLump GameLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_LEAFWATERDATA [36]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public LeafWaterDataLump LeafWaterDataLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_PRIMITIVES [37]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public PrimitivesLump PrimitivesLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_PRIMVERTS [38]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public PrimVertsLump PrimVertsLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_PRIMINDICES [39]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public PrimIndicesLump PrimIndicesLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_PAKFILE [40]
|
|
/// </summary>
|
|
public PakfileLump PakfileLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_CLIPPORTALVERTS [41]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public ClipPortalVertsLump ClipPortalVertsLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_CUBEMAPS [42]
|
|
/// </summary>
|
|
public CubemapsLump CubemapsLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_TEXDATA_STRING_DATA [43]
|
|
/// </summary>
|
|
public TexdataStringData TexdataStringData { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_TEXDATA_STRING_TABLE [44]
|
|
/// </summary>
|
|
public TexdataStringTable TexdataStringTable { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_OVERLAYS [45]
|
|
/// </summary>
|
|
public OverlaysLump OverlaysLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_LEAFMINDISTTOWATER [46]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public LeafMindIsToWaterLump LeafMindIsToWaterLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_FACE_MACRO_TEXTURE_INFO [47]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public FaceMacroTextureInfoLump FaceMacroTextureInfoLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_DISP_TRIS [48]
|
|
/// </summary>
|
|
public DispTrisLump DispTrisLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_PHYSCOLLIDESURFACE / LUMP_PROP_BLOB [49]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public PhysCollideSurfaceLump PhysCollideSurfaceLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_WATEROVERLAYS [50]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public WaterOverlaysLump WaterOverlaysLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_LIGHTMAPPAGES / LUMP_LEAF_AMBIENT_INDEX_HDR [51]
|
|
/// </summary>
|
|
public AmbientIndexLump HDRAmbientIndexLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_LIGHTMAPPAGEINFOS / LUMP_LEAF_AMBIENT_INDEX [52]
|
|
/// </summary>
|
|
public AmbientIndexLump LDRAmbientIndexLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_LIGHTING_HDR [53]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public LightingHdrLump LightingHdrLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_WORLDLIGHTS_HDR [54]
|
|
/// </summary>
|
|
public WorldLightsLump HDRWorldLightsLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_LEAF_AMBIENT_LIGHTING_HDR [55]
|
|
/// </summary>
|
|
public AmbientLightingLump HDRAmbientLightingLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_LEAF_AMBIENT_LIGHTING [56]
|
|
/// </summary>
|
|
public AmbientLightingLump LDRAmbientLightingLump { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// LUMP_XZIPPAKFILE [57]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public XzipPakFileLump XzipPakFileLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_FACES_HDR [58]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public FacesHdrLump FacesHdrLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_MAP_FLAGS [59]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public MapFlagsLump MapFlagsLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_OVERLAY_FADES [60]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public OverlayFadesLump OverlayFadesLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_OVERLAY_SYSTEM_LEVELS [61]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public OverlaySystemLevelsLump OverlaySystemLevelsLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_PHYSLEVEL [62]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public PhysLevelLump PhysLevelLump { get; set; }
|
|
|
|
/// <summary>
|
|
/// LUMP_DISP_MULTIBLEND [63]
|
|
/// </summary>
|
|
/// TODO: Find definition and implement
|
|
// public DispMultiBlendLump DispMultiBlendLump { get; set; }
|
|
|
|
#endregion
|
|
}
|
|
}
|