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); }
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); }