diff options
author | tom barrett <spalf0@gmail.com> | 2018-06-05 02:21:04 -0500 |
---|---|---|
committer | tom barrett <spalf0@gmail.com> | 2018-06-05 02:21:04 -0500 |
commit | f6c9fbea8f535febaf51dc08c353e985aa73988d (patch) | |
tree | 7168eeb42589b8e425b895a423fdcd4c83c64ae6 /src/mass.rs | |
parent | d2b75c42c1c494c2796188a5d600dddb913f5a5d (diff) |
frail implementation of mining
Diffstat (limited to 'src/mass.rs')
-rw-r--r-- | src/mass.rs | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/mass.rs b/src/mass.rs index 85651d4..4bb44b0 100644 --- a/src/mass.rs +++ b/src/mass.rs @@ -48,7 +48,6 @@ impl Mass { resources.push(Item::new("Iron", 1)); } - let astroid = MassType::Astroid { resources : Storage::new(resources), }; @@ -88,7 +87,8 @@ impl Mass { pub fn process(&mut self) { let mut acceleration = (0.0, 0.0, 0.0); match self.mass_type { - MassType::Ship{ref mut navigation, ref mut engines, ..} => { + MassType::Ship{ref mut navigation, ref mut engines, ref mut mining, ..} => { + mining.as_mut().unwrap().process(); navigation.as_mut().unwrap().process(); acceleration = engines.as_mut().unwrap().recv_acceleration(); }, @@ -105,4 +105,18 @@ impl Mass { self.velocity.1 += acceleration.1; self.velocity.2 += acceleration.2; } + + pub fn take(&mut self, name : &str) -> Option<Item> { + match self.mass_type { + MassType::Ship{ref mut storage, ..} => storage.take(name), + MassType::Astroid{ref mut resources, ..} => resources.take(name), + } + } + + pub fn give(&mut self, item : Item) { + match self.mass_type { + MassType::Ship{ref mut storage, ..} => storage.give(item), + MassType::Astroid{ref mut resources, ..} => resources.give(item), + } + } } |