aboutsummaryrefslogtreecommitdiff
path: root/src/payload/components/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/payload/components/mod.rs')
-rw-r--r--src/payload/components/mod.rs56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/payload/components/mod.rs b/src/payload/components/mod.rs
new file mode 100644
index 0000000..e8919fd
--- /dev/null
+++ b/src/payload/components/mod.rs
@@ -0,0 +1,56 @@
+use std::collections::HashMap;
+
+use avian3d::prelude::RigidBody;
+use bevy::prelude::*;
+use serde::{Deserialize, Serialize};
+use yarnspinner::core::YarnValue;
+
+#[derive(Serialize, Deserialize, Clone, Default, Deref, DerefMut, Debug)]
+pub struct Transform(pub bevy::prelude::Transform);
+
+#[derive(Serialize, Deserialize, Clone, Default, Deref, DerefMut, Debug)]
+pub struct Name(pub String);
+
+#[derive(Serialize, Deserialize, Clone, Default, Debug)]
+pub struct Actor {
+ pub local_variables: HashMap<String, YarnValue>,
+ pub yarn_source: Vec<u8>,
+}
+
+#[derive(Serialize, Deserialize, Clone, Debug)]
+pub struct Voice {
+ pub pitch: i32,
+ pub preset: i32,
+ pub bank: i32,
+ pub variance: u32,
+ pub speed: f32,
+}
+
+impl Default for Voice {
+ fn default() -> Self {
+ Self {
+ pitch: 60,
+ preset: 0,
+ bank: 0,
+ variance: 3,
+ speed: 1.0,
+ }
+ }
+}
+
+#[derive(Serialize, Deserialize, Clone, Default, Deref, DerefMut, Debug)]
+pub struct Rigidbody(pub RigidBody);
+
+#[derive(Serialize, Deserialize, Clone, Default, Debug)]
+pub struct MeshCollider {
+ pub convex: bool,
+ pub sensor: bool,
+}
+
+#[derive(Serialize, Deserialize, Clone, Default, Debug)]
+pub struct Script {
+ pub lua_source: Vec<u8>,
+}
+
+#[derive(Serialize, Deserialize, Clone, Default, Deref, DerefMut, Debug)]
+pub struct Relationships(pub HashMap<String, [u8; 16]>);