dont delete items when unequipping

This commit is contained in:
andy 2020-10-06 22:36:02 -03:00
parent 48abf4533f
commit 6c33c7ec9b
2 changed files with 9 additions and 3 deletions

View File

@ -337,6 +337,10 @@ impl<'a> InventoryItemHandle<'a> {
}
}
}
pub fn get_slot(&self) -> usize {
self.slot
}
}

View File

@ -903,11 +903,12 @@ impl ItemManager {
-> Result<(), ItemManagerError> {
let inventory = self.character_inventory.get_mut(&character.id).ok_or(ItemManagerError::NoCharacter(character.id))?;
let mut inventory_item_handle = inventory.get_item_handle_by_id(item_id).ok_or(ItemManagerError::NoSuchItemId(item_id))?;
let slot = inventory_item_handle.get_slot();
let inventory_item = inventory_item_handle.item_mut().ok_or(ItemManagerError::CannotGetMutItem)?.individual().ok_or(ItemManagerError::CannotGetIndividualItem)?;
inventory_item.equipped = true;
entity_gateway.change_item_location(&inventory_item.entity_id, ItemLocation::Inventory{
character_id: character.id,
slot: character.slot as usize,
slot: slot,
equipped: true,
}).await;
@ -922,11 +923,12 @@ impl ItemManager {
-> Result<(), ItemManagerError> {
let inventory = self.character_inventory.get_mut(&character.id).ok_or(ItemManagerError::NoCharacter(character.id))?;
let mut inventory_item_handle = inventory.get_item_handle_by_id(item_id).ok_or(ItemManagerError::NoSuchItemId(item_id))?;
let slot = inventory_item_handle.get_slot();
let inventory_item = inventory_item_handle.item_mut().ok_or(ItemManagerError::CannotGetMutItem)?.individual().ok_or(ItemManagerError::CannotGetIndividualItem)?;
inventory_item.equipped = false;
entity_gateway.change_item_location(&inventory_item.entity_id, ItemLocation::Inventory{
character_id: character.id,
slot: character.slot as usize,
slot: slot,
equipped: false,
}).await;