Guest User

TreeGeneration

a guest
Jun 19th, 2015
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.47 KB | None | 0 0
  1. package com.chef.mod.generate;
  2.  
  3. import java.util.Random;
  4.  
  5. import net.minecraft.util.BlockPos;
  6. import net.minecraft.world.World;
  7. import net.minecraft.world.biome.BiomeGenBase;
  8. import net.minecraft.world.biome.BiomeGenJungle;
  9. import net.minecraft.world.biome.BiomeGenSavanna;
  10. import net.minecraft.world.chunk.IChunkProvider;
  11. import net.minecraftforge.fml.common.IWorldGenerator;
  12.  
  13. import com.chef.mod.generate.features.WorldGenMangoTree;
  14. import com.chef.mod.generate.features.WorldGenOliveTree;
  15.  
  16. public class TreeGeneration implements IWorldGenerator {
  17.  
  18.     @Override
  19.     public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
  20.         switch (world.provider.getDimensionId()) {
  21.         case 1:
  22.             generateEnd(world, random, chunkX * 16, chunkZ * 16);
  23.             break;
  24.         case 0:
  25.             generateOverworld(world, random, chunkX * 16, chunkZ * 16);
  26.             break;
  27.         case -1:
  28.             generateNether(world, random, chunkX * 16, chunkZ * 16);
  29.             break;
  30.         }
  31.     }
  32.  
  33.     public void generateEnd(World world, Random rand, int x, int z) {
  34.  
  35.     }
  36.  
  37.     public void generateOverworld(World world, Random random, int x, int z) {
  38.  
  39.         this.addTreeSpawn(world, "mango", random, x, z, 16, 16, 40, 100, 1);
  40.         this.addTreeSpawn(world, "olive_green", random, x, z, 16, 16, 40, 100, 1);
  41.         this.addTreeSpawn(world, "olive_black", random, x, z, 16, 16, 40, 100, 1);
  42.  
  43.     }
  44.  
  45.     public void generateNether(World world, Random rand, int x, int z) {
  46.  
  47.     }
  48.  
  49.     public void addTreeSpawn(World world, String treeName, Random random, int blockXpos, int blockZpos, int maxX, int maxZ, int minY, int maxY, int chanceToSpawn) {
  50.  
  51.         for (int i = 0; i < chanceToSpawn; i++) {
  52.  
  53.             int posX = blockXpos + random.nextInt(maxX);
  54.             int posY = minY + random.nextInt(maxY - minY);
  55.             int posZ = blockZpos + random.nextInt(maxZ);
  56.             BiomeGenBase biome = world.getBiomeGenForCoords(new BlockPos(posX, posY, posZ));
  57.  
  58.             if (treeName.equalsIgnoreCase("mango")) {
  59.  
  60.                 if (biome instanceof BiomeGenJungle) {
  61.  
  62.                     (new WorldGenMangoTree()).generate(world, random, (new BlockPos(posX, posY, posZ)));
  63.  
  64.                 }
  65.             }
  66.  
  67.             if (biome instanceof BiomeGenSavanna) {
  68.  
  69.                 if (treeName.equalsIgnoreCase("olive_green")) {
  70.  
  71.                     (new WorldGenOliveTree(true)).generate(world, random, (new BlockPos(posX, posY, posZ)));
  72.  
  73.                 } else if (treeName.equalsIgnoreCase("olive_black")) {
  74.  
  75.                     (new WorldGenOliveTree(false)).generate(world, random, (new BlockPos(posX, posY, posZ)));
  76.  
  77.                 }
  78.             }
  79.         }
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment