forked from ForestryMC/Binnie
-
Notifications
You must be signed in to change notification settings - Fork 18
/
ModuleGeneration.java
86 lines (71 loc) · 3.43 KB
/
ModuleGeneration.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package binnie.extrabees.worldgen;
import java.util.Random;
import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider;
import binnie.core.IInitializable;
import binnie.extrabees.ExtraBees;
import binnie.extrabees.config.ConfigurationMain;
import binnie.extrabees.genetics.ExtraBeeDefinition;
import buildcraft.api.core.BuildCraftAPI;
import cpw.mods.fml.common.IWorldGenerator;
import cpw.mods.fml.common.registry.GameRegistry;
import forestry.apiculture.genetics.BeeDefinition;
public class ModuleGeneration implements IWorldGenerator, IInitializable {
protected static int waterRate = 2;
protected static int rockRate = 2;
protected static int netherRate = 2;
protected static int marbleRate = 2;
@Override
public void preInit() {
ExtraBees.materialBeehive = new MaterialBeehive();
ExtraBees.hive = new BlockExtraBeeHive();
GameRegistry.registerBlock(ExtraBees.hive, ItemBeehive.class, "hive");
}
@Override
public void init() {
ModuleGeneration.waterRate = ConfigurationMain.waterHiveRate;
ModuleGeneration.rockRate = ConfigurationMain.rockHiveRate;
ModuleGeneration.netherRate = ConfigurationMain.netherHiveRate;
GameRegistry.registerWorldGenerator(new ModuleGeneration(), 0);
if (!ConfigurationMain.canQuarryMineHives) {
BuildCraftAPI.softBlocks.add(ExtraBees.hive);
}
}
@Override
public void postInit() {
EnumHiveType.WATER.drops.add(new HiveDrop(ExtraBeeDefinition.WATER.getGenome().getPrimary(), 80));
EnumHiveType.WATER.drops.add(new HiveDrop(BeeDefinition.VALIANT.getGenome().getPrimary(), 3));
EnumHiveType.ROCK.drops.add(new HiveDrop(ExtraBeeDefinition.ROCK.getGenome().getPrimary(), 80));
EnumHiveType.ROCK.drops.add(new HiveDrop(BeeDefinition.VALIANT.getGenome().getPrimary(), 3));
EnumHiveType.NETHER.drops.add(new HiveDrop(ExtraBeeDefinition.BASALT.getGenome().getPrimary(), 80));
EnumHiveType.NETHER.drops.add(new HiveDrop(BeeDefinition.VALIANT.getGenome().getPrimary(), 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);
}
@Override
public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator,
IChunkProvider chunkProvider) {
chunkX <<= 4;
chunkZ <<= 4;
for (int i = 0; i < ModuleGeneration.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 < ModuleGeneration.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 < ModuleGeneration.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);
}
}
}