use glam::{UVec2, Vec2}; use serde::{Deserialize, Serialize}; pub type ID = u32; #[derive(Debug, Clone, Serialize, Deserialize)] pub enum Item {} #[derive(Debug, Clone, Serialize, Deserialize)] pub enum Tile {} #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "snake_case")] pub enum PacketS { Join { name: String }, Leave, Position { pos: Vec2, rot: f32 }, Interact { pos: UVec2 }, } #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "snake_case")] pub enum PacketC { AddPlayer { id: ID, name: String }, RemovePlayer { id: ID }, Position { player: ID, pos: Vec2, rot: f32 }, TakeItem { item: ID, player: ID }, PutItem { item: ID, pos: UVec2 }, ProduceItem { id: ID, pos: UVec2, kind: Item }, ConsumeItem { id: ID, pos: UVec2 }, SetActive { tile: UVec2 }, UpdateMap { pos: UVec2, tile: Tile }, }