summaryrefslogtreecommitdiff
path: root/src/server/tractorbeam.rs
diff options
context:
space:
mode:
authortom barrett <spalf0@gmail.com>2019-02-19 13:24:25 -0600
committertom barrett <spalf0@gmail.com>2019-02-19 13:24:25 -0600
commita4efade392aa7127c373b0247d39274cb0decd10 (patch)
tree72ff44e69917873ca9933c4a56794a15b99fb90c /src/server/tractorbeam.rs
parent892088d723fd3dc0aae969273331c2765f322e6f (diff)
unified all server->client connection and brought logic to modules
Diffstat (limited to 'src/server/tractorbeam.rs')
-rw-r--r--src/server/tractorbeam.rs52
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);
- }
-}