Crates.io | bspparser |
lib.rs | bspparser |
version | |
source | src |
created_at | 2024-06-25 15:14:40.144154 |
updated_at | 2025-02-13 17:06:26.160601 |
description | Parse Quake .bsp files |
homepage | |
repository | https://github.com/vikpe/bspparser |
max_upload_size | |
id | 1283408 |
Cargo.toml error: | TOML parse error at line 23, column 1 | 23 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
Parse Quake .bsp files
let file = &mut fs::File::open("tests/files/povdmm4.bsp")?;
let bsp = BspFile::parse(file)?;
println!("{:?}", bsp.entities);
[
{
"wad": "gfx/base.wad",
"worldtype": "2",
"sounds": "6",
"message": "The Abandoned Base",
"classname": "worldspawn"
},
{
"classname": "light_fluoro",
"origin": "264 -32 88"
}
// ...
]
pub struct BspFile {
pub version: BspVersion,
pub header: BspHeader,
pub edge_list: Vec<i32>,
pub edges: Vec<Edge>,
pub entities: Vec<HashMap<String, String>>,
pub faces: Vec<Face>,
pub lightmaps: Vec<u8>,
pub models: Vec<Model>,
pub planes: Vec<Plane>,
pub texture_info: Vec<TextureInfo>,
pub textures: Vec<Texture>,
pub vertices: Vec<Vertex>,
}
pub fn get_face_texture(bsp: &BspFile, face: &Face) -> Texture
pub fn get_face_vertices(bsp: &BspFile, face: &Face) -> Vec<Vertex>
pub fn get_face_vertice_indexes(bsp: &BspFile, face: &Face) -> Vec<u32>
pub fn read_texture_image<R>( reader: &mut R, texture: &Texture, scale: TextureScale, ) -> Result<TextureImage>