diff options
author | metamuffin <metamuffin@disroot.org> | 2025-03-10 20:45:18 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-03-10 20:45:18 +0100 |
commit | 30bf5e07e52142a154a5660574213e59e0363ada (patch) | |
tree | a6a619a033269ab76650a820826255acafaa9b6c /src/bin/json.rs | |
parent | 42a5916cf742779d016eeefd1c59efbdfab64feb (diff) | |
download | unity-tools-30bf5e07e52142a154a5660574213e59e0363ada.tar unity-tools-30bf5e07e52142a154a5660574213e59e0363ada.tar.bz2 unity-tools-30bf5e07e52142a154a5660574213e59e0363ada.tar.zst |
type graph
Diffstat (limited to 'src/bin/json.rs')
-rw-r--r-- | src/bin/json.rs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/bin/json.rs b/src/bin/json.rs index a9685ed..3155b02 100644 --- a/src/bin/json.rs +++ b/src/bin/json.rs @@ -3,12 +3,17 @@ use std::{ fs::File, io::{BufReader, Seek, SeekFrom, stdout}, }; -use unity_tools::{object::read_value, serialized_file::read_serialized_file, unityfs::UnityFS}; +use unity_tools::{ + object::{Value, read_value}, + serialized_file::read_serialized_file, + unityfs::UnityFS, +}; fn main() -> anyhow::Result<()> { env_logger::init_from_env("LOG"); let file = BufReader::new(File::open(args().nth(1).unwrap())?); let mut fs = UnityFS::open(file)?; + let filter = args().nth(2); for node in fs.nodes().to_vec() { if node.name.ends_with(".resource") || node.name.ends_with(".resS") { @@ -26,6 +31,15 @@ fn main() -> anyhow::Result<()> { &file.types[ob.type_id as usize] }; let value = read_value(typetree.type_tree.as_ref().unwrap(), e, &mut cab)?; + if let Some(f) = &filter { + if let Value::Object { class, .. } = &value { + if class != f { + continue; + } + } else { + continue; + } + } serde_json::to_writer(stdout(), &value.to_json()).unwrap(); println!() } |