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/modules/engines.rs | |
parent | 892088d723fd3dc0aae969273331c2765f322e6f (diff) |
unified all server->client connection and brought logic to modules
Diffstat (limited to 'src/modules/engines.rs')
-rw-r--r-- | src/modules/engines.rs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/modules/engines.rs b/src/modules/engines.rs index 007787c..63e1fcd 100644 --- a/src/modules/engines.rs +++ b/src/modules/engines.rs @@ -1,6 +1,7 @@ use crate::constants; use crate::mass::Mass; use crate::math::Vector; +use crate::modules::navigation::NavigationStatus; #[derive(Serialize, Deserialize, Debug, Clone, Default)] pub struct Engines { @@ -27,7 +28,7 @@ impl Engines { } } - pub fn give_recv( + pub fn give_received_data( &mut self, recv: String, position: Vector, @@ -61,6 +62,14 @@ impl Engines { self.acceleration = acceleration; } + pub fn get_client_data(&self, status: NavigationStatus) -> String { + let client_data = EnginesClientData { + has_target: status == NavigationStatus::Targeted, + fuel: self.fuel, + }; + serde_json::to_string(&client_data).unwrap() + "\n" + } + pub fn take_acceleration(&mut self) -> Vector { let mut acceleration = self.acceleration.clone(); self.acceleration = Vector::default(); @@ -76,3 +85,9 @@ impl Engines { } } } + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct EnginesClientData { + pub has_target: bool, + pub fuel: f64, +} |