private boolean diffuseSkylightInBlockColumn(Cube cube,MutableBlockPos pos,int minBlockY,int maxBlockY,Int2ObjectMap<FastCubeBlockAccess> blockAccessMap){
  ICubicWorld world=cube.getCubicWorld();
  int cubeMinBlockY=cubeToMinBlock(cube.getY());
  int cubeMaxBlockY=cubeToMaxBlock(cube.getY());
  int maxBlockYInCube=Math.min(cubeMaxBlockY,maxBlockY);
  int minBlockYInCube=Math.max(cubeMinBlockY,minBlockY);
  FastCubeBlockAccess blockAccess=blockAccessMap.get(cube.getY());
  if (blockAccess == null) {
    blockAccess=new FastCubeBlockAccess(this.cache,cube,UPDATE_BUFFER_RADIUS);
    blockAccessMap.put(cube.getY(),blockAccess);
  }
  for (int blockY=maxBlockYInCube; blockY >= minBlockYInCube; --blockY) {
    pos.setY(blockY);
    if (!needsSkylightUpdate(blockAccess,pos)) {
      continue;
    }
    if (!world.checkLightFor(EnumSkyBlock.SKY,pos)) {
      return false;
    }
  }
  return true;
}

private boolean diffuseSkylightInBlockColumn ( Cube cube , MutableBlockPos pos , int minBlockY , int maxBlockY , Int2ObjectMap < FastCubeBlockAccess > blockAccessMap ) { ICubicWorld world = cube . getCubicWorld ( ) ; int cubeMinBlockY = cubeToMinBlock ( cube . getY ( ) ) ; int cubeMaxBlockY = cubeToMaxBlock ( cube . getY ( ) ) ; int maxBlockYInCube = Math . min ( cubeMaxBlockY , maxBlockY ) ; int minBlockYInCube = Math . max ( cubeMinBlockY , minBlockY ) ; FastCubeBlockAccess blockAccess = blockAccessMap . get ( cube . getY ( ) ) ; if ( blockAccess == null ) { blockAccess = new FastCubeBlockAccess ( this . cache , cube , UPDATE_BUFFER_RADIUS ) ; blockAccessMap . put ( cube . getY ( ) , blockAccess ) ; } for ( int blockY = maxBlockYInCube ; blockY >= minBlockYInCube ; -- blockY ) { pos . setY ( blockY ) ; if ( ! needsSkylightUpdate ( blockAccess , pos ) ) { continue ; } if ( ! world . checkLightFor ( EnumSkyBlock . SKY , pos ) ) { return false ; } } return true ; }
diffuses skylight inside of the given cube in the block column specified by the given mutableblockpos . the update is limited vertically by minblocky and maxblocky .
