summaryrefslogtreecommitdiff
path: root/src/systems/take.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-02-21 19:22:26 +0100
committertroido <troido@protonmail.com>2020-02-21 19:22:26 +0100
commit4ed2d71e76f04c75a214e43363dc1b64e109fe3d (patch)
tree1ae0375ff74216dacc6f5a2b443b84e85b257059 /src/systems/take.rs
parent60b56b39488f7704f42580363d1343a4dc9732e8 (diff)
used rank in taking objects
Diffstat (limited to 'src/systems/take.rs')
-rw-r--r--src/systems/take.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/systems/take.rs b/src/systems/take.rs
index bf0f8e8..31634d2 100644
--- a/src/systems/take.rs
+++ b/src/systems/take.rs
@@ -44,17 +44,20 @@ impl <'a> System<'a> for Take {
ents.remove(&ent);
for ent in ents {
if let Some(item) = items.get(ent) {
- inventory.items.push(item.clone());
+ inventory.items.insert(0, item.clone());
if let Err(msg) = removed.insert(ent, Removed) {
println!("{:?}", msg);
}
+ break;
}
}
}
- Control::Drop(_rank) => {
- if let Some(item) = inventory.items.pop() {
- let _ = new.create(position.pos, item.ent);
+ Control::Drop(rank) => {
+ if *rank >= inventory.items.len() {
+ return
}
+ let item = inventory.items.remove(*rank);
+ let _ = new.create(position.pos, item.ent);
}
_ => {}
}