12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package me.km.dimensions;
- import java.util.Random;
- import me.km.blocks.ModBlocks;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.init.Biomes;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.world.World;
- import net.minecraft.world.biome.Biome;
- import net.minecraft.world.chunk.IChunkProvider;
- import net.minecraft.world.gen.IChunkGenerator;
- import net.minecraft.world.gen.feature.WorldGenMinable;
- import net.minecraftforge.fml.common.IWorldGenerator;
- public class ModWorldGeneration implements IWorldGenerator
- {
- @Override
- public void generate(Random r, int cX, int cZ, World w, IChunkGenerator cGen, IChunkProvider cPro)
- {
- Biome biome = w.getBiome(BlockPos.ORIGIN);
- if(biome != Biomes.HELL && biome != Biomes.SKY)
- {
- generateOverworld(r, cX, cZ, w, cGen, cPro);
- }
- }
-
- private void generateOverworld(Random random, int chunkX, int chunkZ, World w,
- IChunkGenerator chunkGenerator, IChunkProvider chunkProvider)
- {
- generateOre(ModBlocks.copperOre.getDefaultState(), w, random,
- chunkX << 4, chunkZ << 4, 0, 128, 9, 25);
- generateOre(ModBlocks.tinOre.getDefaultState(), w, random,
- chunkX << 4, chunkZ << 4, 0, 96, 8, 12);
- generateOre(ModBlocks.silverOre.getDefaultState(), w, random,
- chunkX << 4, chunkZ << 4, 0, 64, 8, 3);
- }
-
- private void generateOre(IBlockState ore, World world, Random random, int x, int z,
- int minY, int maxY, int size, int chances)
- {
- int deltaY = maxY - minY;
- BlockPos pos;
- WorldGenMinable generator;
- for (int i = 0; i < chances; i++)
- {
- // generates position in chunk
- pos = new BlockPos(x + random.nextInt(16), minY + random.nextInt(deltaY), z + random.nextInt(16));
- generator = new WorldGenMinable(ore, size);
- generator.generate(world, random, pos);
- }
- }
- }
|