Example #1
0
        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);
        }