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); }
public void SwapItemStack(IHasItemStack hasItemStack) { var temp = _itemStack; SetItemStack(hasItemStack.GetItemStack()); hasItemStack.SetItemStack(temp); }