public void RemoveItems(int id) { if (!m_itemsHash.Contains(id)) { return; } m_itemsHash.Remove(id); for (int index = 0, count = m_items.Count; index < (m_data.InventorySlots - 1) && count > 0; index++) { if (m_items.TryGetValue(index, out var slot)) { count--; if (slot.Item.Id == id) { slot.Amount = 0; m_items.Remove(index); m_view.UpdateSlot(slot, index); } } } }