aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-03-25 15:42:38 +0100
committermetamuffin <metamuffin@disroot.org>2025-03-25 15:42:38 +0100
commitd503115899322e9b8bd835da82da3d6f74028bda (patch)
tree7d97e93bfc02b809beb49ef91f0d41f403cab274
parent9bcc64872bfa042349e959f4baf079d21707cf56 (diff)
downloadunity-tools-d503115899322e9b8bd835da82da3d6f74028bda.tar
unity-tools-d503115899322e9b8bd835da82da3d6f74028bda.tar.bz2
unity-tools-d503115899322e9b8bd835da82da3d6f74028bda.tar.zst
set proper class name in pptr from all_toplevel
-rw-r--r--src/assetbundle.rs26
1 files changed, 21 insertions, 5 deletions
diff --git a/src/assetbundle.rs b/src/assetbundle.rs
index f87d7b8..3940628 100644
--- a/src/assetbundle.rs
+++ b/src/assetbundle.rs
@@ -77,7 +77,13 @@ impl<T: Read + Seek + 'static> AssetBundle<T> {
let main_obs = main
.objects
.iter()
- .map(|o| (main.ecx.clone(), o.to_owned()))
+ .map(|o| {
+ (
+ main.ecx.clone(),
+ main.get_object_type_tree(o).unwrap().type_string.to_owned(),
+ o.to_owned(),
+ )
+ })
.collect::<Vec<_>>();
let shared_obs = if let Some(shared_assets) = shared_assets {
let shared = self.get_fs_file(&shared_assets).unwrap();
@@ -85,7 +91,17 @@ impl<T: Read + Seek + 'static> AssetBundle<T> {
shared
.objects
.iter()
- .map(|o| (shared.ecx.clone(), o.to_owned()))
+ .map(|o| {
+ (
+ shared.ecx.clone(),
+ shared
+ .get_object_type_tree(o)
+ .unwrap()
+ .type_string
+ .to_owned(),
+ o.to_owned(),
+ )
+ })
.collect()
} else {
Vec::new()
@@ -94,8 +110,8 @@ impl<T: Read + Seek + 'static> AssetBundle<T> {
main_obs
.into_iter()
.chain(shared_obs)
- .map(|(ecx, o)| PPtr {
- class: "".to_string(),
+ .map(|(ecx, class, o)| PPtr {
+ class,
ecx,
file_id: 0,
path_id: o.path_id,
@@ -127,7 +143,7 @@ impl<T: Read + Seek + 'static> AssetBundle<T> {
.into_iter()
.chain(shared_obs)
.map(|(ecx, o)| PPtr {
- class: "".to_string(),
+ class: class_name.to_owned(),
ecx,
file_id: 0,
path_id: o.path_id,