From 9587d6b4d4389f6108e2be0ff5c0f4a495ff842d Mon Sep 17 00:00:00 2001 From: metamuffin Date: Wed, 25 Sep 2024 15:30:09 +0200 Subject: player class decoupled from character id --- server/protocol/src/lib.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'server/protocol/src') diff --git a/server/protocol/src/lib.rs b/server/protocol/src/lib.rs index b44a55fb..4c2ff3f4 100644 --- a/server/protocol/src/lib.rs +++ b/server/protocol/src/lib.rs @@ -95,6 +95,8 @@ pub enum PacketS { Join { name: String, character: i32, + #[serde(default = "chef_class")] + class: PlayerClass, #[serde(skip)] // TODO fix bincode can still set id id: Option, // used entity bots that cant receive a response }, @@ -146,6 +148,23 @@ pub enum PacketS { }, } +fn chef_class() -> PlayerClass { + PlayerClass::Chef +} + +#[derive(Debug, Clone, Copy, Serialize, Deserialize, Encode, Decode, PartialEq, Eq)] +#[serde(rename_all = "snake_case")] +pub enum PlayerClass { + Chef, + Bot, + Customer, +} +impl PlayerClass { + pub fn is_cheflike(&self) -> bool { + matches!(self, Self::Bot | Self::Chef) + } +} + #[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode, PartialEq, Eq)] #[serde(rename_all = "snake_case")] pub enum Message { @@ -173,6 +192,7 @@ pub enum PacketC { id: PlayerID, #[bincode(with_serde)] position: Vec2, + class: PlayerClass, character: i32, name: String, }, -- cgit v1.2.3-70-g09d2