diff options
Diffstat (limited to 'server/protocol/src')
-rw-r--r-- | server/protocol/src/lib.rs | 20 |
1 files changed, 20 insertions, 0 deletions
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<PlayerID>, // 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, }, |