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/item.rs | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'src/item.rs') diff --git a/src/item.rs b/src/item.rs index c51b1a2..0d655e4 100644 --- a/src/item.rs +++ b/src/item.rs @@ -1,18 +1,29 @@ +use crate::constants; +use crate::math::rand_name; + +#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)] +pub enum ItemType { + CrudeMinerals, + Iron, +} + #[derive(Serialize, Deserialize, Debug, Clone)] pub struct Item { + pub itemtype: ItemType, pub name: String, pub size: usize, } impl Item { - pub fn new(name: &str, size: usize) -> Item { + pub fn new(itemtype: ItemType) -> Item { + let size = match itemtype { + ItemType::CrudeMinerals => constants::CRUDE_MINERALS_SIZE, + ItemType::Iron => constants::IRON_SIZE, + }; Item { - name: String::from(name), + name: serde_json::to_string(&itemtype).unwrap() + &rand_name(), + itemtype, size, } } - - pub fn is_mineral(&self) -> bool { - self.name == "Mineral" - } } -- cgit v1.2.3