public float CalculateHeightMapAt(float2 pos)
        {
            float rawHeightmap =
                AdjustHeightMapNoiseValue(heightmapNoise.Sample(pos * worldSettings.HeightmapScale));

            //add the raw heightmap to the base ground height
            return(worldSettings.HeightmapYOffset + rawHeightmap);
        }
        private void ComputeTreeMap(int3 dimensions)
        {
            int i = 0;

            for (int z = 0; z < dimensions.z; z++)
            {
                for (int x = 0; x < dimensions.x; x++, i++)
                {
                    var samplePoint = new float2(x + chunkPositionXZ.x, z + chunkPositionXZ.y) * treeSettings.TreemapScale;
                    var sample      = treemapNoise.Sample(samplePoint);

                    noiseMaps.treeMap[i] = sample;
                }
            }
        }
        private void ComputeMoistureMap(int3 dimensions)
        {
            int i = 0;

            for (int z = 0; z < dimensions.z; z++)
            {
                for (int x = 0; x < dimensions.x; x++)
                {
                    noiseMaps.moistureMap[i] = ZeroToOne(
                        moisturemapNoise.Sample(
                            new float2(x + chunkPositionXZ.x, z + chunkPositionXZ.y) * worldSettings.MoistureMapScale)
                        );
                    i++;
                }
            }
        }