Search in sources :

Example 1 with WorldGenBamboo

use of net.tropicraft.core.common.worldgen.WorldGenBamboo in project Tropicraft by Tropicraft.

the class BiomeDecoratorTropics method genDecorations.

@Override
public void genDecorations(Biome biome, World world, Random rand) {
    super.genDecorations(biome, world, rand);
    int i = 0;
    int k = 0;
    if (BiomeTropicraft.DISABLEDECORATION) {
        System.out.println("decoration disabled via BiomeGenTropics.DISABLEDECORATION, " + this);
        return;
    }
    if (GenRates.BAMBOO_CHANCE != 0 && rand.nextInt(GenRates.BAMBOO_CHANCE) == 0) {
        i = chunkPos.getX();
        k = chunkPos.getZ();
        new WorldGenBamboo(world, rand).generate(new BlockPos(i, getTerrainHeightAt(world, i, k), k));
    }
    if (GenRates.NORMAL_PALM_CHANCE != 0 && rand.nextInt(GenRates.NORMAL_PALM_CHANCE) == 0) {
        i = chunkPos.getX() + 13 + rand.nextInt(5);
        k = chunkPos.getZ() + 13 + rand.nextInt(5);
        new WorldGenNormalPalms(world, rand).generate(new BlockPos(i, this.getTerrainHeightAt(world, i, k), k));
    }
    if (GenRates.CURVED_PALM_CHANCE != 0 && rand.nextInt(GenRates.CURVED_PALM_CHANCE) == 0) {
        i = chunkPos.getX() + 13 + rand.nextInt(5);
        k = chunkPos.getZ() + 13 + rand.nextInt(5);
        new WorldGenCurvedPalms(world, rand).generate(new BlockPos(i, this.getTerrainHeightAt(world, i, k), k));
    }
    if (GenRates.EIH_CHANCE != 0 && rand.nextInt(GenRates.EIH_CHANCE) == 0) {
        i = randDecorationCoord(rand, chunkPos.getX(), 16);
        k = randDecorationCoord(rand, chunkPos.getZ(), 16);
        new WorldGenEIH(world, rand).generate(new BlockPos(i, getTerrainHeightAt(world, i, k), k));
    }
    i = randDecorationCoord(rand, chunkPos.getX(), 16);
    k = randDecorationCoord(rand, chunkPos.getZ(), 16);
    new WorldGenTropicalFlowers(world, rand, BlockRegistry.flowers).generate(new BlockPos(i, getTerrainHeightAt(world, i, k), k));
    if (GenRates.LARGE_PALM_CHANCE != 0 && rand.nextInt(GenRates.LARGE_PALM_CHANCE) == 0) {
        // Center in chunk to avoid CCG
        i = chunkPos.getX() + 16;
        k = chunkPos.getZ() + 16;
        new WorldGenLargePalmTrees(world, rand).generate(world, rand, new BlockPos(i, this.getTerrainHeightAt(world, i, k), k));
    }
    if (GenRates.FRUIT_TREE_CHANCE != 0 && rand.nextInt(GenRates.FRUIT_TREE_CHANCE) == 0) {
        int treeType = new Random((long) (chunkPos.getX() >> 2) << 32 | (long) (chunkPos.getZ() >> 2)).nextInt(4);
        i = randDecorationCoord(rand, chunkPos.getX(), 16);
        k = randDecorationCoord(rand, chunkPos.getZ(), 16);
        new WorldGenFruitTrees(world, rand, treeType).generate(new BlockPos(i, getTerrainHeightAt(world, i, k), k));
    }
    if (GenRates.TALL_GRASS_CHANCE != 0 && rand.nextInt(GenRates.TALL_GRASS_CHANCE) == 0) {
        for (int a = 0; a < 10; a++) {
            int xRand = rand.nextInt(16) + 8;
            int zRand = rand.nextInt(16) + 8;
            int yRand = world.getHeight(this.chunkPos.add(xRand, 0, zRand)).getY() * 2;
            if (yRand > 0) {
                int rando = rand.nextInt(yRand);
                biome.getRandomWorldGenForGrass(rand).generate(world, rand, this.chunkPos.add(xRand, rando, zRand));
            }
        }
    }
    // Pineapples
    if (GenRates.TALL_FLOWERS_CHANCE != 0 && rand.nextInt(GenRates.TALL_FLOWERS_CHANCE) == 0) {
        i = chunkPos.getX();
        int y = getTerrainHeightAt(world, i, k);
        k = chunkPos.getZ();
        BlockPos pos = new BlockPos(i, y, k);
        (new WorldGenTallFlower(world, rand, BlockRegistry.pineapple.getDefaultState())).generate(pos);
    }
    // Irises
    if (GenRates.TALL_FLOWERS_CHANCE != 0 && rand.nextInt(GenRates.TALL_FLOWERS_CHANCE) == 0) {
        i = chunkPos.getX();
        int y = getTerrainHeightAt(world, i, k);
        k = chunkPos.getZ();
        BlockPos pos = new BlockPos(i, y, k);
        (new WorldGenTallFlower(world, rand, BlockRegistry.iris.getDefaultState())).generate(pos);
    }
    // Vanilla Logic
    for (int k4 = 0; k4 < reedsPerChunk; ++k4) {
        int i9 = rand.nextInt(16) + 8;
        int l12 = rand.nextInt(16) + 8;
        int i16 = world.getHeight(this.chunkPos.add(i9, 0, l12)).getY() * 2;
        if (i16 > 0) {
            int l18 = rand.nextInt(i16);
            this.reedGen.generate(world, rand, this.chunkPos.add(i9, l18, l12));
        }
    }
    BiomeDecoratorTropicsBeach.decorateForVillage(world, rand, chunkPos);
// 
// for(int a = 0; a < ConfigGenRates.WATERFALL_AMOUNT; a++) {
// new WorldGenWaterfall(world, rand).generate(randDecorationCoord(rand, x, 16), WorldProviderTropicraft.MID_HEIGHT + rand.nextInt(WorldProviderTropicraft.INTER_HEIGHT), randDecorationCoord(rand, z, 16));
// }
}
Also used : WorldGenLargePalmTrees(net.tropicraft.core.common.worldgen.WorldGenLargePalmTrees) WorldGenTallFlower(net.tropicraft.core.common.worldgen.WorldGenTallFlower) WorldGenEIH(net.tropicraft.core.common.worldgen.WorldGenEIH) Random(java.util.Random) WorldGenTropicalFlowers(net.tropicraft.core.common.worldgen.WorldGenTropicalFlowers) BlockPos(net.minecraft.util.math.BlockPos) WorldGenCurvedPalms(net.tropicraft.core.common.worldgen.WorldGenCurvedPalms) WorldGenBamboo(net.tropicraft.core.common.worldgen.WorldGenBamboo) WorldGenFruitTrees(net.tropicraft.core.common.worldgen.WorldGenFruitTrees) WorldGenNormalPalms(net.tropicraft.core.common.worldgen.WorldGenNormalPalms)

