Overview
The BspFileReader class provides high-level access to BSP file data structures. It handles reading and parsing all types of lumps into structured Java objects, with support for different BSP versions and game-specific formats.
Package: info.ata4.bspsrc.lib
Source: BspFileReader.java:38
Constructors
BspFileReader
public BspFileReader(BspFile bspFile, BspData bspData)
Creates a new BspFileReader with a custom BspData instance.
The loaded BSP file to read from.
The BspData instance to populate with read data.
Source: BspFileReader.java:46
public BspFileReader(BspFile bspFile)
Creates a new BspFileReader with a new BspData instance.
The loaded BSP file to read from.
Source: BspFileReader.java:57
Public Methods
loadAll
Loads all supported lumps from the BSP file. This includes entities, vertices, edges, faces, models, brushes, textures, displacements, static props, and more.
Source: BspFileReader.java:68
loadEntities
public void loadEntities()
Loads the entity lump and detects the Source engine application ID using heuristics if unknown.
Source: BspFileReader.java:387
loadVertices
public void loadVertices()
Loads the vertex lump containing all map vertices.
Source: BspFileReader.java:139
loadEdges
Loads the edge lump. Handles special formats for Vindictus and Strata Source.
Source: BspFileReader.java:157
loadFaces
Loads face data, prioritizing HDR faces if available. Handles various face formats based on BSP version and game.
Source: BspFileReader.java:199
loadOriginalFaces
public void loadOriginalFaces()
Loads original face data (pre-VBSP processing faces).
Source: BspFileReader.java:213
loadModels
Loads brush models. Handles special Dark Messiah format.
Source: BspFileReader.java:222
loadSurfaceEdges
public void loadSurfaceEdges()
Loads surface edge indices used to define face geometry.
Source: BspFileReader.java:239
loadStaticProps
public void loadStaticProps()
Loads static prop data including model names, prop instances, and leaf associations.
Source: BspFileReader.java:248
loadCubemaps
public void loadCubemaps()
Loads cubemap sample positions for environment mapping.
Source: BspFileReader.java:268
loadPlanes
Loads plane definitions used by brushes.
Source: BspFileReader.java:98
loadBrushes
public void loadBrushes()
Loads brush geometry data.
Source: BspFileReader.java:107
loadBrushSides
public void loadBrushSides()
Loads brush side definitions. Handles multiple format variations.
Source: BspFileReader.java:116
loadDispInfos
public void loadDispInfos()
Loads displacement surface information. Supports various game-specific formats.
Source: BspFileReader.java:277
loadDispVertices
public void loadDispVertices()
Loads displacement vertices defining terrain geometry.
Source: BspFileReader.java:314
public void loadDispTriangleTags()
Loads displacement triangle tags for advanced surface properties.
Source: BspFileReader.java:323
loadDispMultiBlend
public void loadDispMultiBlend()
Loads displacement multi-blend data for advanced texture blending.
Source: BspFileReader.java:332
loadTexInfo
public void loadTexInfo()
Loads texture information including UV mapping data.
Source: BspFileReader.java:349
loadTexData
public void loadTexData()
Loads texture data and associated texture name strings.
Source: BspFileReader.java:366
loadNodes
Loads BSP tree nodes for spatial partitioning.
Source: BspFileReader.java:408
loadLeaves
Loads BSP tree leaf nodes. Handles version-specific formats.
Source: BspFileReader.java:427
loadLeafFaces
public void loadLeafFaces()
Loads leaf-to-face mapping indices.
Source: BspFileReader.java:451
loadLeafBrushes
public void loadLeafBrushes()
Loads leaf-to-brush mapping indices.
Source: BspFileReader.java:467
loadOverlays
public void loadOverlays()
Loads overlay decals with fade distances and system levels.
Source: BspFileReader.java:483
loadAreaportals
public void loadAreaportals()
Loads areaportal definitions for visibility optimization.
Source: BspFileReader.java:521
loadClipPortalVertices
public void loadClipPortalVertices()
Loads vertices used by clip portals.
Source: BspFileReader.java:148
loadOccluders
public void loadOccluders()
Loads occluder geometry for occlusion culling.
Source: BspFileReader.java:540
loadFlags
Loads map-level flags.
Source: BspFileReader.java:581
loadPrimitives
public void loadPrimitives()
Loads primitive geometry data (used in some game variants).
Source: BspFileReader.java:590
loadPrimIndices
public void loadPrimIndices()
Loads primitive index data.
Source: BspFileReader.java:607
loadPrimVerts
public void loadPrimVerts()
Loads primitive vertex data.
Source: BspFileReader.java:623
getBspFile
public BspFile getBspFile()
Returns the associated BspFile instance.
Returns: The BspFile being read from
Source: BspFileReader.java:771
getData
Returns the BspData instance containing all loaded data structures.
Returns: The BspData with loaded lumps
Source: BspFileReader.java:775
Usage Example
import info.ata4.bspsrc.lib.BspFile;
import info.ata4.bspsrc.lib.BspFileReader;
import info.ata4.bspsrc.lib.BspData;
import java.nio.file.Path;
// Load BSP file
BspFile bsp = new BspFile();
bsp.load(Path.of("maps/dm_example.bsp"));
// Create reader
BspFileReader reader = new BspFileReader(bsp);
// Load all data
reader.loadAll();
// Access loaded data
BspData data = reader.getData();
// Work with entities
System.out.println("Entities: " + data.entities.size());
data.entities.forEach(entity -> {
System.out.println("Class: " + entity.getClassName());
});
// Work with static props
System.out.println("Static props: " + data.staticProps.size());
// Work with brushes
System.out.println("Brushes: " + data.brushes.size());
// Work with displacements
System.out.println("Displacements: " + data.dispinfos.size());
// Load specific lumps on demand
BspFileReader selectiveReader = new BspFileReader(bsp);
selectiveReader.loadEntities();
selectiveReader.loadStaticProps();
selectiveReader.loadTexInfo();
selectiveReader.loadTexData();
See Also