public void SetItems(List <Item> items) { _items = items; OnItemQuantityChanged?.Invoke(items.Count); OnItemContainerChanged?.Invoke(Item); }
public void Clear() { Item item = Item; int quantity = Quantity; _items.Clear(); OnItemQuantityChanged?.Invoke(quantity); OnItemContainerChanged?.Invoke(item); }
public List <Item> RemoveItems(int quantity) { Item item = Item; quantity = System.Math.Clamp(quantity, 0, Quantity); List <Item> items = new List <Item>(); for (int i = 0; i < quantity; i++) { items.Add(_items[_items.Count - 1]); _items.RemoveAt(_items.Count - 1); } OnItemContainerChanged?.Invoke(item); OnItemQuantityChanged?.Invoke(items.Count); return(items); }
public bool AddItem(Item item) { bool addedItem = false; if (GetRoomForItem(item) > 0) { _items.Add(item); addedItem = true; } if (addedItem) { OnItemQuantityChanged?.Invoke(1); OnItemContainerChanged?.Invoke(Item); } return(addedItem); }
public void RemoveItemInstance(Item item) { int index = -1; for (int i = 0; i < _items.Count; i++) { if (_items[i].Guid.Equals(item.Guid)) { index = i; } } if (index != -1) { _items.RemoveAt(index); OnItemContainerChanged?.Invoke(item); OnItemQuantityChanged?.Invoke(-1); } }
public void TriggerOnChangeEvent() => OnItemContainerChanged?.Invoke(Item);