Example 2 with WorldGenBamboo

use of net.tropicraft.core.common.worldgen.WorldGenBamboo in project Tropicraft by Tropicraft.

the class TCWorldGenerator method generateSurface.

/**
 * The generation method used in the older versions of tropicraft to generate things in the
 * main world
 * @param world World to generate in
 * @param random Random!!!
 * @param chunkX chunkX
 * @param chunkZ chunkZ
 */
public void generateSurface(World world, Random random, int chunkX, int chunkZ) {
    Biome biome = world.getBiome(new BlockPos(chunkX, 0, chunkZ));
    if (TropicsConfigs.genOverworld) {
        // Convert to block coords rather than chunk coords
        chunkX *= 16;
        chunkZ *= 16;
        if (world.provider.getDimension() == 0 && world.getWorldType() != WorldType.FLAT) {
            int k = chunkX + random.nextInt(16) + 8;
            int l = random.nextInt(62) + 64;
            int i1 = chunkZ + random.nextInt(16) + 8;
            if (TropicsConfigs.genOverworldFlowers) {
                for (int j3 = 0; j3 < 10; j3++) {
                    l = random.nextInt(62) + 64;
                    BlockPos flowerPos = new BlockPos(k, l, i1);
                    (new WorldGenTropicalFlowers(world, random, BlockRegistry.flowers, TropicraftFlowers.OVERWORLD_FLOWERS)).generate(world, random, flowerPos);
                }
            }
            if (TropicsConfigs.genOverworldEIH && random.nextInt(GenRates.EIH_CHANCE) == 0) {
                l = random.nextInt(62) + 64;
                BlockPos eihPos = new BlockPos(k, l, i1);
                (new WorldGenEIH(world, random)).generate(world, random, eihPos);
            }
            if (biome.getDefaultTemperature() > 0.5F && !biome.getEnableSnow()) {
                if (TropicsConfigs.genOverworldPalms && random.nextInt(10) == 0) {
                    if ((TropicsConfigs.genOverworldPalmsBeachOnly && biome == Biomes.BEACH) || !TropicsConfigs.genOverworldPalmsBeachOnly) {
                        if (TropicsConfigs.chancePalmOverworld < 0 || random.nextFloat() < (float) (TropicsConfigs.chancePalmOverworld / 100F)) {
                            for (int j3 = 0; j3 < TropicsConfigs.factorPalmOverworld; j3++) {
                                l = random.nextInt(62) + 64;
                                BlockPos pos;
                                if (random.nextInt(5) == 0) {
                                    pos = new BlockPos(chunkX + 16, l, chunkZ + 16);
                                    (new WorldGenLargePalmTrees(world, random)).generate(world, random, pos);
                                } else if (random.nextInt(5) < 3) {
                                    int x = chunkX + 13 + random.nextInt(5);
                                    int z = chunkZ + 13 + random.nextInt(5);
                                    pos = new BlockPos(x, l, z);
                                    (new WorldGenCurvedPalms(world, random)).generate(world, random, pos);
                                } else {
                                    int x = chunkX + 13 + random.nextInt(5);
                                    int z = chunkZ + 13 + random.nextInt(5);
                                    pos = new BlockPos(x, l, z);
                                    (new WorldGenNormalPalms(world, random)).generate(world, random, pos);
                                }
                            }
                        }
                    }
                }
            }
            // Pineapples
            if (biome.getRainfall() > 0.3F && biome.getDefaultTemperature() > 0.0F) {
                if (TropicsConfigs.genOverworldPineapples && random.nextInt(TropicsConfigs.tallFlowerGenChanceOverworld) == 0) {
                    l = world.getHeight(chunkX, chunkZ);
                    BlockPos pineapplePos = new BlockPos(chunkX, l, chunkZ);
                    for (int t = 0; t < 3; t++) {
                        (new WorldGenTallFlower(world, random, BlockRegistry.pineapple.getDefaultState())).generate(pineapplePos);
                    }
                }
            }
            // Bamboo
            if (biome.getDefaultTemperature() > 0.2F) {
                if (TropicsConfigs.genOverworldBamboo && random.nextInt(TropicsConfigs.bambooGenChanceOverworld) == 0) {
                    l = random.nextInt(62) + 64;
                    BlockPos bambooPos = new BlockPos(chunkX, l, chunkZ);
                    (new WorldGenBamboo(world, random)).generate(world, random, bambooPos);
                }
            }
        }
    }
}
Also used : WorldGenLargePalmTrees(net.tropicraft.core.common.worldgen.WorldGenLargePalmTrees) Biome(net.minecraft.world.biome.Biome) WorldGenTallFlower(net.tropicraft.core.common.worldgen.WorldGenTallFlower) WorldGenEIH(net.tropicraft.core.common.worldgen.WorldGenEIH) WorldGenTropicalFlowers(net.tropicraft.core.common.worldgen.WorldGenTropicalFlowers) BlockPos(net.minecraft.util.math.BlockPos) WorldGenCurvedPalms(net.tropicraft.core.common.worldgen.WorldGenCurvedPalms) WorldGenBamboo(net.tropicraft.core.common.worldgen.WorldGenBamboo) WorldGenNormalPalms(net.tropicraft.core.common.worldgen.WorldGenNormalPalms)

Aggregations

BlockPos (net.minecraft.util.math.BlockPos)2 WorldGenBamboo (net.tropicraft.core.common.worldgen.WorldGenBamboo)2 WorldGenCurvedPalms (net.tropicraft.core.common.worldgen.WorldGenCurvedPalms)2 WorldGenEIH (net.tropicraft.core.common.worldgen.WorldGenEIH)2 WorldGenLargePalmTrees (net.tropicraft.core.common.worldgen.WorldGenLargePalmTrees)2 WorldGenNormalPalms (net.tropicraft.core.common.worldgen.WorldGenNormalPalms)2 WorldGenTallFlower (net.tropicraft.core.common.worldgen.WorldGenTallFlower)2 WorldGenTropicalFlowers (net.tropicraft.core.common.worldgen.WorldGenTropicalFlowers)2 Random (java.util.Random)1 Biome (net.minecraft.world.biome.Biome)1 WorldGenFruitTrees (net.tropicraft.core.common.worldgen.WorldGenFruitTrees)1