Buggy code:
} } } } } if ( ( ( inventory [ 1 ] ) != null ) && ( ( leftTank . getStored ( ) ) > 0 ) ) { leftTank . draw ( GasTransmission . addGas ( inventory [ 1 ] , leftTank . getGas ( ) ) , true ) ; MekanismUtils . saveChunk ( this ) ; } if ( ( ( inventory [ 2 ] ) != null ) && ( ( rightTank . getStored ( ) ) > 0 ) ) { rightTank . draw ( GasTransmission . addGas ( inventory [ 2 ] , rightTank . getGas ( ) ) , true ) ; MekanismUtils . saveChunk ( this ) ; } SeparatorRecipe recipe = getRecipe ( ) ; if ( ( canOperate ( recipe ) ) && ( ( getEnergy ( ) ) >= ( energyPerTick ) ) ) { boolean update = ( BASE_ENERGY_USAGE ) != ( recipe . energyUsage ) ; BASE_ENERGY_USAGE = recipe . energyUsage ; if ( update ) { recalculateUpgradables ( ENERGY ) ; } setActive ( true ) ; int operations = operate ( recipe ) ; double prev = getEnergy ( ) ; setEnergy ( ( ( getEnergy ( ) ) - ( ( energyPerTick ) * operations ) ) ) ; clientEnergyUsed = prev - ( getEnergy ( ) ) ; } else { setActive ( false ) ; } int dumpAmount = 8 * ( ( int ) ( Math . pow ( 2 , upgradeComponent . getUpgrades ( SPEED ) ) ) ) ; if ( ( leftTank . getGas ( ) ) != null ) { if ( ( dumpLeft ) != ( GasMode . DUMPING ) ) { GasStack toSend = new GasStack ( leftTank . getGas ( ) . getGas ( ) , Math . min ( leftTank . getStored ( ) , output ) ) ; TileEntity tileEntity = Coord4D . get ( this ) . getFromSide ( MekanismUtils . getLeft ( facing ) ) . getTileEntity ( worldObj ) ; if ( tileEntity instanceof IGasHandler ) { if ( ( ( IGasHandler ) ( tileEntity ) ) . canReceiveGas ( MekanismUtils . getLeft ( facing ) . getOpposite ( ) , leftTank . getGas ( ) . getGas ( ) ) ) { leftTank . draw ( ( ( IGasHandler ) ( tileEntity ) ) . receiveGas ( MekanismUtils . getLeft ( facing ) . getOpposite ( ) , toSend , true ) , true ) ; } } } else if ( ( dumpLeft ) == ( GasMode . DUMPING ) ) { leftTank . draw ( dumpAmount , true ) ; if ( ( rand . nextInt ( 3 ) ) == 2 ) { packetHandler . sendToReceivers ( new mekanism . common . network . PacketTileEntity . TileEntityMessage ( Coord4D . get ( this ) , getParticlePacket ( 0 , new ArrayList ( ) ) ) , new mekanism . api . Range4D ( Coord4D . get ( this ) ) ) ; } } <START_BUG> if ( ( ( dumpRight ) == ( GasMode . DUMPING_EXCESS ) ) && ( ( leftTank . getNeeded ( ) ) < ( output ) ) ) { <END_BUG> leftTank . draw ( ( ( output ) - ( leftTank . getNeeded ( ) ) ) , true ) ; if ( ( rand . nextInt ( 3 ) ) == 2 ) { packetHandler . sendToReceivers ( new mekanism . common . network . PacketTileEntity . TileEntityMessage ( Coord4D . get ( this ) , getParticlePacket ( 0 , new ArrayList ( ) ) ) , new mekanism . api . Range4D ( Coord4D . get ( this ) ) ) ; } } } if ( ( rightTank . getGas ( ) ) != null ) { if ( ( dumpRight ) != ( GasMode . DUMPING ) ) { GasStack toSend = new GasStack ( rightTank . getGas ( ) . getGas ( ) , Math . min ( rightTank . getStored ( ) , output ) ) ; TileEntity tileEntity = Coord4D . get ( this ) . getFromSide ( MekanismUtils . getRight ( facing ) ) . getTileEntity ( worldObj ) ; if ( tileEntity instanceof IGasHandler ) { if ( ( ( IGasHandler ) ( tileEntity ) ) . canReceiveGas ( MekanismUtils . getRight ( facing ) . getOpposite ( ) , rightTank . getGas ( ) . getGas ( ) ) ) { rightTank . draw ( ( ( IGasHandler ) ( tileEntity ) ) . receiveGas ( MekanismUtils . getRight ( facing ) . getOpposite ( ) , toSend , true ) , true ) ; } } } else if ( ( dumpRight ) == ( GasMode . DUMPING ) ) { rightTank . draw ( dumpAmount , true ) ; if ( ( rand . nextInt ( 3 ) ) == 2 ) { packetHandler . sendToReceivers ( new mekanism . common . network . PacketTileEntity . TileEntityMessage ( Coord4D . get ( this ) , getParticlePacket ( 1 , new ArrayList ( ) ) ) , new mekanism . api . Range4D ( Coord4D . get ( this ) ) ) ; } } if ( ( ( dumpRight ) == ( GasMode . DUMPING_EXCESS ) ) && ( ( rightTank . getNeeded ( ) ) < ( output ) ) ) { rightTank . draw ( ( ( output ) - ( rightTank . getNeeded ( ) ) ) , true ) ; if ( ( rand . nextInt ( 3 ) ) == 2 ) { packetHandler . sendToReceivers ( new mekanism . common . network . PacketTileEntity . TileEntityMessage ( Coord4D . get ( this ) , getParticlePacket ( 1 , new ArrayList ( ) ) ) , new mekanism . api . Range4D ( Coord4D . get ( this ) ) ) ; }

Fix:
if ( ( ( dumpLeft ) == ( GasMode . DUMPING_EXCESS ) ) && ( ( leftTank . getNeeded ( ) ) < ( output ) ) ) {