From 04b0277e334003344d9c7e35e012343afa086923 Mon Sep 17 00:00:00 2001 From: ninefox Date: Sun, 23 Jan 2022 10:34:06 -0800 Subject: [PATCH] Changed how lantern swap is caught --- server/src/events/inventory_manip.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/server/src/events/inventory_manip.rs b/server/src/events/inventory_manip.rs index 03e9141d43..2888dd3183 100644 --- a/server/src/events/inventory_manip.rs +++ b/server/src/events/inventory_manip.rs @@ -427,14 +427,16 @@ pub fn handle_inventory(server: &mut Server, entity: EcsEntity, manip: comp::Inv comp::InventoryManip::Swap(a, b) => { let ecs = state.ecs(); - if let (Slot::Inventory(inv_slot), Slot::Equip(slot::EquipSlot::Lantern)) - | (Slot::Equip(slot::EquipSlot::Lantern), Slot::Inventory(inv_slot)) = (a, b) - { - if let Some(comp::item::ItemKind::Lantern(lantern)) = - inventory.get(inv_slot).map(|item| item.kind()) - { - swap_lantern(&mut ecs.write_storage(), entity, lantern); - } + if let Some(comp::item::ItemKind::Lantern(lantern)) = match (a, b) { + // Only current possible lantern swap is between Slot::Inventory and Slot::Equip + // add more cases if needed + (Slot::Equip(slot::EquipSlot::Lantern), Slot::Inventory(slot)) + | (Slot::Inventory(slot), Slot::Equip(slot::EquipSlot::Lantern)) => { + inventory.get(slot).map(|item| item.kind()) + }, + _ => None, + } { + swap_lantern(&mut ecs.write_storage(), entity, lantern); } if let Some(pos) = ecs.read_storage::().get(entity) {