diff options
-rw-r--r-- | src/classes/assetinfo.rs | 1 | ||||
-rw-r--r-- | src/classes/gameobject.rs | 5 | ||||
-rw-r--r-- | src/classes/mesh.rs | 19 | ||||
-rw-r--r-- | src/classes/pptr.rs | 2 | ||||
-rw-r--r-- | src/classes/streaminginfo.rs | 1 | ||||
-rw-r--r-- | src/classes/transform.rs | 1 |
6 files changed, 26 insertions, 3 deletions
diff --git a/src/classes/assetinfo.rs b/src/classes/assetinfo.rs index 01c4530..f66444a 100644 --- a/src/classes/assetinfo.rs +++ b/src/classes/assetinfo.rs @@ -9,6 +9,7 @@ pub struct AssetInfo { pub preload_size: i32, pub asset: PPtr<GameObject>, } + impl FromValue for AssetInfo { fn from_value(v: Value) -> Result<Self> { let mut fields = v.as_class("AssetInfo").unwrap(); diff --git a/src/classes/gameobject.rs b/src/classes/gameobject.rs index bb4f19b..d629231 100644 --- a/src/classes/gameobject.rs +++ b/src/classes/gameobject.rs @@ -11,6 +11,7 @@ pub struct GameObject { pub name: String, pub is_active: bool, } + impl FromValue for GameObject { fn from_value(v: Value) -> Result<Self> { let mut fields = v.as_class("GameObject").unwrap(); @@ -28,9 +29,7 @@ impl FromValue for GameObject { .map(|e| { e.as_class("ComponentPair") .unwrap() - .remove("component") - .unwrap() - .parse::<PPtr>() + .field("component") .unwrap() }) .collect(), diff --git a/src/classes/mesh.rs b/src/classes/mesh.rs index 1d6889d..7df7f8d 100644 --- a/src/classes/mesh.rs +++ b/src/classes/mesh.rs @@ -126,3 +126,22 @@ impl FromValue for SubMesh { }) } } + +#[repr(u8)] +#[derive(Debug, Serialize, Clone, Copy, PartialEq)] +pub enum VertexDataChannel { + Position = 0, + Normal = 1, + Tangent = 2, + Color = 3, + TexCoord0 = 4, + TexCoord1 = 5, + TexCoord2 = 6, + TexCoord3 = 7, + TexCoord4 = 8, + TexCoord5 = 9, + TexCoord6 = 10, + TexCoord7 = 11, + BlendWeight = 12, + BlendIndices = 13, +} diff --git a/src/classes/pptr.rs b/src/classes/pptr.rs index 6c7efdb..9d9becc 100644 --- a/src/classes/pptr.rs +++ b/src/classes/pptr.rs @@ -12,6 +12,7 @@ pub struct PPtr<T = HValue> { pub file_id: i32, pub path_id: i64, } + impl<T> FromValue for PPtr<T> { fn from_value(v: Value) -> Result<Self> { let Value::Object { class, fields } = v else { @@ -30,6 +31,7 @@ impl<T> FromValue for PPtr<T> { }) } } + impl PPtr { pub fn cast<T>(self) -> PPtr<T> { PPtr { diff --git a/src/classes/streaminginfo.rs b/src/classes/streaminginfo.rs index bb0b5e1..cb5209d 100644 --- a/src/classes/streaminginfo.rs +++ b/src/classes/streaminginfo.rs @@ -8,6 +8,7 @@ pub struct StreamingInfo { pub path: String, pub size: u32, } + impl FromValue for StreamingInfo { fn from_value(v: Value) -> Result<Self> { let mut fields = v.as_class("StreamingInfo").unwrap(); diff --git a/src/classes/transform.rs b/src/classes/transform.rs index c9948d3..d31a7d6 100644 --- a/src/classes/transform.rs +++ b/src/classes/transform.rs @@ -13,6 +13,7 @@ pub struct Transform { pub local_rotation: Quat, pub local_scale: Vec3, } + impl FromValue for Transform { fn from_value(v: Value) -> Result<Self> { let mut fields = v.as_class("Transform").unwrap(); |