From 070485e093dc540a5db9650d438cffe3d18d3883 Mon Sep 17 00:00:00 2001 From: tom barrett Date: Tue, 12 Feb 2019 13:20:06 -0600 Subject: added constants file, made so items are referred to by an enum, figured better ways than ship_clone --- src/modules/tractorbeam.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/modules/tractorbeam.rs') diff --git a/src/modules/tractorbeam.rs b/src/modules/tractorbeam.rs index 1ddc7d0..445b066 100644 --- a/src/modules/tractorbeam.rs +++ b/src/modules/tractorbeam.rs @@ -1,3 +1,4 @@ +use crate::constants; use crate::mass::Mass; use crate::math::Vector; @@ -26,7 +27,7 @@ impl Tractorbeam { pub fn new() -> Tractorbeam { Tractorbeam { status: TractorbeamStatus::None, - strength: 0.1, + strength: constants::SHIP_TRACTORBEAM_STRENGTH, desired_distance: None, } } @@ -63,14 +64,14 @@ impl Tractorbeam { self.status = TractorbeamStatus::None; } - pub fn get_acceleration(&self, ship: Mass, target: Mass) -> Vector { - let acceleration = ship.position.clone() - target.position.clone(); + pub fn get_acceleration(&self, position: Vector, target: Mass) -> Vector { + let acceleration = position.clone() - target.position.clone(); match self.status { TractorbeamStatus::Push => acceleration.unitize() * -0.05, TractorbeamStatus::Pull => acceleration.unitize() * 0.05, TractorbeamStatus::Bring => match self.desired_distance { Some(desired_distance) => { - if desired_distance > ship.position.distance_from(target.position) { + if desired_distance > position.distance_from(target.position) { acceleration.unitize() * -0.05 //some sort of velocity limiter //if target.speed_torwards(ship) < 10.0 { -- cgit v1.2.3