예제 #1
0
    public combinedHeightHeat(IMap heightMap, IMap heatMap, worldChunkSettings chunkSettings)
    {
        Const  black        = new Const(-1);
        Select heightselect = new Select(heightMap.GetCache(), black, heightMap.GetCache());

        heightselect.SetBounds(.5, 1, .2);
        this.combo = new Add(heatMap.GetCache(), heightselect);
        //Invert invert = new Invert(combo);

        Noise2D final = new Noise2D(chunkSettings.mapWidth, chunkSettings.mapHeight, combo);

        final.GeneratePlanar(chunkSettings.left, chunkSettings.right, chunkSettings.top, chunkSettings.bottom, isSeamless: true);
        combinedCache = new Cache(combo);
        noiseData     = final.GetData();
    }
예제 #2
0
    private void fill(worldChunkSettings chunkSettings, heightMapSettings settings)

    {
        RidgedMultifractal baseMap = new RidgedMultifractal();

        baseMap.OctaveCount = settings.Octaves;
        baseMap.Frequency   = settings.Frequency;
        baseMap.Lacunarity  = settings.Lacunarity;
        baseMap.Seed        = settings.Seed;

        Perlin layer2 = new Perlin();

        layer2.OctaveCount = settings.Octaves;
        layer2.Frequency   = settings.Frequency;
        layer2.Lacunarity  = settings.Lacunarity;
        layer2.Seed        = settings.Seed;
        Billow controller = new Billow();

        controller.Frequency = settings.Frequency;
        Blend  blend    = new Blend(baseMap, layer2, controller);
        Invert invert   = new Invert(blend);         //makes heightmap more island like
        Clamp  oceanfix = new Clamp(-.7, 1, invert); //prevent ocean floor from being to low

        //Const black = new Const(-1);
        // holes in surface at top of mountains
        //Select holes = new Select(oceanfix, black, oceanfix);
        //holes.SetBounds(.85, 1, .01); //get highest elevation with little falloff
        this.heightCache = new Cache(oceanfix);

        var final = new Noise2D(chunkSettings.mapHeight, chunkSettings.mapWidth, oceanfix);

        //turbulance = new Turbulence(12, baseMap);
        final.GeneratePlanar(chunkSettings.left, chunkSettings.right, chunkSettings.top, chunkSettings.bottom, isSeamless: true);
        //final.GenerateSpherical(1, 3,1, 3);

        /*
         * for (int x=0; x<mapWidth; x++)
         * {
         *  for (int y=0;y<mapHeight;y++)
         *  {
         *      noiseData[x,y] = (float)(baseMap.GetValue(x,0,y));
         *  }
         * }
         */
        noiseData = final.GetData();
    }
예제 #3
0
    private void fill(worldChunkSettings chunkSettings, moistureMapSettings settings, IMap heightmap)

    {
        RidgedMultifractal baseMap = new RidgedMultifractal();

        baseMap.OctaveCount = settings.Octaves;
        baseMap.Frequency   = settings.Frequency;
        baseMap.Lacunarity  = settings.Lacunarity;
        baseMap.Seed        = settings.Seed;
        Turbulence distortion       = new Turbulence(.2, baseMap);
        Add        adjustedMoisture = new Add(distortion, heightmap.GetCache());

        this.moistureCache = new Cache(adjustedMoisture);
        Noise2D final = new Noise2D(chunkSettings.mapHeight, chunkSettings.mapWidth, adjustedMoisture);

        final.GeneratePlanar(chunkSettings.left, chunkSettings.right, chunkSettings.top, chunkSettings.bottom, isSeamless: true);
        noiseData = final.GetData();
    }
예제 #4
0
    private void fill(worldChunkSettings chunkSettings)

    {
        var          min        = chunkSettings.top;
        var          max        = chunkSettings.bottom;
        gradientHack baseMap    = new gradientHack(min, max);
        Turbulence   distortion = new Turbulence(.05, baseMap);

        //Curve lower = new Curve(distortion);
        //lower.Add(-.6, -.8);
        //lower.Add(-.2, -.6);
        //lower.Add(0.0, .2);
        this.heatCache = new Cache(distortion);

        Noise2D final = new Noise2D(chunkSettings.mapHeight, chunkSettings.mapWidth, distortion);

        final.GeneratePlanar(chunkSettings.left, chunkSettings.right, chunkSettings.top, chunkSettings.bottom, isSeamless: true);
        noiseData = final.GetData();
    }
예제 #5
0
    public heatMap(worldChunkSettings chunkSettings)

    {
        fill(chunkSettings);
    }
예제 #6
0
    public heightMap(worldChunkSettings chunkSettings, heightMapSettings settings)

    {
        fill(chunkSettings, settings);
    }
예제 #7
0
    public moistureMap(worldChunkSettings chunkSettings, moistureMapSettings settings, IMap heightmap)

    {
        fill(chunkSettings, settings, heightmap);
    }