summaryrefslogtreecommitdiff
path: root/src/server/engines.rs
diff options
context:
space:
mode:
authortom barrett <spalf0@gmail.com>2019-02-14 12:05:57 -0600
committertom barrett <spalf0@gmail.com>2019-02-14 12:05:57 -0600
commit35b43264c09405c987b48de78b6ca19f29dc7849 (patch)
treee57fd46c3147d4ab1227d8688ebb23778dd3d21c /src/server/engines.rs
parent284cac8f4034f15e7edeba5c8232a770fc082e20 (diff)
simplified receive pattern even more and moved all controls to the module
Diffstat (limited to 'src/server/engines.rs')
-rw-r--r--src/server/engines.rs25
1 files changed, 8 insertions, 17 deletions
diff --git a/src/server/engines.rs b/src/server/engines.rs
index 86ef5ec..067acb5 100644
--- a/src/server/engines.rs
+++ b/src/server/engines.rs
@@ -5,7 +5,7 @@ use std::io::Write;
use crate::mass::{Mass, MassType};
use crate::modules::navigation::NavigationStatus;
-use crate::server::connection::{receive, ServerConnection};
+use crate::server::connection::ServerConnection;
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct EnginesData {
@@ -24,30 +24,21 @@ impl ServerConnection {
..
} = ship.mass_type
{
- let navigation = navigation.clone().unwrap();
- let engines = engines.as_mut().unwrap();
-
let engines_data = EnginesData {
has_target: navigation.status == NavigationStatus::Targeted,
fuel: engines.fuel,
};
- let send = serde_json::to_string(&engines_data).unwrap() + "\n";
- self.open = self.stream.write(send.as_bytes()).is_ok();
- let target = match navigation.target_name {
- Some(name) => masses.get(&name),
+ let target = match &navigation.target_name {
+ Some(name) => masses.get(name),
None => None,
};
- match receive(&mut self.buff_r) {
- Some(recv) => engines.give_client_data(
- ship.position.clone(),
- ship.velocity.clone(),
- target,
- recv,
- ),
- None => self.open = false,
- }
+ let send = serde_json::to_string(&engines_data).unwrap() + "\n";
+ self.open = self.stream.write(send.as_bytes()).is_ok();
+
+ let recv = self.receive();
+ engines.give_recv(recv, ship.position.clone(), ship.velocity.clone(), target);
}
masses.insert(self.name.clone(), ship);