summaryrefslogtreecommitdiff
path: root/src/systems/take.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-04-05 20:04:33 +0200
committertroido <troido@protonmail.com>2020-04-05 20:04:33 +0200
commit48c24ec8b011d081550dc78329cbe61de67b30e9 (patch)
treed2d700897dc5ba3d0f52e8a1cd57c0f4880272fd /src/systems/take.rs
parent84c70cee089b72720a85d285ee0437b65be298b9 (diff)
items are now mostly replaced by itemids, with a mapping to the item in the encyclopedia
Diffstat (limited to 'src/systems/take.rs')
-rw-r--r--src/systems/take.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/systems/take.rs b/src/systems/take.rs
index 9eb76e7..5a86269 100644
--- a/src/systems/take.rs
+++ b/src/systems/take.rs
@@ -14,6 +14,7 @@ use crate::components::{
Position,
Removed,
Inventory,
+ inventory::InventoryEntry,
Item,
Visible
};
@@ -50,7 +51,11 @@ impl <'a> System<'a> for Take {
}
for ent in ents {
if let Some(item) = items.get(ent) {
- inventory.items.insert(0, (item.clone(), false));
+ inventory.items.insert(0, InventoryEntry{
+ itemid: item.0.clone(),
+ item: new.encyclopedia.get_item(&item.0).unwrap(),
+ is_equipped: false
+ });
if let Err(msg) = removed.insert(ent, Removed) {
println!("{:?}", msg);
}
@@ -62,8 +67,8 @@ impl <'a> System<'a> for Take {
if *rank >= inventory.items.len() {
return
}
- let (item, _is_equipped) = inventory.items.remove(*rank);
- let _ = new.create(position.pos, &item.ent);
+ let entry = inventory.items.remove(*rank);
+ let _ = new.create(position.pos, &entry.item.ent);
}
_ => {}
}