summaryrefslogtreecommitdiff
path: root/server/protocol/src
diff options
context:
space:
mode:
Diffstat (limited to 'server/protocol/src')
-rw-r--r--server/protocol/src/lib.rs20
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,
},