diff options
author | metamuffin <metamuffin@disroot.org> | 2024-09-25 15:30:09 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-09-25 15:55:00 +0200 |
commit | 9587d6b4d4389f6108e2be0ff5c0f4a495ff842d (patch) | |
tree | 3cc2ea9a93de6dd39acd5396fddfbadafef471cf /server/protocol/src/lib.rs | |
parent | 64564a25db65d7a578fee537a0cf91db1a7dbc60 (diff) | |
download | hurrycurry-9587d6b4d4389f6108e2be0ff5c0f4a495ff842d.tar hurrycurry-9587d6b4d4389f6108e2be0ff5c0f4a495ff842d.tar.bz2 hurrycurry-9587d6b4d4389f6108e2be0ff5c0f4a495ff842d.tar.zst |
player class decoupled from character id
Diffstat (limited to 'server/protocol/src/lib.rs')
-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, }, |