fCraft.VanillaMapGenState.PlantTrees C# (CSharp) Method

PlantTrees() private method

private PlantTrees ( ) : void
return void
        void PlantTrees() {
            Random treeRand = new Random( random.Next() );
            int maxTrees = genParams.MapWidth*genParams.MapLength/genParams.TreeClusterDensity;
            for( int cluster = 0; cluster < maxTrees; cluster++ ) {
                int clusterX = treeRand.Next( genParams.MapWidth );
                int clusterY = treeRand.Next( genParams.MapLength );
                for( int tree = 0; tree < genParams.TreeChainsPerCluster; tree++ ) {
                    int x = clusterX;
                    int y = clusterY;
                    for( int hop = 0; hop < genParams.TreeHopsPerChain; hop++ ) {
                        x += treeRand.Next( genParams.TreeSpread ) - treeRand.Next( genParams.TreeSpread );
                        y += treeRand.Next( genParams.TreeSpread ) - treeRand.Next( genParams.TreeSpread );
                        if( (x < 0) || (y < 0) || (x >= genParams.MapWidth) || (y >= genParams.MapLength) )
                            continue;
                        if( treeRand.Next( genParams.TreePlantRatio ) != 0 )
                            continue;
                        int z = heightmap[(x + y*genParams.MapWidth)] + 1;
                        GrowTree( treeRand, x, y, z );
                    }
                }
            }
        }