use actix::Addr; use uuid::Uuid; use crate::data::GameRules; use crate::game::{Game, Player}; use crate::human_player_ws::{ClientMessage, HumanPlayerWS, ServerMessage}; pub struct HumanPlayer { pub name: String, pub game: Addr, pub player: Addr, pub uuid: Uuid, } impl Player for HumanPlayer { fn get_name(&self) -> &str { &self.name } fn get_uid(&self) -> Uuid { self.uuid } fn query_boats_layout(&self, rules: &GameRules) { self.player.do_send(ServerMessage::QueryBoatsLayout { rules: rules.clone(), }); } fn notify_other_player_ready(&self) { self.player.do_send(ServerMessage::OtherPlayerReady); } fn notify_game_starting(&self) { self.player.do_send(ServerMessage::GameStarting); } } impl HumanPlayer { pub fn handle_client_message(&self, msg: ClientMessage) { log::info!("Got message from client: {:?}", msg); } }