From 35b43264c09405c987b48de78b6ca19f29dc7849 Mon Sep 17 00:00:00 2001 From: tom barrett Date: Thu, 14 Feb 2019 12:05:57 -0600 Subject: simplified receive pattern even more and moved all controls to the module --- src/mass.rs | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) (limited to 'src/mass.rs') diff --git a/src/mass.rs b/src/mass.rs index 0c19bad..33144ab 100644 --- a/src/mass.rs +++ b/src/mass.rs @@ -51,13 +51,13 @@ impl Effects { pub enum MassType { Ship { storage: Storage, - mining: Option, - engines: Option, - refinery: Option, - dashboard: Option, - navigation: Option, - tractorbeam: Option, - construction: Option, + mining: Mining, + engines: Engines, + refinery: Refinery, + dashboard: Dashboard, + navigation: Navigation, + tractorbeam: Tractorbeam, + construction: Construction, }, Astroid { resources: Storage, @@ -110,13 +110,13 @@ impl Mass { pub fn new_ship() -> Mass { let ship = MassType::Ship { - mining: Some(Mining::new()), - engines: Some(Engines::new()), - refinery: Some(Refinery::new()), - dashboard: Some(Dashboard::new()), - navigation: Some(Navigation::new()), - tractorbeam: Some(Tractorbeam::new()), - construction: Some(Construction::new()), + mining: Mining::new(), + engines: Engines::new(), + refinery: Refinery::new(), + dashboard: Dashboard::new(), + navigation: Navigation::new(), + tractorbeam: Tractorbeam::new(), + construction: Construction::new(), storage: Storage::new(Vec::new(), constants::SHIP_STORAGE_CAPACITY), }; @@ -170,12 +170,11 @@ impl Mass { .. } = self.mass_type { - mining.as_mut().unwrap().process(); - refinery.as_mut().unwrap().process(); - navigation.as_mut().unwrap().process(); - construction.as_mut().unwrap().process(); - self.effects - .give_acceleration(engines.as_mut().unwrap().recv_acceleration()) + mining.process(); + refinery.process(); + navigation.process(); + construction.process(); + self.effects.give_acceleration(engines.take_acceleration()) } self.velocity += self.effects.take_acceleration(); -- cgit v1.2.3