summaryrefslogtreecommitdiff
path: root/src/modules/tractorbeam.rs
diff options
context:
space:
mode:
authortom barrett <spalf0@gmail.com>2019-02-12 13:20:06 -0600
committertom barrett <spalf0@gmail.com>2019-02-12 13:20:06 -0600
commit070485e093dc540a5db9650d438cffe3d18d3883 (patch)
treea0ab1f42c844b3557c7f17b11f3c7eae334e853d /src/modules/tractorbeam.rs
parent6a906ce663935e37d6dd79a2e2e31fb07ca7c2af (diff)
added constants file, made so items are referred to by an enum, figured better ways than ship_clone
Diffstat (limited to 'src/modules/tractorbeam.rs')
-rw-r--r--src/modules/tractorbeam.rs9
1 files changed, 5 insertions, 4 deletions
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 {