aboutsummaryrefslogtreecommitdiff
path: root/src/Java/binnie/extrabees/worldgen/ModuleGeneration.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/binnie/extrabees/worldgen/ModuleGeneration.java')
-rw-r--r--src/Java/binnie/extrabees/worldgen/ModuleGeneration.java85
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);
+ }
+ }
+}