1use serde::{Deserialize, Serialize};
2
3use crate::enums::physics_b_type::PhysicsBType;
4use crate::enums::physics_shape::PhysicsShape;
5use crate::enums::physics_shape_type::PhysicsShapeType;
6use crate::jsonb::action::Action;
7use crate::jsonb::vec3::Vec3;
8use crate::jsonb::vec4::Vec4;
9
10#[derive(Clone, Serialize, Deserialize, Debug)]
11#[serde(rename_all = "camelCase")]
12pub struct Physics {
13 pub shape_type: PhysicsShapeType,
14 pub b_type: PhysicsBType,
15 pub shape: PhysicsShape,
16 pub size:f32,
17 #[serde(skip_serializing_if = "Option::is_none")]
18 pub mass: Option<f32>,
19 #[serde(skip_serializing_if = "Option::is_none")]
20 pub offset: Option<Vec3>,
21 #[serde(skip_serializing_if = "Option::is_none")]
22 pub euler: Option<Vec3>,
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub quaternion: Option<Vec4>,
25 #[serde(skip_serializing_if = "Option::is_none")]
26 pub axes_lock: Option<String>,
27 #[serde(skip_serializing_if = "Option::is_none")]
28 pub action: Option<Action>,
29}