Exemple #1
0
        public bool Add(IItemStack itemStackToAdd)
        {
            IHasItemStack firstOpenStack = null;

            foreach (var stack in _stacks)
            {
                var itemStack = stack.GetItemStack();
                if (firstOpenStack == null &&
                    (itemStack == null ||
                     itemStack.GetCount() == 0))
                {
                    firstOpenStack = stack;
                    continue;
                }

                if (itemStack != null &&
                    itemStack.GetItemName() == itemStackToAdd.GetItemName() &&
                    itemStack.Merge(itemStackToAdd))
                {
                    return(true);
                }
            }

            if (firstOpenStack != null)
            {
                firstOpenStack.SetItemStack(itemStackToAdd);
                return(true);
            }

            return(false);
        }
Exemple #2
0
        public void SwapItemStack(IHasItemStack hasItemStack)
        {
            var temp = _itemStack;

            SetItemStack(hasItemStack.GetItemStack());
            hasItemStack.SetItemStack(temp);
        }