From 111b2e89fec8d035dc5cbb54cd0a4197c18b947e Mon Sep 17 00:00:00 2001 From: metamuffin Date: Fri, 7 Feb 2025 16:08:39 +0100 Subject: new pose packet --- shared/src/packets.rs | 12 ++++++++---- shared/src/tree.rs | 20 ++++++++++---------- 2 files changed, 18 insertions(+), 14 deletions(-) (limited to 'shared') diff --git a/shared/src/packets.rs b/shared/src/packets.rs index b979460..021fcd0 100644 --- a/shared/src/packets.rs +++ b/shared/src/packets.rs @@ -19,7 +19,7 @@ use crate::{ resources::{Prefab, PrefabIndex}, }; use anyhow::{Result, bail}; -use glam::Vec3A; +use glam::{Affine3A, Vec3A}; use std::{ fmt::{Debug, Display}, hash::Hash, @@ -59,7 +59,7 @@ pub enum Packet { Add(Object, Resource), Remove(Object), Position(Object, Vec3A, Vec3A), - Pose(Object, Vec), + Pose(Object, Vec<(u16, Affine3A)>), Parent(Object, Object), Sound(Object, Data), PrefabIndex(Resource), @@ -115,6 +115,10 @@ impl Packet { w.write_all(&[0x06])?; w.write_all(&object.0.to_le_bytes())?; w.write_all(&(vec.len() as u16).to_le_bytes())?; + for (i, a) in vec { + i.write(w)?; + a.write(w)?; + } } Packet::Parent(parent, child) => { w.write_all(&[0x07])?; @@ -186,13 +190,13 @@ fn read_u128(r: &mut dyn Read) -> Result { Ok(u128::from_le_bytes(buf)) } -fn read_params(r: &mut dyn Read) -> Result> { +fn read_params(r: &mut dyn Read) -> Result> { let mut size = [0; 2]; r.read_exact(&mut size)?; let size = u16::from_le_bytes(size); let mut v = Vec::with_capacity(size as usize); for _ in 0..size { - v.push(f32::read(r)?); + v.push((u16::read(r)?, Affine3A::read(r)?)); } Ok(v) } diff --git a/shared/src/tree.rs b/shared/src/tree.rs index 72e4c24..d6c1138 100644 --- a/shared/src/tree.rs +++ b/shared/src/tree.rs @@ -51,11 +51,11 @@ impl SceneTree { o.rot = *rot; } } - Packet::Pose(object, pose) => { - if let Some(o) = self.objects.get_mut(object) { - o.pose = pose.to_vec(); - } - } + // Packet::Pose(object, pose) => { + // if let Some(o) = self.objects.get_mut(object) { + // o.pose = pose.to_vec(); + // } + // } Packet::Parent(parent, child) => { self.reparent(*parent, *child); } @@ -134,11 +134,11 @@ impl SceneTree { Packet::Position(*object, data.pos, data.rot), ] .into_iter() - .chain(if data.pose.is_empty() { - None - } else { - Some(Packet::Pose(*object, data.pose.clone())) - }) + // .chain(if data.pose.is_empty() { + // None + // } else { + // Some(Packet::Pose(*object, data.pose.clone())) + // }) }) } } -- cgit v1.2.3-70-g09d2