diff options
author | metamuffin <metamuffin@disroot.org> | 2024-09-26 18:03:00 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-09-26 18:03:00 +0200 |
commit | 2a96dbb14fe268c90025d1d0af5e66dc9b00f214 (patch) | |
tree | cf4e5bc8bcda51a60bc46f1042f5b9464284b6e6 /server | |
parent | 9f5c9f8019c56d6904dfff1d18eaed247db5eba6 (diff) | |
download | hurrycurry-2a96dbb14fe268c90025d1d0af5e66dc9b00f214.tar hurrycurry-2a96dbb14fe268c90025d1d0af5e66dc9b00f214.tar.bz2 hurrycurry-2a96dbb14fe268c90025d1d0af5e66dc9b00f214.tar.zst |
add map flush packet for #157
Diffstat (limited to 'server')
-rw-r--r-- | server/protocol/src/lib.rs | 3 | ||||
-rw-r--r-- | server/registry/src/lobby.rs | 1 | ||||
-rw-r--r-- | server/src/entity/campaign.rs | 3 | ||||
-rw-r--r-- | server/src/server.rs | 4 |
4 files changed, 8 insertions, 3 deletions
diff --git a/server/protocol/src/lib.rs b/server/protocol/src/lib.rs index 4c2ff3f4..d26d8d18 100644 --- a/server/protocol/src/lib.rs +++ b/server/protocol/src/lib.rs @@ -28,7 +28,7 @@ pub use glam; pub mod movement; pub mod registry; -pub const VERSION: (u32, u32) = (7, 2); +pub const VERSION: (u32, u32) = (7, 3); pub const BINCODE_CONFIG: Configuration<LittleEndian, Varint, Limit<4096>> = standard().with_limit(); @@ -232,6 +232,7 @@ pub enum PacketC { kind: Option<TileIndex>, neighbors: [Option<TileIndex>; 4], }, + FlushMap, Communicate { player: PlayerID, message: Option<Message>, diff --git a/server/registry/src/lobby.rs b/server/registry/src/lobby.rs index 886443f5..7f2387b8 100644 --- a/server/registry/src/lobby.rs +++ b/server/registry/src/lobby.rs @@ -90,6 +90,7 @@ async fn handle_conn(sock: TcpStream, addr: SocketAddr, entries: &[Entry]) -> Re neighbors: [None, None, None, None], }); } + out.push(PacketC::FlushMap); out.push(PacketC::SetIngame { state: true, lobby: false, // very ironic diff --git a/server/src/entity/campaign.rs b/server/src/entity/campaign.rs index 5838d3ce..6683716d 100644 --- a/server/src/entity/campaign.rs +++ b/server/src/entity/campaign.rs @@ -68,7 +68,8 @@ impl Entity for Gate { self.unlocked = self.condition.check(c.scoreboard); if !self.unlocked { c.game - .set_tile(self.location, Some(self.blocker_tile), c.packet_out) + .set_tile(self.location, Some(self.blocker_tile), c.packet_out); + c.packet_out.push_back(PacketC::FlushMap); // TODO dont send too often } } Ok(()) diff --git a/server/src/server.rs b/server/src/server.rs index 8257a420..1d57a200 100644 --- a/server/src/server.rs +++ b/server/src/server.rs @@ -227,6 +227,7 @@ impl GameServerExt for Game { } } } + out.push(PacketC::FlushMap); out.push(PacketC::Score(self.score.clone())); out.push(PacketC::SetIngame { state: true, @@ -272,6 +273,7 @@ impl GameServerExt for Game { } } + /// Dont forget to flush fn set_tile( &mut self, tile: IVec2, @@ -298,7 +300,7 @@ impl GameServerExt for Game { self.tiles.get(&(tile + IVec2::Y)).map(|e| e.kind), self.tiles.get(&(tile + IVec2::X)).map(|e| e.kind), ], - }) + }); } } |