ModWorldGeneration.java 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package me.km.dimensions;
  2. import java.util.Random;
  3. import me.km.blocks.ModBlocks;
  4. import net.minecraft.block.state.IBlockState;
  5. import net.minecraft.init.Biomes;
  6. import net.minecraft.util.math.BlockPos;
  7. import net.minecraft.world.World;
  8. import net.minecraft.world.biome.Biome;
  9. import net.minecraft.world.chunk.IChunkProvider;
  10. import net.minecraft.world.gen.IChunkGenerator;
  11. import net.minecraft.world.gen.feature.WorldGenMinable;
  12. import net.minecraftforge.fml.common.IWorldGenerator;
  13. public class ModWorldGeneration implements IWorldGenerator
  14. {
  15. @Override
  16. public void generate(Random r, int cX, int cZ, World w, IChunkGenerator cGen, IChunkProvider cPro)
  17. {
  18. Biome biome = w.getBiome(BlockPos.ORIGIN);
  19. if(biome != Biomes.HELL && biome != Biomes.SKY)
  20. {
  21. generateOverworld(r, cX, cZ, w, cGen, cPro);
  22. }
  23. }
  24. private void generateOverworld(Random random, int chunkX, int chunkZ, World w,
  25. IChunkGenerator chunkGenerator, IChunkProvider chunkProvider)
  26. {
  27. generateOre(ModBlocks.copperOre.getDefaultState(), w, random,
  28. chunkX << 4, chunkZ << 4, 0, 128, 9, 25);
  29. generateOre(ModBlocks.tinOre.getDefaultState(), w, random,
  30. chunkX << 4, chunkZ << 4, 0, 96, 8, 12);
  31. generateOre(ModBlocks.silverOre.getDefaultState(), w, random,
  32. chunkX << 4, chunkZ << 4, 0, 64, 8, 3);
  33. }
  34. private void generateOre(IBlockState ore, World world, Random random, int x, int z,
  35. int minY, int maxY, int size, int chances)
  36. {
  37. int deltaY = maxY - minY;
  38. BlockPos pos;
  39. WorldGenMinable generator;
  40. for (int i = 0; i < chances; i++)
  41. {
  42. // generates position in chunk
  43. pos = new BlockPos(x + random.nextInt(16), minY + random.nextInt(deltaY), z + random.nextInt(16));
  44. generator = new WorldGenMinable(ore, size);
  45. generator.generate(world, random, pos);
  46. }
  47. }
  48. }