Package mekanism.common.transporter

Examples of mekanism.common.transporter.InvStack


      }
    }

    if(doPull && getPullInv() instanceof IInventory)
    {
      InvStack stack = InventoryUtils.takeDefinedItem((IInventory)getPullInv(), 1, replaceStack.copy(), 1, 1);

      if(stack != null)
      {
        stack.use();
        return MekanismUtils.size(replaceStack, 1);
      }
    }

    return null;
View Full Code Here


          boolean sentItems = false;
          int min = 0;

          for(TransporterFilter filter : filters)
          {
            InvStack invStack = filter.getStackFromInventory(inventory, ForgeDirection.getOrientation(facing).getOpposite());

            if(invStack != null && invStack.getStack() != null)
            {
              if(filter.canFilter(invStack.getStack()))
              {
                if(filter instanceof TItemStackFilter)
                {
                  TItemStackFilter itemFilter = (TItemStackFilter)filter;

                  if(itemFilter.sizeMode)
                  {
                    min = itemFilter.min;
                  }
                }
               
                ItemStack used = emitItemToTransporter(front, invStack, filter.color, min);
               
                if(used != null)
                {
                  invStack.use(used.stackSize);
                  inventory.markDirty();
                  setActive(true);
                  sentItems = true;
                 
                  break;
                }
              }
            }
          }

          if(!sentItems && autoEject)
          {
            InvStack invStack = InventoryUtils.takeTopStack(inventory, ForgeDirection.getOrientation(facing).getOpposite().ordinal(), new FirstFinder());
           
            if(invStack != null && invStack.getStack() != null)
            {
              ItemStack used = emitItemToTransporter(front, invStack, color, 0);
             
              if(used != null)
              {
                invStack.use(used.stackSize);
                inventory.markDirty();
                setActive(true);
              }
            }
          }
View Full Code Here

        TileEntity tile = Coord4D.get(tile()).getFromSide(side).getTileEntity(world());

        if(tile instanceof IInventory)
        {
          IInventory inv = (IInventory)tile;
          InvStack stack = InventoryUtils.takeTopItem(inv, side.getOpposite().ordinal());

          if(stack != null && stack.getStack() != null)
          {
            ItemStack rejects = TransporterUtils.insert(tile, this, stack.getStack(), color, true, 0);

            if(TransporterManager.didEmit(stack.getStack(), rejects))
            {
              did = true;
              stack.use(TransporterManager.getToUse(stack.getStack(), rejects).stackSize);
            }
          }
        }
      }
View Full Code Here

        if(inventory.getStackInSlot(i) != null && inventory.getStackInSlot(i).stackSize > 0)
        {
          ItemStack toSend = inventory.getStackInSlot(i).copy();
          toSend.stackSize = 1;

          return new InvStack(inventory, i, toSend);
        }
      }
    }
    else {
      ISidedInventory sidedInventory = (ISidedInventory)inventory;
      int[] slots = sidedInventory.getAccessibleSlotsFromSide(ForgeDirection.OPPOSITES[side]);

      if(slots != null)
      {
        for(int get = slots.length - 1; get >= 0; get--)
        {
          int slotID = slots[get];

          if(sidedInventory.getStackInSlot(slotID) != null && sidedInventory.getStackInSlot(slotID).stackSize > 0)
          {
            ItemStack toSend = sidedInventory.getStackInSlot(slotID).copy();
            toSend.stackSize = 1;

            if(sidedInventory.canExtractItem(slotID, toSend, ForgeDirection.OPPOSITES[side]))
            {
              return new InvStack(inventory, slotID, toSend);
            }
          }
        }
      }
    }
View Full Code Here

  public static InvStack takeDefinedItem(IInventory inventory, int side, ItemStack type, int min, int max)
  {
    inventory = checkChestInv(inventory);

    InvStack ret = new InvStack(inventory);

    if(!(inventory instanceof ISidedInventory))
    {
      for(int i = inventory.getSizeInventory() - 1; i >= 0; i--)
      {
        if(inventory.getStackInSlot(i) != null && StackUtils.equalsWildcard(inventory.getStackInSlot(i), type))
        {
          ItemStack stack = inventory.getStackInSlot(i);
          int current = ret.getStack() != null ? ret.getStack().stackSize : 0;

          if(current+stack.stackSize <= max)
          {
            ret.appendStack(i, stack.copy());
          }
          else {
            ItemStack copy = stack.copy();
            copy.stackSize = max-current;
            ret.appendStack(i, copy);
          }

          if(ret.getStack() != null && ret.getStack().stackSize == max)
          {
            return ret;
          }
        }
      }
    }
    else {
      ISidedInventory sidedInventory = (ISidedInventory)inventory;
      int[] slots = sidedInventory.getAccessibleSlotsFromSide(ForgeDirection.OPPOSITES[side]);

      if(slots != null && slots.length != 0)
      {
        for(int get = slots.length - 1; get >= 0; get--)
        {
          int slotID = slots[get];

          if(sidedInventory.getStackInSlot(slotID) != null && StackUtils.equalsWildcard(inventory.getStackInSlot(slotID), type))
          {
            ItemStack stack = sidedInventory.getStackInSlot(slotID);
            int current = ret.getStack() != null ? ret.getStack().stackSize : 0;

            if(current+stack.stackSize <= max)
            {
              ItemStack copy = stack.copy();

              if(sidedInventory.canExtractItem(slotID, copy, ForgeDirection.OPPOSITES[side]))
              {
                ret.appendStack(slotID, copy);
              }
            }
            else {
              ItemStack copy = stack.copy();

              if(sidedInventory.canExtractItem(slotID, copy, ForgeDirection.OPPOSITES[side]))
              {
                copy.stackSize = max-current;
                ret.appendStack(slotID, copy);
              }
            }

            if(ret.getStack() != null && ret.getStack().stackSize == max)
            {
              return ret;
            }
          }
        }
      }
    }

    if(ret != null && ret.getStack() != null && ret.getStack().stackSize >= min)
    {
      return ret;
    }

    return null;
View Full Code Here

      for(int i = inventory.getSizeInventory() - 1; i >= 0; i--)
      {
        if(inventory.getStackInSlot(i) != null && id.modifies(inventory.getStackInSlot(i)))
        {
          ItemStack toSend = inventory.getStackInSlot(i).copy();
          return new InvStack(inventory, i, toSend);
        }
      }
    }
    else {
      ISidedInventory sidedInventory = (ISidedInventory)inventory;
      int[] slots = sidedInventory.getAccessibleSlotsFromSide(ForgeDirection.OPPOSITES[side]);

      if(slots != null && slots.length != 0)
      {
        for(int get = slots.length - 1; get >= 0; get--)
        {
          int slotID = slots[get];

          if(sidedInventory.getStackInSlot(slotID) != null && id.modifies(sidedInventory.getStackInSlot(slotID)))
          {
            ItemStack toSend = sidedInventory.getStackInSlot(slotID);

            if(sidedInventory.canExtractItem(slotID, toSend, ForgeDirection.OPPOSITES[side]))
            {
              return new InvStack(inventory, slotID, toSend);
            }
          }
        }
      }
    }
View Full Code Here

TOP

Related Classes of mekanism.common.transporter.InvStack

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.