Esempio n. 1
0
    public void SetItems(List <Item> items)
    {
        _items = items;

        OnItemQuantityChanged?.Invoke(items.Count);
        OnItemContainerChanged?.Invoke(Item);
    }
Esempio n. 2
0
    public void Clear()
    {
        Item item     = Item;
        int  quantity = Quantity;

        _items.Clear();
        OnItemQuantityChanged?.Invoke(quantity);
        OnItemContainerChanged?.Invoke(item);
    }
Esempio n. 3
0
    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);
    }
Esempio n. 4
0
    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);
    }
Esempio n. 5
0
    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);
        }
    }
Esempio n. 6
0
 public void TriggerOnChangeEvent() => OnItemContainerChanged?.Invoke(Item);