summaryrefslogtreecommitdiff
path: root/src/server/engines.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/engines.rs')
-rw-r--r--src/server/engines.rs58
1 files changed, 29 insertions, 29 deletions
diff --git a/src/server/engines.rs b/src/server/engines.rs
index 710ed3a..2c96920 100644
--- a/src/server/engines.rs
+++ b/src/server/engines.rs
@@ -9,39 +9,39 @@ use modules::navigation::NavigationStatus;
use server::connection::ServerConnection;
impl ServerConnection {
- pub fn server_engines(&mut self, masses : &mut HashMap<String, Mass>) -> bool {
- let mut ship = masses.remove(&self.name).unwrap();
- let ship_clone = ship.clone();
- let mut connection_good = true;
+ pub fn server_engines(&mut self, masses : &mut HashMap<String, Mass>) {
+ if self.open {
+ let mut ship = masses.remove(&self.name).unwrap();
+ let ship_clone = ship.clone();
- if let MassType::Ship{ref mut engines, ref navigation, ..} = ship.mass_type {
- let navigation = navigation.clone().unwrap();
- let engines = engines.as_mut().unwrap();
- let targeted = navigation.status == NavigationStatus::Targeted;
+ if let MassType::Ship{ref mut engines, ref navigation, ..} = ship.mass_type {
+ let navigation = navigation.clone().unwrap();
+ let engines = engines.as_mut().unwrap();
+ let targeted = navigation.status == NavigationStatus::Targeted;
- let send = serde_json::to_string(&targeted).unwrap() + "\n";
- match self.stream.write(send.as_bytes()) {
- Ok(_result) => (),
- Err(_error) => connection_good = false,
- }
+ let send = serde_json::to_string(&targeted).unwrap() + "\n";
+ match self.stream.write(send.as_bytes()) {
+ Ok(_result) => (),
+ Err(_error) => self.open = false,
+ }
- let target = match navigation.target_name {
- Some(name) => masses.get(&name),
- None => None,
- };
- let mut recv = String::new();
- match self.buff_r.read_line(&mut recv) {
- Ok(result) => {
- engines.give_client_data(&ship_clone, target, recv);
- if result == 0 {
- connection_good = false;
- }
- },
- Err(_error) => (),
+ let target = match navigation.target_name {
+ Some(name) => masses.get(&name),
+ None => None,
+ };
+ let mut recv = String::new();
+ match self.buff_r.read_line(&mut recv) {
+ Ok(result) => {
+ engines.give_client_data(&ship_clone, target, recv);
+ if result == 0 {
+ self.open = false;
+ }
+ },
+ Err(_error) => (),
+ }
}
- }
- masses.insert(self.name.clone(), ship);
- connection_good
+ masses.insert(self.name.clone(), ship);
+ }
}
}