public bool AddItem(InventoryItem inventoryItem) => _armsContainer.AddItem(inventoryItem);
public static bool PreAddOrSwap(ref bool __result, InventoryItem itemA, Equipment equipmentB, string slotB) { if (itemA == null || !itemA.CanDrag(true) || equipmentB == null) { return(true); } Pickupable item = itemA.item; if (item == null) { return(true); } TechType techType = item.GetTechType(); bool isBattery = IsChip(techType); if (isBattery) { IItemsContainer container = itemA.container; if (container == null) { return(true); } Equipment equipment = container as Equipment; bool flag = equipment != null; string empty = string.Empty; if (flag && !equipment.GetItemSlot(item, ref empty)) { return(true); } EquipmentType equipmentType = EquipmentType.BatteryCharger; if (string.IsNullOrEmpty(slotB)) { equipmentB.GetCompatibleSlot(equipmentType, out slotB); } if (string.IsNullOrEmpty(slotB)) { return(true); } if (container == equipmentB && empty == slotB) { return(true); } EquipmentType slotBType = Equipment.GetSlotType(slotB); if (slotBType != EquipmentType.BatteryCharger) { return(true); } else // Else, we're trying to plug a battery or powercell to its charger { InventoryItem inventoryItem = equipmentB.RemoveItem(slotB, false, true); if (inventoryItem == null) { if (equipmentB.AddItem(slotB, itemA, false)) { __result = true; return(false); } } else if (equipmentB.AddItem(slotB, itemA, false)) { if ((flag && equipment.AddItem(empty, inventoryItem, false)) || (!flag && container.AddItem(inventoryItem))) { __result = true; return(false); } if (flag) { equipment.AddItem(empty, itemA, true); } else { container.AddItem(itemA); } equipmentB.AddItem(slotB, inventoryItem, true); } else { equipmentB.AddItem(slotB, inventoryItem, true); } __result = false; return(false); } } return(true); }