diff options
| author | troido <troido@protonmail.com> | 2020-04-05 20:04:33 +0200 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-04-05 20:04:33 +0200 |
| commit | 48c24ec8b011d081550dc78329cbe61de67b30e9 (patch) | |
| tree | d2d700897dc5ba3d0f52e8a1cd57c0f4880272fd /src/systems/take.rs | |
| parent | 84c70cee089b72720a85d285ee0437b65be298b9 (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.rs | 11 |
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); } _ => {} } |
