diff options
author | tom barrett <spalf0@gmail.com> | 2019-02-03 05:45:35 -0600 |
---|---|---|
committer | tom barrett <spalf0@gmail.com> | 2019-02-03 05:45:35 -0600 |
commit | 46fa862e04bc43311ba79ef3db70abf9014b9104 (patch) | |
tree | 3507873ec788af1f1e0885bbb676dbb4a373d48e /src/modules/navigation.rs | |
parent | 828f0d83dcb258a8e5efd55a7775592c6e5f77bc (diff) |
bringing to 2018
Diffstat (limited to 'src/modules/navigation.rs')
-rw-r--r-- | src/modules/navigation.rs | 44 |
1 files changed, 27 insertions, 17 deletions
diff --git a/src/modules/navigation.rs b/src/modules/navigation.rs index 84f315c..11f3e94 100644 --- a/src/modules/navigation.rs +++ b/src/modules/navigation.rs @@ -1,8 +1,8 @@ -use std::time::SystemTime; use std::collections::HashMap; +use std::time::SystemTime; -use mass::Mass; -use math::distance; +use crate::mass::Mass; +use crate::math::distance; #[derive(Serialize, Deserialize, Debug, Clone, PartialEq)] pub enum NavigationStatus { @@ -11,28 +11,34 @@ pub enum NavigationStatus { Targeted, } -#[derive(Serialize, Deserialize, Debug, Clone)] +impl Default for NavigationStatus { + fn default() -> Self { + NavigationStatus::None + } +} + +#[derive(Serialize, Deserialize, Debug, Clone, Default)] pub struct Navigation { - pub range : f64, - pub status : NavigationStatus, - pub target_name : Option<String>, - time : u64, - start : Option<SystemTime>, + pub range: f64, + pub status: NavigationStatus, + pub target_name: Option<String>, + time: u64, + start: Option<SystemTime>, } impl Navigation { pub fn new() -> Navigation { Navigation { - target_name : None, - range : 100.0, - status : NavigationStatus::None, - time : 3, - start : None, + target_name: None, + range: 100.0, + status: NavigationStatus::None, + time: 3, + start: None, } } pub fn process(&mut self) { - if let Some(timer) = self.start.clone() { + if let Some(timer) = self.start { if timer.elapsed().unwrap().as_secs() > self.time { self.status = NavigationStatus::Targeted; self.start = None; @@ -40,13 +46,17 @@ impl Navigation { } } - pub fn give_target(&mut self, target_name : String) { + pub fn give_target(&mut self, target_name: String) { self.start = Some(SystemTime::now()); self.status = NavigationStatus::Targeting; self.target_name = Some(target_name); } - pub fn verify_target(&mut self, ship_position : (f64, f64, f64), masses : &HashMap<String, Mass>) { + pub fn verify_target( + &mut self, + ship_position: (f64, f64, f64), + masses: &HashMap<String, Mass>, + ) { if let Some(name) = self.target_name.clone() { let target = masses.get(&name).unwrap(); if distance(target.position, ship_position) > self.range { |