diff options
author | tom barrett <spalf0@gmail.com> | 2019-02-19 13:24:25 -0600 |
---|---|---|
committer | tom barrett <spalf0@gmail.com> | 2019-02-19 13:24:25 -0600 |
commit | a4efade392aa7127c373b0247d39274cb0decd10 (patch) | |
tree | 72ff44e69917873ca9933c4a56794a15b99fb90c /src/server/tractorbeam.rs | |
parent | 892088d723fd3dc0aae969273331c2765f322e6f (diff) |
unified all server->client connection and brought logic to modules
Diffstat (limited to 'src/server/tractorbeam.rs')
-rw-r--r-- | src/server/tractorbeam.rs | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/src/server/tractorbeam.rs b/src/server/tractorbeam.rs deleted file mode 100644 index 9591c0b..0000000 --- a/src/server/tractorbeam.rs +++ /dev/null @@ -1,52 +0,0 @@ -extern crate serde_json; - -use std::collections::HashMap; -use std::io::Write; - -use crate::mass::{Mass, MassType}; -use crate::modules::navigation::NavigationStatus; -use crate::modules::tractorbeam::TractorbeamStatus; -use crate::server::connection::ServerConnection; - -#[derive(Serialize, Deserialize, Debug, Clone)] -pub struct TractorbeamData { - pub has_target: bool, - pub status: TractorbeamStatus, -} - -impl ServerConnection { - pub fn server_tractorbeam(&mut self, masses: &mut HashMap<String, Mass>) { - let mut ship = masses.remove(&self.name).unwrap(); - - if let MassType::Ship { - ref mut tractorbeam, - ref navigation, - .. - } = ship.mass_type - { - if self.open { - let tractorbeam_data = TractorbeamData { - has_target: navigation.status == NavigationStatus::Targeted, - status: tractorbeam.status.clone(), - }; - - let send = serde_json::to_string(&tractorbeam_data).unwrap() + "\n"; - self.open = self.stream.write(send.as_bytes()).is_ok(); - - let recv = self.receive(); - tractorbeam.give_recv(recv); - } - - if let Some(name) = navigation.target_name.clone() { - let target = masses.get_mut(&name).unwrap(); - let acceleration = - tractorbeam.get_acceleration(ship.position.clone(), target.clone()); - target.effects.give_acceleration(acceleration); - } else { - tractorbeam.off(); - } - } - - masses.insert(self.name.clone(), ship); - } -} |