summaryrefslogtreecommitdiff
path: root/src/server/tractorbeam.rs
diff options
context:
space:
mode:
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);
- }
-}