aboutsummaryrefslogtreecommitdiff
path: root/exporter/src
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 /exporter/src
parentd503115899322e9b8bd835da82da3d6f74028bda (diff)
downloadunity-tools-6bdc402597ade997d1ceb69062b11248d32e9a6f.tar
unity-tools-6bdc402597ade997d1ceb69062b11248d32e9a6f.tar.bz2
unity-tools-6bdc402597ade997d1ceb69062b11248d32e9a6f.tar.zst
toplevel list tool
Diffstat (limited to 'exporter/src')
-rw-r--r--exporter/src/bin/toplevel.rs22
1 files changed, 22 insertions, 0 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(())
+}