aboutsummaryrefslogtreecommitdiff
path: root/src/classes/transform.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-03-11 17:08:42 +0100
committermetamuffin <metamuffin@disroot.org>2025-03-11 17:08:42 +0100
commit792ecfb57424ec407ee7b5f0de903cd0c902b68d (patch)
treee4319d44c6afbdbb87a2c7582eb71701266752d7 /src/classes/transform.rs
parent7250587f46ca51ad662a0895a51742669b9cbb8f (diff)
downloadunity-tools-792ecfb57424ec407ee7b5f0de903cd0c902b68d.tar
unity-tools-792ecfb57424ec407ee7b5f0de903cd0c902b68d.tar.bz2
unity-tools-792ecfb57424ec407ee7b5f0de903cd0c902b68d.tar.zst
move classes to modules
Diffstat (limited to 'src/classes/transform.rs')
-rw-r--r--src/classes/transform.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/classes/transform.rs b/src/classes/transform.rs
new file mode 100644
index 0000000..518e248
--- /dev/null
+++ b/src/classes/transform.rs
@@ -0,0 +1,26 @@
+use super::pptr::PPtr;
+use crate::object::Value;
+use anyhow::Result;
+use serde::Serialize;
+
+#[derive(Debug, Serialize)]
+pub struct Transform {
+ pub father: PPtr<Transform>,
+ pub children: Vec<PPtr<Transform>>,
+}
+impl Transform {
+ pub fn from_value(v: Value) -> Result<Self> {
+ let mut fields = v.as_class("Transform").unwrap();
+ Ok(Self {
+ children: fields
+ .remove("m_Children")
+ .unwrap()
+ .as_array()
+ .unwrap()
+ .into_iter()
+ .map(|e| PPtr::from_value(e).unwrap().cast())
+ .collect(),
+ father: PPtr::from_value(fields.remove("m_Father").unwrap())?.cast(),
+ })
+ }
+}