aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-03-25 15:42:46 +0100
committermetamuffin <metamuffin@disroot.org>2025-03-25 15:42:46 +0100
commit6bdc402597ade997d1ceb69062b11248d32e9a6f (patch)
treeaedeb5c69dcb46be1ad2100af85d09308da99aaf
parentd503115899322e9b8bd835da82da3d6f74028bda (diff)
downloadunity-tools-6bdc402597ade997d1ceb69062b11248d32e9a6f.tar
unity-tools-6bdc402597ade997d1ceb69062b11248d32e9a6f.tar.bz2
unity-tools-6bdc402597ade997d1ceb69062b11248d32e9a6f.tar.zst
toplevel list tool
-rw-r--r--exporter/src/bin/toplevel.rs22
-rw-r--r--src/classes/audio_clip.rs7
2 files changed, 24 insertions, 5 deletions
diff --git a/exporter/src/bin/toplevel.rs b/exporter/src/bin/toplevel.rs
new file mode 100644
index 0000000..2198469
--- /dev/null
+++ b/exporter/src/bin/toplevel.rs
@@ -0,0 +1,22 @@
+use std::{cmp::Reverse, collections::BTreeMap, env::args, fs::File, io::BufReader};
+use unity_tools::assetbundle::AssetBundle;
+
+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 mut counters = BTreeMap::<String, usize>::new();
+ for ob in bundle.all_toplevel() {
+ *counters.entry(ob.class).or_default() += 1;
+ }
+
+ let mut s = counters.into_iter().collect::<Vec<_>>();
+ s.sort_by_key(|s| Reverse(s.1));
+
+ for (k, c) in s {
+ println!("{c:6} {k}");
+ }
+
+ Ok(())
+}
diff --git a/src/classes/audio_clip.rs b/src/classes/audio_clip.rs
index 8f027ad..ad9d5bb 100644
--- a/src/classes/audio_clip.rs
+++ b/src/classes/audio_clip.rs
@@ -5,7 +5,7 @@ use crate::{
unityfs::UnityFS,
};
use anyhow::{Ok, Result, anyhow, bail};
-use log::{debug, info};
+use log::info;
use serde::Serialize;
use std::io::{Cursor, Read, Seek};
@@ -50,12 +50,9 @@ impl AudioClip {
AudioCompressionFormat::Vorbis => {
info!("reading vorbis FMOD sound bank");
let mut bank = FmodSoundBank::open(Cursor::new(data))?;
- // Ok(buf.into_inner())
for i in 0..bank.streams.len() {
- let data = bank.read_stream_raw(i)?;
- // eprintln!("{data:?}")
+ let _data = bank.read_stream_raw(i)?;
}
-
Ok(Vec::new())
}
x => todo!("audio format {x:?}"),