if(worldObj.isAirBlock(x, y, z)) return true;
Block block = worldObj.getBlock(x, y, z);
if(block.getBlocksMovement(worldObj, x, y, z) && (!PneumaticCraftUtils.isBlockLiquid(block) || hasLiquidImmunity)) return true;
if(PneumaticCraftAPIHandler.getInstance().pathfindableBlocks.containsKey(block)) {
IPathfindHandler pathfindHandler = PneumaticCraftAPIHandler.getInstance().pathfindableBlocks.get(block);
return pathfindHandler == null || pathfindHandler.canPathfindThrough(worldObj, x, y, z);
} else {
return false;
}
}