A multiplayer VR framework w/voice chat
at main 734 B view raw
1use bevy_math::{Quat, Vec3}; 2 3use crate::{buffer::Buffer, packet::Packet}; 4 5#[derive(Debug, Clone)] 6pub struct UpdateClientsPositions{ 7 pub players: Vec<(String, Vec3, Quat)>, 8} 9 10impl Packet for UpdateClientsPositions{ 11 fn to_buf(self) -> Buffer { 12 let mut buf = Buffer::empty(); 13 buf.set_u16(6); 14 buf.set_u32(self.players.len() as u32); 15 16 for ( id, pos, rot ) in &self.players{ 17 buf.set_str(id.clone()); 18 buf.set_vec3(*pos); 19 buf.set_quat(*rot); 20 } 21 22 buf 23 } 24 25 fn from_buf(buf: &mut Buffer) -> Self { 26 let mut players = vec![]; 27 28 for _ in 0..buf.get_u32(){ 29 players.push(( 30 buf.get_str(), 31 buf.get_vec3(), 32 buf.get_quat() 33 )); 34 } 35 36 Self { players } 37 } 38}