Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.steelfeathers.nethersurvival.worldgen;
- import java.util.Random;
- import com.steelfeathers.nethersurvival.blocks.BlockCrystalCluster;
- import com.steelfeathers.nethersurvival.init.ModBlocks;
- import com.steelfeathers.nethersurvival.worldgen.predicates.NetherGenPredicate;
- import com.steelfeathers.nethersurvival.worldgen.predicates.OverworldGenPredicate;
- import net.minecraft.init.Blocks;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.world.World;
- import net.minecraft.world.chunk.IChunkGenerator;
- import net.minecraft.world.chunk.IChunkProvider;
- import net.minecraft.world.gen.feature.WorldGenMinable;
- import net.minecraft.world.gen.feature.WorldGenerator;
- import net.minecraftforge.fml.common.IWorldGenerator;
- public class CrystalGenerator implements IWorldGenerator {
- private WorldGenerator crystal_nether;
- private WorldGenerator crystal_overworld;
- public CrystalGenerator() {
- crystal_nether = new WorldGenCrystal(ModBlocks.crystalCluster.getDefaultState(), Blocks.NETHERRACK, 5, 3, BlockCrystalCluster.FACING);
- crystal_overworld = new WorldGenCrystal(ModBlocks.crystalCluster.getDefaultState(), Blocks.STONE, 5, 3, BlockCrystalCluster.FACING);
- }
- @Override
- public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator,
- IChunkProvider chunkProvider) {
- switch (world.provider.getDimension()) {
- case 0: //overworld
- this.runGenerator(crystal_overworld, world, random, chunkX, chunkZ, 10, 0, 64);
- break;
- case -1: //nether
- this.runGenerator(crystal_nether, world, random, chunkX, chunkZ, 30, 0, 64);
- break;
- }
- }
- private void runGenerator(WorldGenerator generator, World world, Random rand, int chunk_X, int chunk_Z,
- int chancesToSpawn, int minHeight, int maxHeight) {
- if (minHeight < 0 || maxHeight > 256 || minHeight > maxHeight)
- throw new IllegalArgumentException("Illegal Height Arguments for WorldGenerator");
- int heightDiff = maxHeight - minHeight + 1;
- for (int i = 0; i < chancesToSpawn; i++) {
- int x = chunk_X * 16 + rand.nextInt(16);
- int y = minHeight + rand.nextInt(heightDiff);
- int z = chunk_Z * 16 + rand.nextInt(16);
- generator.generate(world, rand, new BlockPos(x, y, z));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment