aboutsummaryrefslogtreecommitdiff
path: root/src/serialized_file.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/serialized_file.rs')
-rw-r--r--src/serialized_file.rs13
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!()