예제 #1
0
파일: Inventory.cs 프로젝트: Rixium/Mayday
        private IItemStack GetStackForItem(IItem item)
        {
            IItemStack selectedStack = null;

            if (ItemStacks == null)
            {
                ItemStacks = new List <IItemStack>();
            }

            foreach (var stack in ItemStacks.Reverse())
            {
                if (stack.IsEmpty())
                {
                    selectedStack = stack;
                }
                if (!stack.ContainsItemOfType(item))
                {
                    continue;
                }
                if (!stack.HasSpaceFor(item))
                {
                    continue;
                }
                selectedStack = stack;
                break;
            }

            return(selectedStack ?? CreateNewStackIfPossible());
        }