public bool TryExtract(InventoryExtractionOptions options, ref InventoryExtractionResults results) //THIS IS THE ONE THAT CONVEYORS CALL { results.Item = null; results.Amount = 0; for (int i = 0; i < basin.mItemsStored.Length; i++) { if (basin.mItemsStored[i] != null && basin.mItemsStored[i].GetAmount() > 0) { //Debug.Log("Belt meta "+((ConveyorEntity)options.SourceEntity).mValue+" is requesting "+options.ExemplarBlockID+"/"+options.ExemplarItemID+" amt "+options.MinimumAmount+"/"+options.MaximumAmount); results.Item = ItemManager.CloneItem(basin.mItemsStored[i], options.MinimumAmount); results.Amount = options.MinimumAmount; /* * Debug.Log("Stored item is:"); * Debug.Log(basin.mItemsStored[i].GetType()); * Debug.Log(basin.mItemsStored[i].IsStack()); * Debug.Log(basin.mItemsStored[i].mType); * Debug.Log(basin.mItemsStored[i].GetAmount()); * Debug.Log(basin.mItemsStored[i].GetName()); */ basin.mItemsStored[i].DecrementStack(options.MinimumAmount); if (basin.mItemsStored[i].GetAmount() <= 0) { basin.mItemsStored[i] = null; } return(true); } } return(false); }
public bool TryExtract(InventoryExtractionOptions options, ref InventoryExtractionResults results) { ItemBase item; ushort cube; ushort value; int amount; if (!this.TryExtract(options.RequestType, options.ExemplarItemID, options.ExemplarBlockID, options.ExemplarBlockValue, options.InvertExemplar, options.MinimumAmount, options.MaximumAmount, options.KnownItemsOnly, false, false, options.ConvertToItem, options.IgnorePower, out item, out cube, out value, out amount)) { results.Item = null; results.Amount = 0; results.Cube = 0; results.Value = 0; return(false); } results.Cube = cube; results.Value = value; results.Amount = amount; results.Item = item; return(true); }