fCraft.FloatingIslandMapGenState.ComputeSurfaceCoverage C# (CSharp) Method

ComputeSurfaceCoverage() private method

private ComputeSurfaceCoverage ( Block coverBlock ) : int
coverBlock Block
return int
        int ComputeSurfaceCoverage( Block coverBlock ) {
            int count = 0;
            fixed( byte* blocks = map.Blocks ) {
                int layerSize = map.Width * map.Length;
                for( int x = 0; x < map.Width; x++ ) {
                    for( int y = 0; y < map.Length; y++ ) {
                        int index = map.Index( x, y, map.Height - 1 );
                        for( int z = (map.Height - 1); z >= 0; z-- ) {
                            Block block = (Block)blocks[index];
                            if( block == coverBlock ) {
                                count++;
                                break;
                            } else if( block != Block.Air ) {
                                break;
                            } else {
                                index -= layerSize;
                            }
                        }
                    }
                }
                return count;
            }
        }