示例#1
0
 public static void transferItem(
     TileEntityItemStorableMachineBase inventory, int start, int end, int requireEnergy) {
   for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
     if (inventory.getStored() < requireEnergy) {
       break;
     }
     TileEntity tileEntity =
         inventory.worldObj.getBlockTileEntity(
             inventory.xCoord + dir.offsetX,
             inventory.yCoord + dir.offsetY,
             inventory.zCoord + dir.offsetZ);
     if (tileEntity != null && tileEntity instanceof IInventory) {
       for (int i = start; i < end; i++) {
         ItemStack target = inventory.getStackInSlot(i);
         if (target != null) {
           ItemStack result = Util.insertItem((IInventory) tileEntity, target, false);
           inventory.setInventorySlotContents(i, result);
           if (result == null || target.stackSize != result.stackSize) {
             inventory.useEnergy(requireEnergy);
           }
         }
       }
     }
   }
 }