public override Item GetItemForInput(InputPipeNode input, int flux)
        {
            Item item = null;

            if (input != null)
            {
                NetCollection <Item> itemList = Farm.getShippingBin(Game1.MasterPlayer);
                int index = itemList.Count - 1;
                if (CanSendItems() && Farm.lastItemShipped != null)
                {
                    if (input.HasFilter())
                    {
                        if (input.Filter.Any(i => i.Name.Equals(itemList[index].Name)))
                        {
                            item = TryExtractItem(input.ConnectedContainer, itemList);
                        }
                    }
                    else
                    {
                        item = TryExtractItem(input.ConnectedContainer, itemList);
                    }
                }
            }
            return(item);
        }
Beispiel #2
0
        public override Item GetItemForInput(InputPipeNode input, int flux)
        {
            Item item = null;

            if (input != null)
            {
                NetObjectList <Item> itemList = GetItemList();
                int index = itemList.Count - 1;
                while (index >= 0 && item == null)
                {
                    if (Globals.UltraDebug)
                    {
                        Printer.Info($"T[{Thread.CurrentThread.ManagedThreadId}][?] Trying to send: " + itemList[index].Name);
                    }
                    if (itemList[index] != null)
                    {
                        if (input.HasFilter())
                        {
                            if (Globals.UltraDebug)
                            {
                                Printer.Info($"T[{Thread.CurrentThread.ManagedThreadId}][?] Input has filter" + input.Filter.Count.ToString());
                            }
                            if (input.Filter.Any(i => i.Name.Equals(itemList[index].Name)))
                            {
                                item = TryExtractItem(input.ConnectedContainer, itemList, index, flux);
                            }
                        }
                        else
                        {
                            item = TryExtractItem(input.ConnectedContainer, itemList, index, flux);
                        }
                    }
                    index--;
                }
            }
            return(item);
        }