示例#1
0
        private static void CreateContinentsWithNoise(PolygonMapGenerator PMG)
        {
            ContinentNoise noise = new ContinentNoise((1f / PMG.GenerationSettings.ContinentSizeScaleFactor) * (100f / PMG.GenerationSettings.Area));

            foreach (GraphPolygon polygon in PMG.Polygons.Where(x => (!x.IsEdgePolygon && !x.AdjacentPolygons.Any(y => y.IsEdgePolygon))))
            {
                float noiseValue = noise.GetValue(polygon.CenterPoi.x, polygon.CenterPoi.y, PMG.GenerationSettings);
                if (noiseValue < 0.2f)
                {
                    TurnPolygonToWater(polygon);
                }
            }
        }
示例#2
0
    private static void GenerateContinents()
    {
        ContinentNoise noise = new ContinentNoise();

        foreach (TileData td in MapData.Tiles)
        {
            float noiseValue = noise.GetValue(td.Position.x, td.Position.z, MapData);
            if (noiseValue == 0)
            {
                td.Type = TileType.Water;
            }
            else
            {
                td.Type = TileType.Land;
            }
        }

        if (Visualize)
        {
            NoiseTester.DisplayNoise(noise, NoiseTester.ContinentPlane, MapData);
        }
    }