summaryrefslogtreecommitdiff
path: root/server/src/game.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/game.rs')
-rw-r--r--server/src/game.rs19
1 files changed, 13 insertions, 6 deletions
diff --git a/server/src/game.rs b/server/src/game.rs
index 851d485c..32fb7ac9 100644
--- a/server/src/game.rs
+++ b/server/src/game.rs
@@ -20,16 +20,16 @@ use crate::{
data::Gamedata,
entity::{Entity, EntityT},
interaction::{interact, tick_slot, InteractEffect, TickEffect},
- protocol::{
- ItemIndex, ItemLocation, Message, PacketC, PacketS, PlayerID, RecipeIndex, TileIndex,
- },
};
use anyhow::{anyhow, bail, Result};
-use glam::{IVec2, Vec2};
+use hurrycurry_protocol::{
+ glam::{IVec2, Vec2},
+ ClientGamedata, ItemIndex, ItemLocation, Message, PacketC, PacketS, PlayerID, RecipeIndex,
+ TileIndex,
+};
use log::{info, warn};
use std::{
collections::{HashMap, VecDeque},
- ops::Deref,
sync::Arc,
time::{Duration, Instant},
};
@@ -164,7 +164,13 @@ impl Game {
pub fn prime_client(&self) -> Vec<PacketC> {
let mut out = Vec::new();
out.push(PacketC::Data {
- data: self.data.deref().to_owned(),
+ data: ClientGamedata {
+ item_names: self.data.item_names.clone(),
+ tile_names: self.data.tile_names.clone(),
+ tile_collide: self.data.tile_collide.clone(),
+ tile_interact: self.data.tile_interact.clone(),
+ map_names: self.data.map_names.clone(),
+ },
});
for (&id, player) in &self.players {
out.push(PacketC::AddPlayer {
@@ -408,6 +414,7 @@ impl Game {
item,
})
}
+ PacketS::ReplayTick { .. } => bail!("packet not supported in this session"),
}
if self.points != points_before {