summaryrefslogtreecommitdiff
path: root/src/item.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/item.rs')
-rw-r--r--src/item.rs23
1 files changed, 17 insertions, 6 deletions
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"
- }
}