@Override public FluidTankInfo[] getTankInfo(ForgeDirection direction) { FluidTank compositeTank = new FluidTank(tank.getCapacity()); TileTank tile = getBottomTank(); int capacity = tank.getCapacity(); if (tile != null && tile.tank.getFluid() != null) { compositeTank.setFluid(tile.tank.getFluid().copy()); } else { return new FluidTankInfo[] {compositeTank.getInfo()}; } tile = getTankAbove(tile); while (tile != null) { FluidStack liquid = tile.tank.getFluid(); if (liquid == null || liquid.amount == 0) { // NOOP } else if (!compositeTank.getFluid().isFluidEqual(liquid)) { break; } else { compositeTank.getFluid().amount += liquid.amount; } capacity += tile.tank.getCapacity(); tile = getTankAbove(tile); } compositeTank.setCapacity(capacity); return new FluidTankInfo[] {compositeTank.getInfo()}; }