diff options
Diffstat (limited to 'src/serialized_file.rs')
-rw-r--r-- | src/serialized_file.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/serialized_file.rs b/src/serialized_file.rs index b3c1e3c..a6514ee 100644 --- a/src/serialized_file.rs +++ b/src/serialized_file.rs @@ -2,6 +2,7 @@ use crate::{ common_strings::COMMON_STRINGS, helper::{AlignExt, Endianness, ReadExt}, object::Value, + unityfs::{UnityFS, header::NodeInfo}, }; use anyhow::{Result, anyhow, bail}; use log::{debug, info, trace, warn}; @@ -307,6 +308,18 @@ impl<T: Read + Seek> SerializedFile<T> { }) } + pub fn find_fs_shared_assets(&self, fs: &UnityFS<impl Read + Seek>) -> Option<NodeInfo> { + let s = self + .externals + .iter() + .find(|e| e.path_name.starts_with("archive:"))?; + fs.header + .nodes() + .iter() + .find(|n| n.name.ends_with(&s.path_name)) + .cloned() + } + pub fn get_object_type_tree(&self, ob: &ObjectInfo) -> Result<&'_ TypeTreeNode> { let r#type = if ob.type_id < 0 { unimplemented!() |