aboutsummaryrefslogtreecommitdiff
path: root/src/serialized_file.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-03-15 21:31:40 +0100
committermetamuffin <metamuffin@disroot.org>2025-03-15 21:31:40 +0100
commited6ed7a62217369544f3e31ef9a886f459f0c21b (patch)
treec36f0e344e00b32c563494f77dd4191dc55f8c94 /src/serialized_file.rs
parentca02789996b94db87cd84571edb42bbcd9a3a18b (diff)
downloadunity-tools-ed6ed7a62217369544f3e31ef9a886f459f0c21b.tar
unity-tools-ed6ed7a62217369544f3e31ef9a886f459f0c21b.tar.bz2
unity-tools-ed6ed7a62217369544f3e31ef9a886f459f0c21b.tar.zst
assetbundle struct to abstract over unityfs and serializedfile
Diffstat (limited to 'src/serialized_file.rs')
-rw-r--r--src/serialized_file.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/serialized_file.rs b/src/serialized_file.rs
index a6514ee..aba72b9 100644
--- a/src/serialized_file.rs
+++ b/src/serialized_file.rs
@@ -345,6 +345,13 @@ impl<T: Read + Seek> SerializedFile<T> {
.ok_or(anyhow!("type tree missing"))?;
Value::read(typetree, self.endianness, &mut self.file)
}
+
+ pub fn all_objects_of_class(&self, class_name: &str) -> impl Iterator<Item = &ObjectInfo> {
+ self.objects.iter().filter(move |o| {
+ self.get_object_type_tree(&o)
+ .map_or(false, |t| t.type_string == class_name)
+ })
+ }
}
impl TypeTreeNode {