export_texture/
export_texture.rs

1use anyhow::Result;
2use regnumassets::{AssetContent, AssetData, ResourceIndex};
3use std::fs::File;
4use std::io::Write;
5
6fn main() -> Result<()> {
7    let f = File::open("examples/regnum/data6.idx")?;
8    let index = ResourceIndex::read(f).unwrap();
9
10    let texture = index.get_by_resource_id(85953).unwrap();
11
12    let f = File::open("examples/regnum/data6.sdb")?;
13    let asset = AssetData::read(&f, &texture).unwrap();
14
15    match asset.content {
16        AssetContent::Texture { width, height, dds } => {
17            println!(
18                "writing texture '{}' ({}x{}) to out.dds",
19                asset.asset_name, width, height
20            );
21
22            let mut file = File::create("out.dds")?;
23            dds.write(&mut file)?;
24            file.flush()?;
25        }
26
27        _ => {
28            println!("couuld not parse texture asset")
29        }
30    }
31
32    Ok(())
33}