@Override public float generateNoise( OpenSimplexNoise simplex, CellNoise cell, int x, int y, float border, float river) { float h = simplex.noise2(x / 100f, y / 100f) * 8; h += simplex.noise2(x / 30f, y / 30f) * 4; h += simplex.noise2(x / 15f, y / 15f) * 2; h += simplex.noise2(x / 7f, y / 7f); return 70f + (20f * river) + h; }
@Override public float generateNoise( OpenSimplexNoise simplex, CellNoise cell, int x, int y, float border, float river) { float st = (simplex.noise2(x / 160f, y / 160f) + 0.38f) * (ConfigRTG.duneHeight + 23f) * river; st = st < 0.2f ? 0.2f : st; float h = simplex.noise2(x / 60f, y / 60f) * st * 2f; h = h > 0f ? -h : h; h += st; h *= h / 50f; h += st; return 70f + h; }
@Override public float generateNoise( OpenSimplexNoise simplex, CellNoise cell, int x, int y, float border, float river) { float h = simplex.noise2(x / 180f, y / 180f) * 40f * river; h *= h / 35f; if (h < 1f) { h = 1f; } if (h < 4f) { h += (simplex.noise2(x / 50f, y / 50f) + simplex.noise2(x / 15f, y / 15f)) * (4f - h); } return 68f + h; }
@Override public float generateNoise( OpenSimplexNoise simplex, CellNoise cell, int x, int y, float ocean, float border, float river) { float h = simplex.noise2(x / vWidth, y / vWidth) * vHeight * river; h += simplex.noise2(x / 20f, y / 20f) * 2; float m = simplex.noise2(x / hWidth, y / hWidth) * hHeight * river; m *= m / 40f; float sm = simplex.noise2(x / 30f, y / 30f) * 8f; sm *= m / 20f > 3.75f ? 3.75f : m / 20f; m += sm; float cm = cell.noise(x / 25D, y / 25D, 1D) * 12f; cm *= m / 20f > 3.75f ? 3.75f : m / 20f; m += cm; float l = simplex.noise2(x / lWidth, y / lWidth) * lHeight; l *= l / 25f; l = l < 8f ? 8f : l; h += simplex.noise2(x / 12f, y / 12f) * 3f; h += simplex.noise2(x / 5f, y / 5f) * 1.5f; return bHeight + h + m - l; }
@Override public float generateNoise( OpenSimplexNoise simplex, CellNoise cell, int x, int y, float border, float river) { float floNoise; float st = (simplex.noise2(x / 160f, y / 160f) + 0.38f) * 10f * river; st = st < 0.2f ? 0.2f : st; float h = simplex.noise2(x / 60f, y / 60f) * st * 2f; h = h > 0f ? -h : h; h += st; h *= h / 80f; h += st; floNoise = 62f + h; // FMLLog.log(Level.INFO, "floNoise = %f", floNoise); return floNoise; }
@Override public float generateNoise( OpenSimplexNoise simplex, CellNoise cell, int x, int y, float border, float river) { float h = simplex.noise2(x / 200f, y / 200f) * 4; h += simplex.noise2(x / 100f, y / 100f) * 2; float m = simplex.noise2(x / 200f, y / 200f) * hillStrength * river; m *= m / ((hillStrength * 0.1f) + hillStrength); float sm = simplex.noise2(x / hillStrength, y / hillStrength) * 8f; sm *= m / 20f > 3.75f ? 3.75f : m / 20f; m += sm; float l = simplex.noise2(x / 260f, y / 260f) * 38f; l *= l / 25f; l = l < -8f ? -8f : l; return baseHeight + h + m - l; }
@Override public void rDecorate( World world, Random rand, int chunkX, int chunkY, OpenSimplexNoise simplex, CellNoise cell, float strength, float river) { RealisticBiomeBase.rDecorateSeedBiome( world, rand, chunkX, chunkY, simplex, cell, strength, river, baseBiome); float l = simplex.noise2(chunkX / 80f, chunkY / 80f) * 60f - 15f; if (rand.nextInt(24) == 0) { int x22 = chunkX + rand.nextInt(16) + 8; int z22 = chunkY + rand.nextInt(16) + 8; int y22 = world.getHeightValue(x22, z22); if (y22 < 100) { if (rand.nextBoolean()) { (new WorldGenLog(logBlock, 1, Blocks.leaves, -1, 2 + rand.nextInt(2))) .generate(world, rand, x22, y22, z22); } else { (new WorldGenLog(Blocks.log, 0, Blocks.leaves, -1, 2 + rand.nextInt(2))) .generate(world, rand, x22, y22, z22); } } } // for (int f23 = 0; f23 < 8f * strength; f23++) // { // int j15 = chunkX + rand.nextInt(16) + 8; // int j17 = rand.nextInt(128); // int j20 = chunkY + rand.nextInt(16) + 8; // (new WorldGenFlowers(new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, // 11})).generate(world, rand, j15, j17, j20); // } // // for (int l14 = 0; l14 < 12f * strength; l14++) // { // int l19 = chunkX + rand.nextInt(16) + 8; // int k22 = rand.nextInt(128); // int j24 = chunkY + rand.nextInt(16) + 8; // (new WorldGenGrass(Blocks.tallgrass, 1)).generate(world, rand, l19, k22, j24); // } }
@Override public void rDecorate( World world, Random rand, int chunkX, int chunkY, OpenSimplexNoise simplex, CellNoise cell, float strength, float river) { /** * Using rDecorateSeedBiome() to partially decorate the biome? If so, then comment out this * method. */ // rOreGenSeedBiome(world, rand, chunkX, chunkY, simplex, cell, strength, river, baseBiome); rDecorateSeedBiome(world, rand, chunkX, chunkY, simplex, cell, strength, river, baseBiome); float l = simplex.noise2(chunkX / 100f, chunkY / 100f) * 6f + 0.8f; if (l > 0f && rand.nextInt(12) == 0) { int x22 = chunkX + rand.nextInt(16) + 8; int z22 = chunkY + rand.nextInt(16) + 8; int y22 = world.getHeightValue(x22, z22); (new WorldGenLog(1, 3 + rand.nextInt(4), false)).generate(world, rand, x22, y22, z22); } for (int b = 0; b < 2f * strength; b++) { int i1 = chunkX + rand.nextInt(16) + 8; int j1 = chunkY + rand.nextInt(16) + 8; int k1 = world.getHeightValue(i1, j1); if (rand.nextInt(8) == 0) { if (rand.nextInt(10) == 0) { (new WorldGenTreeShrub(rand.nextInt(5) + 4, rand.nextInt(2), rand.nextInt(2))) .generate(world, rand, i1, k1, j1); } else { (new WorldGenTreeShrub(rand.nextInt(4) + 1, rand.nextInt(2), rand.nextInt(2))) .generate(world, rand, i1, k1, j1); } } } }
@Override public void rDecorate( World world, Random rand, int chunkX, int chunkY, OpenSimplexNoise simplex, CellNoise cell, float strength, float river) { /** * Using rDecorateSeedBiome() to partially decorate the biome? If so, then comment out this * method. */ // rOreGenSeedBiome(world, rand, chunkX, chunkY, simplex, cell, strength, river, baseBiome); float l = simplex.noise2(chunkX / 100f, chunkY / 100f) * 6f + 0.8f; if (l > 0f && rand.nextInt(6) == 0) { int x22 = chunkX + rand.nextInt(16) + 8; int z22 = chunkY + rand.nextInt(16) + 8; int y22 = world.getHeightValue(x22, z22); Block log; byte logMeta; log = Blocks.log; logMeta = (byte) 0; (new WorldGenLog(log, logMeta, Blocks.leaves, -1, 3 + rand.nextInt(3))) .generate(world, rand, x22, y22, z22); } rDecorateSeedBiome(world, rand, chunkX, chunkY, simplex, cell, strength, river, baseBiome); }
@Override public void paintTerrain( Block[] blocks, byte[] metadata, int i, int j, int x, int y, int depth, World world, Random rand, OpenSimplexNoise simplex, CellNoise cell, float[] noise, float river, BiomeGenBase[] base) { float c = CliffCalculator.calc(x, y, noise); int cliff = 0; boolean gravel = false; Block b; for (int k = 255; k > -1; k--) { b = blocks[(y * 16 + x) * 256 + k]; if (b == Blocks.air) { depth = -1; } else if (b == Blocks.stone) { depth++; if (depth == 0) { if (k < 63) { if (beach) { gravel = true; } } float p = simplex.noise3(i / 8f, j / 8f, k / 8f) * 0.5f; if (c > min && c > sCliff - ((k - sHeight) / sStrength) + p) { cliff = 1; } if (c > cCliff) { cliff = 2; } if (cliff == 1) { blocks[(y * 16 + x) * 256 + k] = rand.nextInt(3) == 0 ? Blocks.cobblestone : Blocks.stone; } else if (cliff == 2) { blocks[(y * 16 + x) * 256 + k] = shadowDesertBlock; metadata[(y * 16 + x) * 256 + k] = shadowDesertByte; } else if (k < 63) { if (beach) { blocks[(y * 16 + x) * 256 + k] = beachBlock; gravel = true; } else if (k < 62) { blocks[(y * 16 + x) * 256 + k] = fillerBlock; } else { blocks[(y * 16 + x) * 256 + k] = topBlock; } } else { blocks[(y * 16 + x) * 256 + k] = topBlock; } } else if (depth < 6) { if (cliff == 1) { blocks[(y * 16 + x) * 256 + k] = Blocks.stone; } else if (cliff == 2) { blocks[(y * 16 + x) * 256 + k] = shadowDesertBlock; metadata[(y * 16 + x) * 256 + k] = shadowDesertByte; } else if (gravel) { blocks[(y * 16 + x) * 256 + k] = beachBlock; } else { blocks[(y * 16 + x) * 256 + k] = fillerBlock; } } } } }
@Override public void paintTerrain( Block[] blocks, byte[] metadata, int i, int j, int x, int y, int depth, World world, Random rand, OpenSimplexNoise simplex, CellNoise cell, float[] noise, float river, BiomeGenBase[] base) { float c = CliffCalculator.calc(x, y, noise); boolean cliff = c > 1.4f ? true : false; boolean mix = false; for (int k = 255; k > -1; k--) { Block b = blocks[(y * 16 + x) * 256 + k]; if (b == Blocks.air) { depth = -1; } else if (b == Blocks.stone) { depth++; if (shouldReplaceStone()) { blocks[(y * 16 + x) * 256 + k] = EBAPI.ebStonify(EnhancedBiomesBlocks.stoneEB, hcStone(world, i, j, x, y, k)); metadata[(y * 16 + x) * 256 + k] = EBAPI.ebStonify(EBAPI.SLATE, hcStoneMeta(world, i, j, x, y, k)); } if (cliff) { if (depth > -1 && depth < 2) { if (rand.nextInt(3) == 0) { blocks[(y * 16 + x) * 256 + k] = blockCliff2; metadata[(y * 16 + x) * 256 + k] = byteCliff2; } else { blocks[(y * 16 + x) * 256 + k] = blockCliff1; metadata[(y * 16 + x) * 256 + k] = byteCliff1; } } else if (depth < 10) { blocks[(y * 16 + x) * 256 + k] = blockCliff1; metadata[(y * 16 + x) * 256 + k] = byteCliff1; } } else { if (depth == 0 && k > 61) { if (simplex.noise2(i / floMixWidth, j / floMixWidth) + simplex.noise2(i / floSmallWidth, j / floSmallWidth) * floSmallStrength > floMixHeight) { blocks[(y * 16 + x) * 256 + k] = blockMixTop; metadata[(y * 16 + x) * 256 + k] = byteMixTop; mix = true; } else { blocks[(y * 16 + x) * 256 + k] = topBlock; metadata[(y * 16 + x) * 256 + k] = topBlockMeta; } } else if (depth < 4) { if (mix) { blocks[(y * 16 + x) * 256 + k] = blockMixFiller; metadata[(y * 16 + x) * 256 + k] = byteMixFiller; } else { blocks[(y * 16 + x) * 256 + k] = fillerBlock; metadata[(y * 16 + x) * 256 + k] = fillerBlockMeta; } } } } } }
@Override public void rDecorate( World world, Random rand, int chunkX, int chunkY, OpenSimplexNoise simplex, CellNoise cell, float strength, float river) { for (int i23 = 0; i23 < 1; i23++) { int i1 = chunkX + rand.nextInt(16) + 8; int j1 = chunkY + rand.nextInt(16) + 8; int k1 = world.getHeightValue(i1, j1); if (k1 < 80) { (new WorldGenBlockBlob(Blocks.cobblestone, 0)).generate(world, rand, i1, k1, j1); } } if (river > 0.7f) { if (river > 0.86f) { for (int b33 = 0; b33 < 10f * strength; b33++) { int j6 = chunkX + rand.nextInt(16) + 8; int k10 = chunkY + rand.nextInt(16) + 8; int z52 = world.getHeightValue(j6, k10); if (z52 < 100f || (z52 < 120f && rand.nextInt(10) == 0)) { WorldGenerator worldgenerator = rand.nextInt(4) != 0 ? new WorldGenShrub(0, 0) : new WorldGenTreeSavanna(1); worldgenerator.setScale(1.0D, 1.0D, 1.0D); worldgenerator.generate(world, rand, j6, z52, k10); } } } for (int k18 = 0; k18 < 12f * strength; k18++) { int k21 = chunkX + rand.nextInt(16) + 8; int j23 = rand.nextInt(160); int k24 = chunkY + rand.nextInt(16) + 8; if (j23 < 120f) { (new WorldGenCacti(false)).generate(world, rand, k21, j23, k24); } } for (int f25 = 0; f25 < 2f * strength; f25++) { int i18 = chunkX + rand.nextInt(16) + 8; int i23 = chunkY + rand.nextInt(16) + 8; (new WorldGenReed()).generate(world, rand, i18, 60 + rand.nextInt(8), i23); } if (rand.nextInt(28) == 0) { int j16 = chunkX + rand.nextInt(16) + 8; int j18 = rand.nextInt(128); int j21 = chunkY + rand.nextInt(16) + 8; (new WorldGenPumpkin()).generate(world, rand, j16, j18, j21); } for (int f23 = 0; f23 < 3; f23++) { int j15 = chunkX + rand.nextInt(16) + 8; int j17 = rand.nextInt(128); int j20 = chunkY + rand.nextInt(16) + 8; (new WorldGenFlowers(new int[] {9, 9, 9, 9, 3, 3, 3, 3, 3, 2, 2, 2, 11, 11, 11})) .generate(world, rand, j15, j17, j20); } for (int l14 = 0; l14 < 15; l14++) { int l19 = chunkX + rand.nextInt(16) + 8; int k22 = rand.nextInt(128); int j24 = chunkY + rand.nextInt(16) + 8; if (rand.nextInt(3) == 0) { (new WorldGenGrass(Blocks.double_plant, 2)).generate(world, rand, l19, k22, j24); } else { (new WorldGenGrass(Blocks.tallgrass, 1)).generate(world, rand, l19, k22, j24); } } } else { int a = 6 - (int) (simplex.noise2(chunkX / 100f, chunkY / 100f) * 10); if (a < 1 || rand.nextInt(a) == 0) { int j6 = chunkX + rand.nextInt(16) + 8; int k10 = chunkY + rand.nextInt(16) + 8; int z52 = world.getHeightValue(j6, k10); if (z52 < 100f || (z52 < 120f && rand.nextInt(10) == 0)) { WorldGenerator worldgenerator = rand.nextInt(14) != 0 ? new WorldGenShrub(0, 0) : new WorldGenTreeSavanna(1); worldgenerator.setScale(1.0D, 1.0D, 1.0D); worldgenerator.generate(world, rand, j6, z52, k10); } } for (int k18 = 0; k18 < 70; k18++) { int k21 = chunkX + rand.nextInt(16) + 8; int j23 = 64 + rand.nextInt(64); int k24 = chunkY + rand.nextInt(16) + 8; if (j23 < 120f) { (new WorldGenCacti(false)).generate(world, rand, k21, j23, k24); } } if (rand.nextInt((int) (3f / strength)) == 0) { int i18 = chunkX + rand.nextInt(16) + 8; int i23 = chunkY + rand.nextInt(16) + 8; (new WorldGenReed()).generate(world, rand, i18, 60 + rand.nextInt(8), i23); } if (rand.nextInt(28) == 0) { int j16 = chunkX + rand.nextInt(16) + 8; int j18 = rand.nextInt(128); int j21 = chunkY + rand.nextInt(16) + 8; (new WorldGenPumpkin()).generate(world, rand, j16, j18, j21); } for (int f23 = 0; f23 < 3; f23++) { int j15 = chunkX + rand.nextInt(16) + 8; int j17 = rand.nextInt(128); int j20 = chunkY + rand.nextInt(16) + 8; (new WorldGenFlowers(new int[] {9, 9, 9, 9, 3, 3, 3, 3, 3, 2, 2, 2, 11, 11, 11})) .generate(world, rand, j15, j17, j20); } for (int l14 = 0; l14 < 15; l14++) { int l19 = chunkX + rand.nextInt(16) + 8; int k22 = rand.nextInt(128); int j24 = chunkY + rand.nextInt(16) + 8; if (rand.nextInt(3) == 0) { (new WorldGenGrass(Blocks.double_plant, 2)).generate(world, rand, l19, k22, j24); } else { (new WorldGenGrass(Blocks.tallgrass, 1)).generate(world, rand, l19, k22, j24); } } } }
@Override public void rDecorate( World world, Random rand, int chunkX, int chunkY, OpenSimplexNoise simplex, CellNoise cell, float strength, float river) { /** * Using rDecorateSeedBiome() to partially decorate the biome? If so, then comment out this * method. */ rOreGenSeedBiome(world, rand, chunkX, chunkY, simplex, cell, strength, river, baseBiome); // boulders for (int l = 0; l < 3f * strength; ++l) { int i1 = chunkX + rand.nextInt(16) + 8; int j1 = chunkY + rand.nextInt(16) + 8; int k1 = world.getHeightValue(i1, j1); if (k1 < 95 && rand.nextInt(16) == 0) { (new WorldGenBlob(Blocks.mossy_cobblestone, 0, rand)).generate(world, rand, i1, k1, j1); } } // trees float l = simplex.noise2(chunkX / 100f, chunkY / 100f) * 6f + 0.8f; for (int b1 = 0; b1 < l * 4f * strength; b1++) { int j6 = chunkX + rand.nextInt(16) + 8; int k10 = chunkY + rand.nextInt(16) + 8; int z52 = world.getHeightValue(j6, k10); if (rand.nextInt(24) == 0) { // WorldGenerator worldgenerator = new WorldGenTreeSpruceSmall(1 + rand.nextInt(2)); WorldGenerator worldgenerator = new WorldGenTreePineEuro(); worldgenerator.setScale(1.0D, 1.0D, 1.0D); worldgenerator.generate(world, rand, j6, z52, k10); } } if (l > 0f && rand.nextInt(6) == 0) { int x22 = chunkX + rand.nextInt(16) + 8; int z22 = chunkY + rand.nextInt(16) + 8; int y22 = world.getHeightValue(x22, z22); (new WorldGenLog(1, 3 + rand.nextInt(4), false)).generate(world, rand, x22, y22, z22); } for (int b = 0; b < 2f * strength; b++) { int i1 = chunkX + rand.nextInt(16) + 8; int j1 = chunkY + rand.nextInt(16) + 8; int k1 = world.getHeightValue(i1, j1); if (rand.nextInt(10) == 0) { (new WorldGenTreeShrub(rand.nextInt(5) + 4, rand.nextInt(2), rand.nextInt(2))) .generate(world, rand, i1, k1, j1); } else { (new WorldGenTreeShrub(rand.nextInt(4) + 1, rand.nextInt(2), rand.nextInt(2))) .generate(world, rand, i1, k1, j1); } } if (rand.nextInt((int) (3f / strength)) == 0) { int k15 = chunkX + rand.nextInt(16) + 8; int k17 = rand.nextInt(64) + 64; int k20 = chunkY + rand.nextInt(16) + 8; if (rand.nextBoolean()) { (new WorldGenFlowers(Blocks.brown_mushroom)).generate(world, rand, k15, k17, k20); } else { (new WorldGenFlowers(Blocks.red_mushroom)).generate(world, rand, k15, k17, k20); } } if (rand.nextInt((int) (20f / strength)) == 0) { int j16 = chunkX + rand.nextInt(16) + 8; int j18 = rand.nextInt(128); int j21 = chunkY + rand.nextInt(16) + 8; (new WorldGenPumpkin()).generate(world, rand, j16, j18, j21); } for (int l14 = 0; l14 < 10f * strength; l14++) { int l19 = chunkX + rand.nextInt(16) + 8; int k22 = rand.nextInt(128); int j24 = chunkY + rand.nextInt(16) + 8; (new WorldGenGrass(Blocks.tallgrass, 1)).generate(world, rand, l19, k22, j24); } }
@Override public void rDecorate( World world, Random rand, int chunkX, int chunkY, OpenSimplexNoise simplex, CellNoise cell, float strength, float river) { /** * Using rDecorateSeedBiome() to partially decorate the biome? If so, then comment out this * method. */ rOreGenSeedBiome(world, rand, chunkX, chunkY, simplex, cell, strength, river, baseBiome); float l = simplex.noise2(chunkX / 80f, chunkY / 80f) * 60f - 15f; for (int b1 = 0; b1 < 2 * strength; b1++) { if (rand.nextInt(2) == 0) { int j6 = chunkX + rand.nextInt(16) + 8; int k10 = chunkY + rand.nextInt(16) + 8; int z52 = world.getHeightValue(j6, k10); if (z52 < 230) { if (rand.nextInt(32) == 0) { WorldGenerator worldgenerator = TreeGen.greatOak(rand); worldgenerator.setScale(1.0D, 1.0D, 1.0D); worldgenerator.generate(world, rand, j6, z52, k10); } else { WorldGenerator worldgenerator = TreeGen.birch(); worldgenerator.setScale(1.0D, 1.0D, 1.0D); worldgenerator.generate(world, rand, j6, z52, k10); } } } } if (l > 5f) { for (int b2 = 0; b2 < 4f * strength; b2++) { int j6 = chunkX + rand.nextInt(16) + 8; int k10 = chunkY + rand.nextInt(16) + 8; int z52 = world.getHeightValue(j6, k10); if (z52 < 220) { WorldGenerator worldgenerator = rand.nextInt(2) == 0 ? TreeGen.birch() : rand.nextInt(10) != 0 ? new WorldGenTrees(false) : new WorldGenForest(false, false); worldgenerator.setScale(1.0D, 1.0D, 1.0D); worldgenerator.generate(world, rand, j6, z52, k10); } } } if (rand.nextInt((int) (32f / strength)) == 0) { int x22 = chunkX + rand.nextInt(16) + 8; int z22 = chunkY + rand.nextInt(16) + 8; int y22 = world.getHeightValue(x22, z22); if (y22 < 100) { if (rand.nextBoolean()) { (new WorldGenLog(Blocks.log, 0, Blocks.leaves, -1, 3 + rand.nextInt(4))) .generate(world, rand, x22, y22, z22); } else { (new WorldGenLog(Blocks.log, 2, Blocks.leaves, -1, 3 + rand.nextInt(4))) .generate(world, rand, x22, y22, z22); } } } for (int f24 = 0; f24 < 3f * strength; f24++) { int i1 = chunkX + rand.nextInt(16) + 8; int j1 = chunkY + rand.nextInt(16) + 8; int k1 = world.getHeightValue(i1, j1); if (k1 < 110) { (new WorldGenTreeShrub(rand.nextInt(4) + 1, 0, rand.nextInt(3))) .generate(world, rand, i1, k1, j1); } } for (int f23 = 0; f23 < 8f * strength; f23++) { int j15 = chunkX + rand.nextInt(16) + 8; int j17 = rand.nextInt(128); int j20 = chunkY + rand.nextInt(16) + 8; (new WorldGenFlowers(new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11})) .generate(world, rand, j15, j17, j20); } for (int l14 = 0; l14 < 12f * strength; l14++) { int l19 = chunkX + rand.nextInt(16) + 8; int k22 = rand.nextInt(128); int j24 = chunkY + rand.nextInt(16) + 8; (new WorldGenGrass(Blocks.tallgrass, 1)).generate(world, rand, l19, k22, j24); } }
@Override public void rDecorate( World world, Random rand, int chunkX, int chunkY, OpenSimplexNoise simplex, CellNoise cell, float strength, float river) { /** * Using rDecorateSeedBiome() to partially decorate the biome? If so, then comment out this * method. */ rOreGenSeedBiome(world, rand, chunkX, chunkY, simplex, cell, strength, river, baseBiome); for (int l = 0; l < 6f * strength; ++l) { int i1 = chunkX + rand.nextInt(16) + 8; int j1 = chunkY + rand.nextInt(16) + 8; int k1 = world.getHeightValue(i1, j1); if (k1 < 95 && rand.nextInt(16) == 0) { (new WorldGenBlob(Blocks.cobblestone, 0, rand)).generate(world, rand, i1, k1, j1); } } float l = simplex.noise2(chunkX / 100f, chunkY / 100f) * 12f + 4f; for (int b1 = 0; b1 < l * strength; b1++) { int j6 = chunkX + rand.nextInt(16) + 8; int k10 = chunkY + rand.nextInt(16) + 8; int z52 = world.getHeightValue(j6, k10); if (z52 < 90) { WorldGenerator worldgenerator = rand.nextInt(8) != 0 ? new WorldGenTreePine(4, rand.nextInt(4) == 0 ? 1 : 0) : rand.nextInt(3) != 0 ? new WorldGenTreePineSmall(3 + rand.nextInt(6), 6 + rand.nextInt(8), 0) : new WorldGenIceSpike(); worldgenerator.setScale(1.0D, 1.0D, 1.0D); worldgenerator.generate(world, rand, j6, z52, k10); } else if (z52 < 120) { WorldGenerator worldgenerator = rand.nextInt(4) != 0 ? new WorldGenTreePineSmall( 1 + rand.nextInt(3), 3 + rand.nextInt(5), rand.nextInt(2)) : new WorldGenIceSpike(); worldgenerator.setScale(1.0D, 1.0D, 1.0D); worldgenerator.generate(world, rand, j6, z52, k10); } } if (rand.nextInt((int) (12f / strength)) == 0) { int x22 = chunkX + rand.nextInt(16) + 8; int z22 = chunkY + rand.nextInt(16) + 8; int y22 = world.getHeightValue(x22, z22); if (y22 < 100) { (new WorldGenLog(1, 3 + rand.nextInt(4), false)).generate(world, rand, x22, y22, z22); } } }
@Override public void rDecorate( World world, Random rand, int chunkX, int chunkY, OpenSimplexNoise simplex, CellNoise cell, float strength, float river) { /** * Using rDecorateSeedBiome() to partially decorate the biome? If so, then comment out this * method. */ // rOreGenSeedBiome(world, rand, chunkX, chunkY, simplex, cell, strength, river, baseBiome); float l = simplex.noise2(chunkX / 80f, chunkY / 80f) * 60f - 15f; // float l = simplex.noise3(chunkX / 80f, chunkY / 80f, simplex.noise2(chunkX / 60f, chunkY / // 60f)) * 60f - 15f; for (int l1 = 0; l1 < 2f * strength; ++l1) { int i1 = chunkX + rand.nextInt(16) + 8; int j1 = chunkY + rand.nextInt(16) + 8; int k1 = world.getHeightValue(i1, j1); if (k1 < 80 && rand.nextInt(20) == 0) { if (rand.nextInt(8) != 0) { (new WorldGenBlob(Blocks.mossy_cobblestone, 0, rand)).generate(world, rand, i1, k1, j1); } else { (new WorldGenBlob(Blocks.web, 0, rand)).generate(world, rand, i1, k1, j1); } } } if (l > 0f) { for (int b2 = 0; b2 < 24f * strength; b2++) { int j6 = chunkX + rand.nextInt(16) + 8; int k10 = chunkY + rand.nextInt(16) + 8; int z52 = world.getHeightValue(j6, k10); if (z52 < 120) { WorldGenerator worldgenerator = new WorldGenTreeMangrove( Blocks.log2, 1, Blocks.leaves2, 1, 9 + rand.nextInt(5), 3 + rand.nextInt(2), 13f, 3, 0.32f, 0.1f); worldgenerator.setScale(1.0D, 1.0D, 1.0D); worldgenerator.generate(world, rand, j6, z52, k10); } } } if (rand.nextInt((int) (10f / strength)) == 0) { int x22 = chunkX + rand.nextInt(16) + 8; int z22 = chunkY + rand.nextInt(16) + 8; int y22 = world.getHeightValue(x22, z22); if (y22 < 100) { (new WorldGenLog(Blocks.log2, 1, Blocks.leaves2, -1, 9 + rand.nextInt(5))) .generate(world, rand, x22, y22, z22); } } for (int f24 = 0; f24 < strength; f24++) { int i1 = chunkX + rand.nextInt(16) + 8; int j1 = chunkY + rand.nextInt(16) + 8; int k1 = world.getHeightValue(i1, j1); if (k1 < 110) { (new WorldGenTreeShrub(rand.nextInt(4) + 1, 0, rand.nextInt(3))) .generate(world, rand, i1, k1, j1); } } if (TerrainGen.decorate(world, rand, chunkX, chunkY, GRASS)) { for (int l14 = 0; l14 < 10f * strength; l14++) { int l19 = chunkX + rand.nextInt(16) + 8; int k22 = rand.nextInt(128); int j24 = chunkY + rand.nextInt(16) + 8; int grassMeta; if (rand.nextInt(16) == 0) { grassMeta = 0; } else { grassMeta = 1; } (new WorldGenGrass(Blocks.tallgrass, grassMeta)).generate(world, rand, l19, k22, j24); } for (int l14 = 0; l14 < 8f * strength; l14++) { int l19 = chunkX + rand.nextInt(16) + 8; int k22 = rand.nextInt(128); int j24 = chunkY + rand.nextInt(16) + 8; if (rand.nextInt(6) == 0) { (new WorldGenGrass(Blocks.double_plant, RandomUtil.getRandomInt(rand, 2, 3))) .generate(world, rand, l19, k22, j24); } } for (int l14 = 0; l14 < 4f * strength; l14++) { int l19 = chunkX + rand.nextInt(16) + 8; int k22 = rand.nextInt(128); int j24 = chunkY + rand.nextInt(16) + 8; int grassMeta; if (rand.nextInt(16) == 0) { grassMeta = 0; } else { grassMeta = RandomUtil.getRandomInt(rand, 1, 2); } (new WorldGenGrass(Blocks.tallgrass, grassMeta)).generate(world, rand, l19, k22, j24); } } rDecorateSeedBiome(world, rand, chunkX, chunkY, simplex, cell, strength, river, baseBiome); int k15 = chunkX + rand.nextInt(16) + 8; int k20 = chunkY + rand.nextInt(16) + 8; int k17 = world.getHeightValue(k15, k20); if (rand.nextBoolean()) { (new WorldGenFlowers(Blocks.brown_mushroom)).generate(world, rand, k15, k17, k20); } else { (new WorldGenFlowers(Blocks.red_mushroom)).generate(world, rand, k15, k17, k20); } }