public GenLayerRiverMix stackedContinents(ClimateControlSettings settings, long worldSeed)
    {
        GenLayer emptyOcean = new GenLayerConstant(0);
        GenLayer genlayerisland = new GenLayerOceanicIslands(1L, emptyOcean, settings.largeContinentFrequency.value());
        GenLayerFuzzyZoom genlayerfuzzyzoom = new GenLayerFuzzyZoom(2000L, genlayerisland);
        GenLayer genlayeraddisland = new GenLayerAddLand(1L, genlayerfuzzyzoom);
        GenLayer smallContinents = new GenLayerOceanicIslands(2L, genlayeraddisland, settings.mediumContinentFrequency.value());
        genlayeraddisland = new GenLayerAddLand(1L, smallContinents);
        GenLayerZoom genlayerzoom = new GenLayerFuzzyZoom(2001L, genlayeraddisland);
        genlayeraddisland = new GenLayerAddLand(2L, smallContinents);
        smallContinents = new GenLayerOceanicIslands(2L, genlayerzoom, settings.smallContinentFrequency.value());
        genlayeraddisland = new GenLayerAddLand(2L, smallContinents);
        if (settings.doFull())
        {
            genlayeraddisland = new GenLayerDefineClimate(2L, genlayeraddisland, 2, 1, 1, 2);
        }
        genlayeraddisland = new GenLayerAddLand(50L, genlayeraddisland);
        genlayeraddisland = new GenLayerAdjustIsland(70L, new GenLayerSmooth(1001L, genlayeraddisland), 1, 5, 6);
        genlayeraddisland = new GenLayerZoom(2002L, genlayeraddisland);
        // genlayeraddisland = new GenLayerAddIsland(90L, new GenLayerSmooth(1002L,genlayeraddisland));
        if (settings.doFull())
        {
            // climates are already defined so the island creator has to use a climate definer;
            genlayeraddisland = new GenLayerOceanicIslands(2L, genlayeraddisland, settings.largeIslandFrequency.value(), this.islandClimates());
        }
        else
        {
            genlayeraddisland = new GenLayerOceanicIslands(2L, genlayeraddisland, settings.largeIslandFrequency.value());
        }
        genlayeraddisland = new GenLayerAddLand(3L, genlayeraddisland);
        if (settings.doHalf())
        {
            genlayeraddisland = new GenLayerDefineClimate(2L, genlayeraddisland, settings);
        }
        genlayeraddisland = new GenLayerAdjustIsland(4L, genlayeraddisland, 1, 5, 6);
        genlayeraddisland = new GenLayerClimateSmooth(4L, genlayeraddisland);
        genlayeraddisland = new GenLayerZoom(2003L, genlayeraddisland);
        if (settings.quarterSize.value())
        {
            genlayeraddisland = new GenLayerDefineClimate(2L, genlayeraddisland, settings);
        }
        genlayeraddisland = new GenLayerAddLand(3L, genlayeraddisland);
        genlayeraddisland = new GenLayerAdjustIsland(4L, genlayeraddisland, 1, 5, 6);
        genlayeraddisland = new GenLayerClimateSmooth(4L, genlayeraddisland);
        genlayeraddisland = new GenLayerCache(new GenLayerTemperClimate(0L, genlayeraddisland));
        GenLayerEdge genlayeredge = new GenLayerEdge(2L, genlayeraddisland, GenLayerEdge.Mode.COOL_WARM);
        genlayeredge = new GenLayerEdge(2L, genlayeredge, GenLayerEdge.Mode.HEAT_ICE);
        genlayeredge = new GenLayerEdge(3L, genlayeredge, GenLayerEdge.Mode.SPECIAL);
        GenLayer genlayerdeepocean = new GenLayerContinentalShelf(4L, genlayeredge);
        GenLayer genlayeraddmushroomisland = new GenLayerOceanicMushroomIsland(5L, genlayerdeepocean, settings.biomeIncidences.mushroomIsland);
        GenLayer genlayer3 = GenLayerZoom.magnify(1000L, new GenLayerClimateSmooth(3000L, genlayeraddmushroomisland), 0);
        byte b0 = 4;

        if (settings.biomeSize.value() != null);
        {
            b0 = (byte)settings.biomeSize.value().intValue();
        }

        // genlayer3 = new GenLayerClimateSmooth(3002L,genlayerdeepocean);
        GenLayer genlayer = GenLayerZoom.magnify(1000L, genlayer3, 0);
        GenLayer flatBiomes = new GenLayerRecentBiome(worldSeed, genlayer3);
        flatBiomes = new GenLayerZoom(1000L, flatBiomes);
        flatBiomes = new GenLayerZoom(1000L, flatBiomes);
        flatBiomes = new GenLayerZoom(1000L, flatBiomes);
        flatBiomes = new GenLayerZoom(1000L, flatBiomes);
        flatBiomes = new GenLayerZoom(1000L, flatBiomes);
        flatBiomes = new GenLayerZoom(1000L, flatBiomes);
        GenLayerRiverInit genlayerriverinit = new GenLayerRiverInit(100L, genlayer);

        GenLayer genlayer1 = GenLayerZoom.magnify(1000L, genlayerriverinit, 2);
        GenLayer genlayerhills = new GenLayerHills(1000L, flatBiomes, genlayer1);
        genlayer = GenLayerZoom.magnify(1000L, genlayerriverinit, 2);
        genlayer = GenLayerZoom.magnify(1000L, genlayer, b0);
        GenLayerRiver genlayerriver = new GenLayerRiver(1L, genlayer);
        GenLayerClimateSmooth genlayersmooth = new GenLayerClimateSmooth(1000L, genlayerriver);
        GenLayer forRareBiomes = new GenLayerRareBiome(1001L, genlayerhills);

        for (int j = 0; j < b0; ++j)
        {
            forRareBiomes = new GenLayerZoom(1000 + j, forRareBiomes);

            if (j == 0)
            {
                forRareBiomes = new GenLayerAddIsland(3L, forRareBiomes);
            }

            if (j == 1)
            {
                forRareBiomes = new GenLayerShore(1000L, forRareBiomes);
            }
        }

        GenLayerSmooth genlayersmooth1 = new GenLayerSmooth(1000L, forRareBiomes);
        GenLayerRiverMix genlayerrivermix = new GenLayerRiverMix(100L, genlayersmooth1, genlayersmooth);
        // GenLayerRiverMix genlayerrivermix = new GenLayerRiverMix(100L, forRareBiomes, genlayerriver);
        GenLayerVoronoiZoom genlayervoronoizoom = new GenLayerVoronoiZoom(10L, genlayerrivermix);
        genlayerrivermix.initWorldGenSeed(worldSeed);
        genlayervoronoizoom.initWorldGenSeed(worldSeed);
        return traditionalExpansion(worldSeed, genlayer3, settings);
    }