summaryrefslogtreecommitdiff
path: root/server/protocol/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/protocol/src/lib.rs')
-rw-r--r--server/protocol/src/lib.rs15
1 files changed, 12 insertions, 3 deletions
diff --git a/server/protocol/src/lib.rs b/server/protocol/src/lib.rs
index db65ddd2..ef28dcca 100644
--- a/server/protocol/src/lib.rs
+++ b/server/protocol/src/lib.rs
@@ -110,8 +110,7 @@ pub struct Gamedata {
pub enum PacketS {
Join {
name: String,
- #[serde(deserialize_with = "deser_i32")]
- character: i32,
+ character: Character,
#[serde(default = "chef_class")]
class: PlayerClass,
#[serde(skip)] // TODO fix bincode can still set id
@@ -174,6 +173,16 @@ pub enum PacketS {
},
}
+#[derive(Debug, Default, Clone, Copy, Serialize, Deserialize, Encode, Decode)]
+pub struct Character {
+ #[serde(deserialize_with = "deser_i32", default)]
+ pub color: i32,
+ #[serde(deserialize_with = "deser_i32", default)]
+ pub hairstyle: i32,
+ #[serde(deserialize_with = "deser_i32", default)]
+ pub headwear: i32,
+}
+
fn chef_class() -> PlayerClass {
PlayerClass::Chef
}
@@ -219,7 +228,7 @@ pub enum PacketC {
#[bincode(with_serde)]
position: Vec2,
class: PlayerClass,
- character: i32,
+ character: Character,
name: String,
},
RemovePlayer {