Beispiel #1
0
        private bool TransferItemsTo(IMyInventory dst, int sourceItemIndex, int?targetItemIndex, VRage.MyFixedPoint?amount, bool useConveyor)
        {
            MyInventory dstInventory = dst as MyInventory;

            if (dstInventory != null)
            {
                if (sourceItemIndex < 0 || sourceItemIndex >= this.m_items.Count || (useConveyor == true && IsConnected(dstInventory) == false))
                {
                    return(false);
                }
                Transfer(this as MyInventory, dstInventory, this.GetItems()[sourceItemIndex].ItemId, targetItemIndex.HasValue ? targetItemIndex.Value : -1, amount);
                return(true);
            }
            return(false);
        }
Beispiel #2
0
 void Sandbox.ModAPI.IMyInventory.RemoveItems(uint itemId, VRage.MyFixedPoint?amount, bool sendEvent, bool spawn)
 {
     RemoveItems(itemId, amount, sendEvent, spawn);
 }
Beispiel #3
0
 bool IMyInventory.TransferItemTo(IMyInventory dst, int sourceItemIndex, int?targetItemIndex, bool?stackIfPossible, VRage.MyFixedPoint?amount)
 {
     return(TransferItemsTo(dst, sourceItemIndex, targetItemIndex, amount, true));
 }
Beispiel #4
0
        private bool TransferItemsFrom(IMyInventory sourceInventory, int sourceItemIndex, int?targetItemIndex, bool?stackIfPossible, VRage.MyFixedPoint?amount, bool useConveyors)
        {
            MyInventory srcInventory = sourceInventory as MyInventory;

            if (srcInventory != null && (useConveyors == false || IsConnected(srcInventory) == true))
            {
                TransferItemFrom(srcInventory, sourceItemIndex, targetItemIndex, stackIfPossible, amount);
                return(true);
            }
            return(false);
        }
Beispiel #5
0
 bool Sandbox.ModAPI.IMyInventory.TransferItemFrom(IMyInventory sourceInventory, int sourceItemIndex, int?targetItemIndex = null, bool?stackIfPossible = null, VRage.MyFixedPoint?amount = null, bool checkConnection = false)
 {
     return(TransferItemsFrom(sourceInventory, sourceItemIndex, targetItemIndex, stackIfPossible, amount, checkConnection));
 }
Beispiel #6
0
 bool IMyInventory.TransferItemFrom(IMyInventory sourceInventory, int sourceItemIndex, int?targetItemIndex, bool?stackIfPossible, VRage.MyFixedPoint?amount)
 {
     return(TransferItemsFrom(sourceInventory, sourceItemIndex, targetItemIndex, stackIfPossible, amount, true));
 }
Beispiel #7
0
 void VRage.Game.ModAPI.IMyInventory.RemoveItemsAt(int itemIndex, VRage.MyFixedPoint?amount, bool sendEvent, bool spawn)
 {
     RemoveItemsAt(itemIndex, amount, sendEvent, spawn);
 }
Beispiel #8
0
 bool VRage.Game.ModAPI.IMyInventory.TransferItemTo(IMyInventory dst, int sourceItemIndex, int?targetItemIndex = null, bool?stackIfPossible = null, VRage.MyFixedPoint?amount = null, bool checkConnection = false)
 {
     return(TransferItemsTo(dst, sourceItemIndex, targetItemIndex, amount, checkConnection));
 }
Beispiel #9
0
        public static VRage.MyFixedPoint ComputeAmountThatFits(this VRage.Game.ModAPI.Ingame.IMyInventory Inventory, VRage.Game.ModAPI.Ingame.IMyInventoryItem Item, VRage.MyFixedPoint?Amount = null)
        {
            var Id            = Item.Content.GetId();
            var ActualAmount  = Amount.HasValue ? Amount.Value : Item.Amount;
            var FittingAmount = (Inventory as MyInventory).ComputeAmountThatFits(Id);

            return(FittingAmount > ActualAmount ? ActualAmount : FittingAmount);
        }
 bool Sandbox.ModAPI.Interfaces.IMyInventory.TransferItemTo(Sandbox.ModAPI.Interfaces.IMyInventory dst, int sourceItemIndex, int?targetItemIndex, bool?stackIfPossible, VRage.MyFixedPoint?amount)
 {
     return(TransferItemsTo(dst, sourceItemIndex, targetItemIndex, amount, true));
 }