diff options
Diffstat (limited to 'src/Java/binnie/extrabees/worldgen/ModuleGeneration.java')
-rw-r--r-- | src/Java/binnie/extrabees/worldgen/ModuleGeneration.java | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/src/Java/binnie/extrabees/worldgen/ModuleGeneration.java b/src/Java/binnie/extrabees/worldgen/ModuleGeneration.java new file mode 100644 index 0000000000..8708ca7bf7 --- /dev/null +++ b/src/Java/binnie/extrabees/worldgen/ModuleGeneration.java @@ -0,0 +1,85 @@ +package binnie.extrabees.worldgen; + +import binnie.core.IInitializable; +import binnie.core.genetics.ForestryAllele.BeeSpecies; +import binnie.extrabees.ExtraBees; +import binnie.extrabees.config.ConfigurationMain; +import binnie.extrabees.genetics.ExtraBeesSpecies; +import buildcraft.api.core.BuildCraftAPI; +import cpw.mods.fml.common.IWorldGenerator; +import cpw.mods.fml.common.registry.GameRegistry; +import java.util.List; +import java.util.Random; +import java.util.Set; +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.chunk.IChunkProvider; + +public class ModuleGeneration + implements IWorldGenerator, IInitializable +{ + static int waterRate = 2; + static int rockRate = 2; + static int netherRate = 2; + static int marbleRate = 2; + + public void preInit() + { + ExtraBees.materialBeehive = new MaterialBeehive(); + ExtraBees.hive = new BlockExtraBeeHive(); + GameRegistry.registerBlock(ExtraBees.hive, ItemBeehive.class, "hive"); + } + + public void init() + { + waterRate = ConfigurationMain.waterHiveRate; + rockRate = ConfigurationMain.rockHiveRate; + netherRate = ConfigurationMain.netherHiveRate; + GameRegistry.registerWorldGenerator(new ModuleGeneration(), 0); + if (!ConfigurationMain.canQuarryMineHives) { + BuildCraftAPI.softBlocks.add(ExtraBees.hive); + } + } + + public void postInit() + { + EnumHiveType.Water.drops.add(new HiveDrop(ExtraBeesSpecies.WATER, 80)); + EnumHiveType.Water.drops.add(new HiveDrop(ForestryAllele.BeeSpecies.Valiant.getAllele(), 3)); + EnumHiveType.Rock.drops.add(new HiveDrop(ExtraBeesSpecies.ROCK, 80)); + EnumHiveType.Rock.drops.add(new HiveDrop(ForestryAllele.BeeSpecies.Valiant.getAllele(), 3)); + EnumHiveType.Nether.drops.add(new HiveDrop(ExtraBeesSpecies.BASALT, 80)); + EnumHiveType.Nether.drops.add(new HiveDrop(ForestryAllele.BeeSpecies.Valiant.getAllele(), 3)); + + ExtraBees.hive.setHarvestLevel("scoop", 0, 0); + ExtraBees.hive.setHarvestLevel("scoop", 0, 1); + ExtraBees.hive.setHarvestLevel("scoop", 0, 2); + ExtraBees.hive.setHarvestLevel("scoop", 0, 3); + } + + public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) + { + chunkX <<= 4; + chunkZ <<= 4; + for (int i = 0; i < waterRate; i++) + { + int randPosX = chunkX + rand.nextInt(16); + int randPosY = rand.nextInt(50) + 20; + int randPosZ = chunkZ + rand.nextInt(16); + new WorldGenHiveWater().generate(world, rand, randPosX, randPosY, randPosZ); + } + for (int i = 0; i < rockRate; i++) + { + int randPosX = chunkX + rand.nextInt(16); + int randPosY = rand.nextInt(50) + 20; + int randPosZ = chunkZ + rand.nextInt(16); + new WorldGenHiveRock().generate(world, rand, randPosX, randPosY, randPosZ); + } + for (int i = 0; i < netherRate; i++) + { + int randPosX = chunkX + rand.nextInt(16); + int randPosY = rand.nextInt(50) + 20; + int randPosZ = chunkZ + rand.nextInt(16); + new WorldGenHiveNether().generate(world, rand, randPosX, randPosY, randPosZ); + } + } +} |