aboutsummaryrefslogtreecommitdiff
path: root/exporter/src/bin/material_stats.rs
blob: 9faa5810c67b9be14eacf4824d7baeb4a1bb3021 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use std::{env::args, fs::File, io::BufReader};
use unity_tools::{assetbundle::AssetBundle, classes::material::Material};

fn main() -> anyhow::Result<()> {
    env_logger::init_from_env("LOG");
    let file = BufReader::new(File::open(args().nth(1).unwrap()).unwrap());
    let mut bundle = AssetBundle::open(file, "samples")?;

    let mode = args().nth(2).unwrap();

    for ob in bundle.all_toplevel_of_class("Material") {
        let mat = ob.load(&mut bundle)?.parse::<Material>()?;

        match mode.as_str() {
            "material" => {
                println!("{}", mat.name)
            }
            "shader" => {
                println!("{}", mat.shader.load(&mut bundle)?.parsed.name)
            }
            x => panic!("unknown mode {x:?}"),
        }
    }

    Ok(())
}