diff --git a/thaumicbees_res/build.number b/thaumicbees_res/build.number
index 17aca7a..39900b6 100644
--- a/thaumicbees_res/build.number
+++ b/thaumicbees_res/build.number
@@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit!
-#Sun Feb 03 17:05:53 PST 2013
-build.number=104
+#Sat Feb 09 14:11:48 PST 2013
+build.number=114
diff --git a/thaumicbees_res/gfx/thaumicbees/gui/apiary.png b/thaumicbees_res/gfx/thaumicbees/gui/apiary.png
new file mode 100644
index 0000000..01aa54c
Binary files /dev/null and b/thaumicbees_res/gfx/thaumicbees/gui/apiary.png differ
diff --git a/thaumicbees_res/gfx/thaumicbees/items/items.png b/thaumicbees_res/gfx/thaumicbees/items/items.png
index 538a993..c9916a3 100644
Binary files a/thaumicbees_res/gfx/thaumicbees/items/items.png and b/thaumicbees_res/gfx/thaumicbees/items/items.png differ
diff --git a/thaumicbees_res/mcmod.info b/thaumicbees_res/mcmod.info
index 47d7379..c7f4d96 100644
--- a/thaumicbees_res/mcmod.info
+++ b/thaumicbees_res/mcmod.info
@@ -2,7 +2,7 @@
{
"modid": "ThaumicBees",
"name": "ThaumicBees",
- "url": "http://www.minecraftforum.net/topic/1623692-thaumicbees-beekeeping-is-magic/",
+ "url": "http://bit.ly/XFDvLY",
"description": "Crossover mod for Forestry and Thaumcraft. Magic bees & more.",
"authors": [ "MysteriousAges" ],
"credits": "Thanks to Sengir and Azanor for awesome mods! Also thanks to Binnie and Florastar. (:",
diff --git a/thaumicbees_res/research/thaumicbees/research.xml b/thaumicbees_res/research/thaumicbees/research.xml
index a9622c7..d3692ca 100644
--- a/thaumicbees_res/research/thaumicbees/research.xml
+++ b/thaumicbees_res/research/thaumicbees/research.xml
@@ -93,4 +93,14 @@ Like the Magic Frame, this frame consumes aura to maintain its enchantments. Thi
FRAMENECROTIC
+
+Temporal Frame
+Why isn't it blue and boxy?
+You have been seeking a way to significantly extend bee life. It should be possible by adding a frame enchanted with the essence of time to the hive.
+Keeping bees has been frustrating, as the insects' short lives requires you to manually intervene far too often.
+
+A new variation of your frame design, this version involving some Time magic, should help extend their lives significantly.
+FRAMETIME
+
+
\ No newline at end of file
diff --git a/thaumicbees_src/thaumicbees/bees/Allele.java b/thaumicbees_src/thaumicbees/bees/Allele.java
new file mode 100644
index 0000000..4f98c65
--- /dev/null
+++ b/thaumicbees_src/thaumicbees/bees/Allele.java
@@ -0,0 +1,96 @@
+package thaumicbees.bees;
+
+import net.minecraft.potion.Potion;
+import thaumicbees.compat.ThaumcraftHelper;
+import forestry.api.apiculture.IAlleleBeeSpecies;
+import forestry.api.genetics.AlleleManager;
+import forestry.api.genetics.IAllele;
+
+public class Allele implements IAllele
+{
+ public static AlleleInteger fertilityHighDominant;
+
+ public static AlleleFlower flowerBookshelf;
+ public static AlleleFlower flowerThaumcraft;
+ public static AlleleFlower flowerAuraNode;
+ public static AlleleFlower flowerNodePurify;
+ public static AlleleFlower flowerNodeFluxify;
+
+ public static AlleleEffectCure cleansingEffect;
+ public static AlleleEffectPotion digSpeed;
+ public static AlleleEffectPotion moveSpeed;
+ public static AlleleEffectPotion slowSpeed;
+ public static AlleleEffectSpawnMob spawnBrainyZombie;
+ public static AlleleEffectSpawnMob spawnWisp;
+ public static AlleleEffectSpawnMob spawnBats;
+ public static AlleleEffectSpawnMob spawnGhast;
+ public static AlleleEffectAuraNodeGrow nodeGen;
+
+ public static void setupAdditionalAlleles()
+ {
+ Allele.fertilityHighDominant = new AlleleInteger("fertilityHighDominant", 3, true);
+
+ Allele.flowerBookshelf = new AlleleFlower("flowerBookshelf", new FlowerProviderBookshelf(), true);
+ Allele.flowerThaumcraft = new AlleleFlower("flowerThaumcraftPlant", new FlowerProviderThaumcraftFlower(), false);
+ Allele.flowerAuraNode = new AlleleFlower("flowerAuraNode", new FlowerProviderAuraNode(), true);
+ Allele.flowerNodePurify = new AlleleFlower("flowerAuraNodePurify", new FlowerProviderAuraNodePurify(), false);
+ Allele.flowerNodeFluxify = new AlleleFlower("flowerAuraNodeFlux", new FlowerProviderAuraNodeFlux(), false);
+
+ Allele.cleansingEffect = new AlleleEffectCure("effectCurative", false);
+ Allele.digSpeed = new AlleleEffectPotion("effectDigSpeed", "Mining", Potion.digSpeed, 7, false);
+ Allele.moveSpeed = new AlleleEffectPotion("effectMoveSpeed", "Swiftness", Potion.moveSpeed, 5, false);
+ Allele.slowSpeed = new AlleleEffectPotion("effectSlowSpeed", "Time Warp", Potion.moveSlowdown, 3, false);
+
+ Allele.nodeGen = new AlleleEffectAuraNodeGrow("effectNodeGeneration", "Nodeify", false, 400);
+
+ Allele.spawnBrainyZombie = new AlleleEffectSpawnMob("effectBrainy", false, "Brainy", ThaumcraftHelper.Entity.BRAINY_ZOMBIE.entityID);
+ Allele.spawnBrainyZombie.setAggrosPlayerOnSpawn().setThrottle(800).setSpawnsOnPlayerNear(null).setMaxMobsInSpawnZone(2);
+
+ Allele.spawnBats = new AlleleEffectSpawnMob("effectBatty", false, "Batty", ThaumcraftHelper.Entity.FIREBAT.entityID);
+ Allele.spawnBats.setThrottle(300).setSpawnsOnPlayerNear("Bat");
+
+ Allele.spawnWisp = new AlleleEffectSpawnWisp("effectWispy", false, "Wispy", ThaumcraftHelper.Entity.WISP.entityID);
+ Allele.spawnWisp.setThrottle(1800);
+
+ Allele.spawnGhast = new AlleleEffectSpawnMob("Ghast", false, "Ghastly", "Ghast");
+ Allele.spawnGhast.setThrottle(2000).setChanceToSpawn(20).setMaxMobsInSpawnZone(1);
+ }
+
+ private String uid;
+ private boolean dominant;
+
+ public static IAlleleBeeSpecies getBaseSpecies(String name)
+ {
+ return (IAlleleBeeSpecies) AlleleManager.alleleRegistry.getAllele((new StringBuilder()).append("forestry.species").append(name).toString());
+ }
+
+ public static IAlleleBeeSpecies getExtraSpecies(String name)
+ {
+ return (IAlleleBeeSpecies) AlleleManager.alleleRegistry.getAllele((new StringBuilder()).append("extrabees.species.").append(name).toString());
+ }
+
+ public static IAllele getBaseAllele(String name)
+ {
+ return AlleleManager.alleleRegistry.getAllele("forestry." + name);
+ }
+
+ public Allele(String id, boolean isDominant)
+ {
+ this.uid = "thaumicbees." + id;
+ this.dominant = isDominant;
+ AlleleManager.alleleRegistry.registerAllele(this);
+ }
+
+ @Override
+ public String getUID()
+ {
+ return this.uid;
+ }
+
+ @Override
+ public boolean isDominant()
+ {
+ return this.dominant;
+ }
+
+}
diff --git a/thaumicbees_src/thaumicbees/bees/genetics/AlleleEffect.java b/thaumicbees_src/thaumicbees/bees/AlleleEffect.java
similarity index 98%
rename from thaumicbees_src/thaumicbees/bees/genetics/AlleleEffect.java
rename to thaumicbees_src/thaumicbees/bees/AlleleEffect.java
index 307be2c..79fc660 100644
--- a/thaumicbees_src/thaumicbees/bees/genetics/AlleleEffect.java
+++ b/thaumicbees_src/thaumicbees/bees/AlleleEffect.java
@@ -1,4 +1,4 @@
-package thaumicbees.bees.genetics;
+package thaumicbees.bees;
import java.util.List;
diff --git a/thaumicbees_src/thaumicbees/bees/genetics/AlleleEffectAuraNodeGrow.java b/thaumicbees_src/thaumicbees/bees/AlleleEffectAuraNodeGrow.java
similarity index 90%
rename from thaumicbees_src/thaumicbees/bees/genetics/AlleleEffectAuraNodeGrow.java
rename to thaumicbees_src/thaumicbees/bees/AlleleEffectAuraNodeGrow.java
index 9945d40..dcf3b0e 100644
--- a/thaumicbees_src/thaumicbees/bees/genetics/AlleleEffectAuraNodeGrow.java
+++ b/thaumicbees_src/thaumicbees/bees/AlleleEffectAuraNodeGrow.java
@@ -1,4 +1,4 @@
-package thaumicbees.bees.genetics;
+package thaumicbees.bees;
import java.lang.reflect.Method;
@@ -39,7 +39,7 @@ public class AlleleEffectAuraNodeGrow extends AlleleEffect
if (value >= throttle)
{
World w = housing.getWorld();
- if (w.rand.nextInt(20) < 1)
+ if (w.rand.nextInt(15) < 1)
{
float x = housing.getXCoord();
float y = housing.getYCoord();
@@ -63,7 +63,7 @@ public class AlleleEffectAuraNodeGrow extends AlleleEffect
y *= 0.0125f;
z *= 0.0125f;
- ThaumcraftApi.queueNodeChanges(nodeId, node.level * -3 / 8, w.rand.nextInt(1), false, null, x, y, z);
+ ThaumcraftApi.queueNodeChanges(nodeId, node.baseLevel * -3 / 10, w.rand.nextInt(1), false, null, x, y, z);
}
}
}
diff --git a/thaumicbees_src/thaumicbees/bees/genetics/AlleleEffectCure.java b/thaumicbees_src/thaumicbees/bees/AlleleEffectCure.java
similarity index 97%
rename from thaumicbees_src/thaumicbees/bees/genetics/AlleleEffectCure.java
rename to thaumicbees_src/thaumicbees/bees/AlleleEffectCure.java
index 2ebebe9..f7a160e 100644
--- a/thaumicbees_src/thaumicbees/bees/genetics/AlleleEffectCure.java
+++ b/thaumicbees_src/thaumicbees/bees/AlleleEffectCure.java
@@ -1,4 +1,4 @@
-package thaumicbees.bees.genetics;
+package thaumicbees.bees;
import java.util.List;
diff --git a/thaumicbees_src/thaumicbees/bees/genetics/AlleleEffectPotion.java b/thaumicbees_src/thaumicbees/bees/AlleleEffectPotion.java
similarity index 97%
rename from thaumicbees_src/thaumicbees/bees/genetics/AlleleEffectPotion.java
rename to thaumicbees_src/thaumicbees/bees/AlleleEffectPotion.java
index 0bf2d48..cdf9f54 100644
--- a/thaumicbees_src/thaumicbees/bees/genetics/AlleleEffectPotion.java
+++ b/thaumicbees_src/thaumicbees/bees/AlleleEffectPotion.java
@@ -1,4 +1,4 @@
-package thaumicbees.bees.genetics;
+package thaumicbees.bees;
import java.util.List;
diff --git a/thaumicbees_src/thaumicbees/bees/genetics/AlleleEffectSpawnMob.java b/thaumicbees_src/thaumicbees/bees/AlleleEffectSpawnMob.java
similarity index 99%
rename from thaumicbees_src/thaumicbees/bees/genetics/AlleleEffectSpawnMob.java
rename to thaumicbees_src/thaumicbees/bees/AlleleEffectSpawnMob.java
index 249a2ac..c0799c1 100644
--- a/thaumicbees_src/thaumicbees/bees/genetics/AlleleEffectSpawnMob.java
+++ b/thaumicbees_src/thaumicbees/bees/AlleleEffectSpawnMob.java
@@ -1,4 +1,4 @@
-package thaumicbees.bees.genetics;
+package thaumicbees.bees;
import java.util.List;
diff --git a/thaumicbees_src/thaumicbees/bees/genetics/AlleleEffectSpawnWisp.java b/thaumicbees_src/thaumicbees/bees/AlleleEffectSpawnWisp.java
similarity index 98%
rename from thaumicbees_src/thaumicbees/bees/genetics/AlleleEffectSpawnWisp.java
rename to thaumicbees_src/thaumicbees/bees/AlleleEffectSpawnWisp.java
index 918f328..41689cd 100644
--- a/thaumicbees_src/thaumicbees/bees/genetics/AlleleEffectSpawnWisp.java
+++ b/thaumicbees_src/thaumicbees/bees/AlleleEffectSpawnWisp.java
@@ -1,4 +1,4 @@
-package thaumicbees.bees.genetics;
+package thaumicbees.bees;
import java.lang.reflect.Field;
diff --git a/thaumicbees_src/thaumicbees/bees/genetics/AlleleFlower.java b/thaumicbees_src/thaumicbees/bees/AlleleFlower.java
similarity index 94%
rename from thaumicbees_src/thaumicbees/bees/genetics/AlleleFlower.java
rename to thaumicbees_src/thaumicbees/bees/AlleleFlower.java
index 302ff39..bcef7be 100644
--- a/thaumicbees_src/thaumicbees/bees/genetics/AlleleFlower.java
+++ b/thaumicbees_src/thaumicbees/bees/AlleleFlower.java
@@ -1,4 +1,4 @@
-package thaumicbees.bees.genetics;
+package thaumicbees.bees;
import forestry.api.apiculture.IAlleleFlowers;
import forestry.api.apiculture.IFlowerProvider;
diff --git a/thaumicbees_src/thaumicbees/bees/genetics/AlleleInteger.java b/thaumicbees_src/thaumicbees/bees/AlleleInteger.java
similarity index 90%
rename from thaumicbees_src/thaumicbees/bees/genetics/AlleleInteger.java
rename to thaumicbees_src/thaumicbees/bees/AlleleInteger.java
index 04d8e20..ac5abb3 100644
--- a/thaumicbees_src/thaumicbees/bees/genetics/AlleleInteger.java
+++ b/thaumicbees_src/thaumicbees/bees/AlleleInteger.java
@@ -1,4 +1,4 @@
-package thaumicbees.bees.genetics;
+package thaumicbees.bees;
import forestry.api.genetics.IAlleleInteger;
diff --git a/thaumicbees_src/thaumicbees/bees/BeeClassification.java b/thaumicbees_src/thaumicbees/bees/BeeClassification.java
new file mode 100644
index 0000000..23b093e
--- /dev/null
+++ b/thaumicbees_src/thaumicbees/bees/BeeClassification.java
@@ -0,0 +1,109 @@
+package thaumicbees.bees;
+
+import java.util.ArrayList;
+
+import forestry.api.genetics.AlleleManager;
+import forestry.api.genetics.IAlleleSpecies;
+import forestry.api.genetics.IClassification;
+
+public enum BeeClassification implements IClassification
+{
+ ARCANE("Arcane", "Arcanus", ""),
+ SUPERNATURAL("Supernatural", "Coeleste", ""),
+ SCHOLARLY("Scholarly", "Docto", ""),
+ THAUMIC("Thaumic", "Thaumis", ""),
+ SKULKING("Skulking", "Malevolens", ""),
+ VIS("Vis", "Patabilis", ""),
+ TIME("Time", "Sempiternus", ""),
+ ;
+
+ private String uID;
+ private String name;
+ private String scientific;
+ private String description;
+ private ArrayList species;
+ private IClassification parent;
+ private EnumClassLevel level;
+
+ private BeeClassification(String name, String latin, String desc)
+ {
+ this.uID = "classification." + name.toLowerCase();
+ this.name = name;
+ this.scientific = latin;
+ this.level = EnumClassLevel.GENUS;
+ this.description = desc;
+ this.species = new ArrayList();
+ this.parent = AlleleManager.alleleRegistry.getClassification("family.apidae");
+ AlleleManager.alleleRegistry.registerClassification(this);
+ }
+
+ @Override
+ public EnumClassLevel getLevel()
+ {
+ return this.level;
+ }
+
+ @Override
+ public String getUID()
+ {
+ return this.uID;
+ }
+
+ @Override
+ public String getName()
+ {
+ return this.name;
+ }
+
+ @Override
+ public String getScientific()
+ {
+ return this.scientific;
+ }
+
+ @Override
+ public String getDescription()
+ {
+ return this.description;
+ }
+
+ @Override
+ public IClassification[] getMemberGroups()
+ {
+ return null;
+ }
+
+ @Override
+ public void addMemberGroup(IClassification group)
+ {
+
+ }
+
+ @Override
+ public IAlleleSpecies[] getMemberSpecies()
+ {
+ return this.species.toArray(new IAlleleSpecies[this.species.size()]);
+ }
+
+ @Override
+ public void addMemberSpecies(IAlleleSpecies species)
+ {
+ if (!this.species.contains(species))
+ {
+ this.species.add(species);
+ }
+ }
+
+ @Override
+ public IClassification getParent()
+ {
+ return this.parent;
+ }
+
+ @Override
+ public void setParent(IClassification parent)
+ {
+ this.parent = parent;
+ }
+
+}
diff --git a/thaumicbees_src/thaumicbees/bees/BeeGenomeManager.java b/thaumicbees_src/thaumicbees/bees/BeeGenomeManager.java
index 5e2abd5..eb1155a 100644
--- a/thaumicbees_src/thaumicbees/bees/BeeGenomeManager.java
+++ b/thaumicbees_src/thaumicbees/bees/BeeGenomeManager.java
@@ -1,8 +1,5 @@
package thaumicbees.bees;
-import thaumicbees.bees.genetics.Allele;
-import thaumicbees.bees.genetics.AlleleFlower;
-import thaumicbees.bees.genetics.BeeSpecies;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
@@ -25,7 +22,7 @@ public class BeeGenomeManager
{
IAllele[] genome = new IAllele[EnumBeeChromosome.values().length];
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Esoteric;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.ESOTERIC;
genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedSlowest");
genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanShorter");
genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityNormal");
@@ -59,7 +56,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseArcane();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Esoteric;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.ESOTERIC;
return genome;
}
@@ -68,7 +65,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseArcane();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Mysterious;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.MYSTERIOUS;
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth2");
return genome;
@@ -78,7 +75,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseArcane();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Arcane;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.ARCANE;
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth2");
genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityNormal");
genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringAverage");
@@ -101,7 +98,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseSupernatural();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Charmed;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.CHARMED;
return genome;
}
@@ -110,7 +107,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseSupernatural();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Enchanted;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.ENCHANTED;
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth1");
return genome;
@@ -120,7 +117,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseSupernatural();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Supernatural;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.SUPERNATURAL;
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth2");
genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth1");
@@ -145,7 +142,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseScholarly();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Pupil;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.PUPIL;
genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedSlower");
return genome;
@@ -155,7 +152,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseScholarly();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Scholarly;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.SCHOLARLY;
genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityLow");
return genome;
@@ -165,7 +162,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseScholarly();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Savant;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.SAVANT;
genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedNorm");
genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityLow");
@@ -186,7 +183,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseElemental();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Stark;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.STARK;
genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityNormal");
return genome;
@@ -196,7 +193,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseElemental();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Air;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.AIR;
genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedFastest");
genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanShortened");
genome[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.getBaseAllele("territoryLargest");
@@ -211,7 +208,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseElemental();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Fire;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.FIRE;
genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedFaster");
genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanNormal");
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceDown3");
@@ -226,7 +223,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseElemental();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Water;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.WATER;
genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedFast");
genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanLong");
genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceDown2");
@@ -241,7 +238,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseElemental();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Earth;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.EARTH;
genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedSlow");
genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanLonger");
genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceDown1");
@@ -257,7 +254,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseElemental();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Infused;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.INFUSED;
genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedNorm");
genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanNormal");
@@ -279,7 +276,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseVis();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Aware;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.AWARE;
genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerThaumcraft;
return genome;
@@ -289,7 +286,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseVis();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Vis;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.VIS;
genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedSlow");
genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringSlower");
genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerAuraNode;
@@ -301,7 +298,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseVis();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Pure;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.PURE;
genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceNone");
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceNone");
genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringAverage");
@@ -314,7 +311,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseVis();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Flux;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.FLUX;
genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceNone");
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceNone");
genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerNodeFluxify;
@@ -326,7 +323,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseVis();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Node;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.NODE;
genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringSlowest");
genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerAuraNode;
genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.nodeGen;
@@ -350,7 +347,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseMalevolent();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Skulking;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.SKULKING;
genome[EnumBeeChromosome.CAVE_DWELLING.ordinal()] = Allele.getBaseAllele("boolTrue");
genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityNormal");
@@ -361,7 +358,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseMalevolent();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Brainy;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.BRAINY;
genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.spawnBrainyZombie;
genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityLow");
@@ -372,7 +369,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseMalevolent();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Gossamer;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.GOSSAMER;
genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue");
genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowerThaumcraft;
@@ -383,7 +380,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseMalevolent();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Wispy;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.WISPY;
genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.spawnWisp;
genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue");
genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityLow");
@@ -396,7 +393,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseMalevolent();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Batty;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.BATTY;
genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.spawnBats;
genome[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.getBaseAllele("territoryLarge");
@@ -407,7 +404,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseMalevolent();
- genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Ghastly;
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.GHASTLY;
genome[EnumBeeChromosome.CAVE_DWELLING.ordinal()] = Allele.getBaseAllele("boolTrue");
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth1");
genome[EnumBeeChromosome.NOCTURNAL.ordinal()] = Allele.getBaseAllele("boolTrue");
@@ -417,6 +414,57 @@ public class BeeGenomeManager
return genome;
}
+
+ private static IAllele[] getTemplateBaseTemporal()
+ {
+ IAllele[] genome = getTemplateBaseThaumic();
+
+ genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth1");
+ genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityNormal");
+ genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedNorm");
+ genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue");
+
+ return genome;
+ }
+
+ public static IAllele[] getTemplateTimely()
+ {
+ IAllele[] genome = getTemplateBaseTemporal();
+
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TIMELY;
+ genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.slowSpeed;
+ genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanElongated");
+
+ return genome;
+ }
+
+ public static IAllele[] getTemplateLordly()
+ {
+ IAllele[] genome = getTemplateBaseTemporal();
+
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.LORDLY;
+ genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.slowSpeed;
+ genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanLong");
+ genome[EnumBeeChromosome.NOCTURNAL.ordinal()] = Allele.getBaseAllele("boolTrue");
+ genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.getBaseAllele("effectDrunkard");
+
+ return genome;
+ }
+
+ public static IAllele[] getTemplateDoctoral()
+ {
+ IAllele[] genome = getTemplateBaseTemporal();
+
+ genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.DOCTORAL;
+ genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.slowSpeed;
+ genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth3");
+ genome[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.getBaseAllele("territoryLarge");
+ genome[EnumBeeChromosome.NOCTURNAL.ordinal()] = Allele.getBaseAllele("boolTrue");
+ genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanLongest");
+ genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.getBaseAllele("effectHeroic");
+
+ return genome;
+ }
public static ItemStack getBeeNBTForSpecies(BeeSpecies species, EnumBeeType beeType)
{
diff --git a/thaumicbees_src/thaumicbees/bees/genetics/BeeMutation.java b/thaumicbees_src/thaumicbees/bees/BeeMutation.java
similarity index 50%
rename from thaumicbees_src/thaumicbees/bees/genetics/BeeMutation.java
rename to thaumicbees_src/thaumicbees/bees/BeeMutation.java
index eb7569b..b9b5f9c 100644
--- a/thaumicbees_src/thaumicbees/bees/genetics/BeeMutation.java
+++ b/thaumicbees_src/thaumicbees/bees/BeeMutation.java
@@ -1,18 +1,20 @@
-package thaumicbees.bees.genetics;
+package thaumicbees.bees;
import forestry.api.apiculture.*;
import forestry.api.genetics.IAllele;
import forestry.api.genetics.IGenome;
import java.util.ArrayList;
+import cpw.mods.fml.common.FMLLog;
+
import thaumcraft.api.AuraNode;
import thaumcraft.api.EnumNodeType;
import thaumcraft.api.ThaumcraftApi;
+import thaumicbees.main.ThaumicBees;
import thaumicbees.main.utils.MoonPhase;
public class BeeMutation implements IBeeMutation
{
-
public static BeeMutation Esoteric;
public static BeeMutation Esoteric1;
public static BeeMutation Mysterious;
@@ -38,13 +40,91 @@ public class BeeMutation implements IBeeMutation
public static BeeMutation Wispy;
public static BeeMutation Batty;
public static BeeMutation Ghastly;
+ public static BeeMutation Timely;
+ public static BeeMutation Lordly;
+ public static BeeMutation Doctoral;
+
+ public static void setupMutations()
+ {
+ BeeMutation.Esoteric = new BeeMutation(Allele.getBaseSpecies("Imperial"), Allele.getBaseSpecies("Demonic"), BeeSpecies.ESOTERIC, 10);
+ BeeMutation.Esoteric1 = new BeeMutation(Allele.getBaseSpecies("Heroic"), Allele.getBaseSpecies("Demonic"), BeeSpecies.ESOTERIC, 25);
+ BeeMutation.Mysterious = new BeeMutation(BeeSpecies.ESOTERIC, Allele.getBaseSpecies("Ended"), BeeSpecies.MYSTERIOUS, 10);
+ BeeMutation.Arcane = new BeeMutation(BeeSpecies.ESOTERIC, BeeSpecies.MYSTERIOUS, BeeSpecies.ARCANE, 8)
+ .setMoonPhaseBonus(MoonPhase.WANING_CRESCENT, MoonPhase.WAXING_CRESCENT, 1.5f);
+ BeeMutation.Charmed = new BeeMutation(Allele.getBaseSpecies("Diligent"), Allele.getBaseSpecies("Valiant"), BeeSpecies.CHARMED, 20);
+ BeeMutation.Enchanted = new BeeMutation(BeeSpecies.CHARMED, Allele.getBaseSpecies("Valiant"), BeeSpecies.ENCHANTED, 8);
+ BeeMutation.Supernatural = new BeeMutation(BeeSpecies.CHARMED, BeeSpecies.ENCHANTED, BeeSpecies.SUPERNATURAL, 10)
+ .setMoonPhaseBonus(MoonPhase.WAXING_GIBBOUS, MoonPhase.WANING_GIBBOUS, 1.5f);
+ BeeMutation.Pupil = new BeeMutation(BeeSpecies.ARCANE, BeeSpecies.ENCHANTED, BeeSpecies.PUPIL, 10);
+ BeeMutation.Scholarly = new BeeMutation(BeeSpecies.PUPIL, BeeSpecies.ARCANE, BeeSpecies.SCHOLARLY, 8);
+ BeeMutation.Savant = new BeeMutation(BeeSpecies.PUPIL, BeeSpecies.SCHOLARLY, BeeSpecies.SAVANT, 6);
+ BeeMutation.Stark = new BeeMutation(BeeSpecies.ARCANE, BeeSpecies.SUPERNATURAL, BeeSpecies.STARK, 8);
+
+ BeeMutation.Aware = new BeeMutation(Allele.getBaseSpecies("Demonic"), Allele.getBaseSpecies("Edenic"), BeeSpecies.AWARE, 12);
+ BeeMutation.Vis = new BeeMutation(BeeSpecies.AWARE, BeeSpecies.ARCANE, BeeSpecies.VIS, 9)
+ .setAuraNodeRequired(40);
+ BeeMutation.Vis1 = new BeeMutation(BeeSpecies.AWARE, BeeSpecies.STARK, BeeSpecies.VIS, 12)
+ .setAuraNodeRequired(80);
+
+ BeeMutation.Pure = new BeeMutation(BeeSpecies.VIS, Allele.getBaseSpecies("Edenic"), BeeSpecies.PURE, 7)
+ .setAuraNodeTypeRequired(5, EnumNodeType.PURE).setMoonPhaseBonus(MoonPhase.NEW, MoonPhase.NEW, 1.6f);
+ BeeMutation.Flux = new BeeMutation(BeeSpecies.VIS, Allele.getBaseSpecies("Edenic"), BeeSpecies.FLUX, 7)
+ .setAuraNodeTypeRequired(30, EnumNodeType.UNSTABLE).setMoonPhaseBonus(MoonPhase.FULL, MoonPhase.FULL, 1.6f);
+
+ BeeMutation.Node = new BeeMutation(BeeSpecies.VIS, BeeSpecies.VIS, BeeSpecies.NODE, 2)
+ .setAuraNodeRequired(4).setMoonPhaseRestricted(MoonPhase.WANING_HALF, MoonPhase.WANING_HALF);
+ BeeMutation.Node1 = new BeeMutation(BeeSpecies.VIS, BeeSpecies.VIS, BeeSpecies.NODE, 2)
+ .setAuraNodeRequired(4).setMoonPhaseRestricted(MoonPhase.WAXING_HALF, MoonPhase.WAXING_HALF);
+
+ // Now we get into a little bit of branching...
+ if (ThaumicBees.getConfig().ExtraBeesInstalled)
+ {
+ setupMutationsExtraBeesBase();
+ }
+ else
+ {
+ setupMutationsForestryBase();
+ }
+ BeeMutation.Gossamer.setMoonPhaseRestricted(MoonPhase.FULL, MoonPhase.WANING_CRESCENT);
+ BeeMutation.Wispy = new BeeMutation(BeeSpecies.GOSSAMER, Allele.getBaseSpecies("Cultivated"), BeeSpecies.WISPY, 8);
+
+ BeeMutation.Timely = new BeeMutation(Allele.getBaseSpecies("Industrious"), BeeSpecies.ENCHANTED, BeeSpecies.TIMELY, 10);
+ BeeMutation.Lordly = new BeeMutation(BeeSpecies.TIMELY, Allele.getBaseSpecies("Imperial"), BeeSpecies.LORDLY, 9);
+ BeeMutation.Doctoral = new BeeMutation(BeeSpecies.TIMELY, BeeSpecies.LORDLY, BeeSpecies.DOCTORAL, 7);
+ }
+
+ private static void setupMutationsExtraBeesBase()
+ {
+ try
+ {
+ BeeMutation.Skulking = new BeeMutation(BeeSpecies.MYSTERIOUS, Allele.getExtraSpecies("desolate"), BeeSpecies.SKULKING, 10);
+ BeeMutation.Brainy = new BeeMutation(BeeSpecies.SKULKING, Allele.getExtraSpecies("rotten"), BeeSpecies.BRAINY, 12);
+ BeeMutation.Gossamer = new BeeMutation(BeeSpecies.SKULKING, Allele.getExtraSpecies("ancient"), BeeSpecies.GOSSAMER, 10);
+ BeeMutation.Batty = new BeeMutation(BeeSpecies.SKULKING, Allele.getExtraSpecies("rock"), BeeSpecies.BATTY, 14);
+ BeeMutation.Ghastly = new BeeMutation(BeeSpecies.SKULKING, Allele.getExtraSpecies("creeper"), BeeSpecies.GHASTLY, 13);
+ }
+ catch (Exception e)
+ {
+ FMLLog.warning("ThaumicBees encountered an error attempting to register mutations using Extra Bees species! Ensure Extra Bees was able to initialize correctly!");
+ FMLLog.info("Could not use Extra Bees species for mutations. Falling back to Forestry defaults.");
+ setupMutationsForestryBase();
+ }
+ }
+
+ private static void setupMutationsForestryBase()
+ {
+ BeeMutation.Skulking = new BeeMutation(BeeSpecies.MYSTERIOUS, Allele.getBaseSpecies("Modest"), BeeSpecies.SKULKING, 10);
+ BeeMutation.Brainy = new BeeMutation(BeeSpecies.SKULKING, Allele.getBaseSpecies("Sinister"), BeeSpecies.BRAINY, 10);
+ BeeMutation.Gossamer = new BeeMutation(BeeSpecies.SKULKING, BeeSpecies.SUPERNATURAL, BeeSpecies.GOSSAMER, 10);
+ BeeMutation.Batty = new BeeMutation(BeeSpecies.SKULKING, Allele.getBaseSpecies("Frugal"), BeeSpecies.BATTY, 11);
+ BeeMutation.Ghastly = new BeeMutation(BeeSpecies.SKULKING, Allele.getBaseSpecies("Austere"), BeeSpecies.GHASTLY, 13);
+ }
private IAllele parent1;
private IAllele parent2;
private IAllele mutationTemplate[];
private int baseChance;
private boolean isSecret;
-
private boolean isMoonRestricted;
private MoonPhase moonPhaseStart;
private MoonPhase moonPhaseEnd;
diff --git a/thaumicbees_src/thaumicbees/bees/BeeSpecies.java b/thaumicbees_src/thaumicbees/bees/BeeSpecies.java
new file mode 100644
index 0000000..2d20d93
--- /dev/null
+++ b/thaumicbees_src/thaumicbees/bees/BeeSpecies.java
@@ -0,0 +1,380 @@
+package thaumicbees.bees;
+
+import forestry.api.apiculture.*;
+import forestry.api.core.EnumHumidity;
+import forestry.api.core.EnumTemperature;
+import forestry.api.core.ItemInterface;
+import forestry.api.genetics.*;
+import forestry.api.genetics.IClassification.EnumClassLevel;
+
+import java.util.HashMap;
+
+import thaumicbees.compat.ForestryHelper;
+import thaumicbees.compat.ThaumcraftHelper;
+import thaumicbees.item.types.CombType;
+import thaumicbees.item.types.DropType;
+import thaumicbees.item.types.PollenType;
+import thaumicbees.item.types.ResourceType;
+import thaumicbees.main.Config;
+
+import net.minecraft.block.Block;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.stats.Achievement;
+import net.minecraft.world.World;
+
+public enum BeeSpecies implements IAlleleBeeSpecies
+{
+ ESOTERIC("Esoteric", "An unusual crossbreed which seems to have magical properties.|Apinomicon", "secretiore",
+ BeeClassification.ARCANE, 0x001099, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
+ MYSTERIOUS("Mysterious", "These bees have been to the end of the world and back, and their power has grown.|Apinomicon", "mysticus",
+ BeeClassification.ARCANE, 0x762bc2, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
+ ARCANE("Arcane", "\"Their produce is charged with magic.\"|Azanor, Master Thaumaturge", "arcanus",
+ BeeClassification.ARCANE, 0xd242df, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, true),
+ CHARMED("Charmed", "Your first experiments in Thaumaturgical Apiculture have yielded fruit. Buzzing fruit.|Apinomicon", "larvatus",
+ BeeClassification.SUPERNATURAL, 0x48EEEC, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
+ ENCHANTED("Enchanted", "Successive generations of Charmed bees have reinforced their connection to the unknown.|Apinomicon", "cantatus",
+ BeeClassification.SUPERNATURAL, 0x18e726, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
+ SUPERNATURAL("Supernatural", "These bees walk the line between this world and the unseen.|Apinomicon", "coeleste",
+ BeeClassification.SUPERNATURAL, 0x005614, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, true),
+ PUPIL("Pupil", "\"What does that bee want with my paper?!|Yorae, Librarian", "disciplina",
+ BeeClassification.SCHOLARLY, 0xFFFF00, EnumTemperature.NORMAL, EnumHumidity.ARID, false, true),
+ SCHOLARLY("Scholarly", "\"I can't be sure, but I think they might be smarter than me...\"|Yorae, Librarian", "studiosis",
+ BeeClassification.SCHOLARLY, 0x6E0000, EnumTemperature.NORMAL, EnumHumidity.ARID, false, false),
+ SAVANT("Savant", "lim(x^(i / pi)/ log(e * 7 - ln(32/x^-pi))). Solve for honey.|Note found on Yorae's desk", "philologus",
+ BeeClassification.SCHOLARLY, 0x6E1C6D, EnumTemperature.NORMAL, EnumHumidity.ARID, true, false),
+ STARK("Stark", "\"These are unusually attracted to shards. This warrents further investigation.\"|Azanor, Master Thaumaturge", "torridae",
+ BeeClassification.THAUMIC, 0xCCCCCC, 0x999999, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, false),
+ AIR("Aura", "\"They work so fast it's breathtaking.\"|Sengir, Mad Apiarist", "ventosa",
+ BeeClassification.THAUMIC, 0xD9D636, 0xA19E10, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, true),
+ FIRE("Ignis", "Caution: Contents of hive extremely hot.|Warning label on Azanor's apiary", "praefervidus",
+ BeeClassification.THAUMIC, 0xE50B0B, 0x95132F, EnumTemperature.HOT, EnumHumidity.ARID, true, true),
+ WATER("Aqua", "\"I tried to breed them once, but that was a wash.\"|MysteriousAges, Apprentice Thaumaturge", "umidus",
+ BeeClassification.THAUMIC, 0x36CFD9, 0x1054A1, EnumTemperature.NORMAL, EnumHumidity.DAMP, true, true),
+ EARTH("Solum", "\"You're really gonna dig these bees, but watch out - they bore quite easily.\"|MysteriousAges, Apprentice Comedian", "sordida",
+ BeeClassification.THAUMIC, 0x005100, 0x00a000, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, true),
+ INFUSED("Praecantatio", "Beekeeping is magic!|Apinomicon, Preface", "azanorius",
+ BeeClassification.THAUMIC, 0xaa32fc, 0x7A489E, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, true),
+ AWARE("Aware", "\"They can see into your soul!\"|Florastar, Expert Beekeeper", "sensibilis",
+ BeeClassification.VIS, 0xb0092e9, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
+ VIS("Vis", "\"They can feel changes in the aura, but are not yet able to affect it.\"|Azanor, research notes", "arcanus saecula",
+ BeeClassification.VIS, 0x004c99, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
+ PURE("Pure", "\"It's like a bee janitor!\"|MysteriousAges, Thaumaturge", "arcanus puritatem",
+ BeeClassification.VIS, 0xb0092e9, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, false),
+ FLUX("Flux", "\"I thought they would help clean up, but it only makes things worse!\"|Kreicus, Apprentice Thaumaturge", "arcanus labe",
+ BeeClassification.VIS, 0x004c99, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, false),
+ NODE("Node", "Having undergone a freak mutation, these bees now attract magic to them.|Apinomicon", "conficiens",
+ BeeClassification.VIS, 0xFFF266, 0xFF8CE9, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, false),
+ SKULKING("Skulking", "These bees have become xenophobic and bad-tempered. Use caution.|Apinomicon", "malevolens",
+ BeeClassification.SKULKING, 0x524827, 0xe15236, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
+ BRAINY("Brainy", "Their combs may be fetid and foul-smelling, but their intelligence is well-developed.|Apinomicon", "cerebrum",
+ BeeClassification.SKULKING, 0x83FF70, 0xe15236, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
+ GOSSAMER("Gossamer", "As they work, they seem to fade out from light for brief moments.|Apinomicon", "perlucidus",
+ BeeClassification.SKULKING, 0x183f66, 0xe15236, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
+ WISPY("Wispy", "Their language is garbled and unintelligible. It is probable they are speaking to unnatural beings.|Apinomicon", "umbrabilis",
+ BeeClassification.SKULKING, 0x9cb8d5, 0xe15236, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
+ BATTY("Batty", "They tend to attract bats to their hives through means unknown.|Apinomicon", "chiroptera",
+ BeeClassification.SKULKING, 0x27350d, 0xe15236, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false,true),
+ GHASTLY("Ghastly", "\"*sigh*... Really, Myst?\"|Taveria", "pallens",
+ BeeClassification.SKULKING, 0xccccee, 0xbf877c, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
+ TIMELY("Timely", "\"An apiarist is never late. He arrives precicely when he means to!\"|Sengir, Mad Apiarist", "gallifreis",
+ BeeClassification.TIME, 0xC6AF86, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true),
+ LORDLY("Lordly", "", "rassilonis",
+ BeeClassification.TIME, 0xC6AF86, 0x8E0213, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false),
+ DOCTORAL("Doctoral", "\"Would you like a Jelly Baby?\"", "medicus qui",
+ BeeClassification.TIME, 0xDDE5FC, 0x4B6E8C, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, false),
+ ;
+
+ public static void setupBeeSpecies()
+ {
+ ESOTERIC.addProduct(Config.combs.getStackForType(CombType.OCCULT), 20)
+ .setGenome(BeeGenomeManager.getTemplateEsoteric())
+ .register();
+ MYSTERIOUS.addProduct(Config.combs.getStackForType(CombType.OCCULT), 25)
+ .setGenome(BeeGenomeManager.getTemplateMysterious())
+ .register();
+ ARCANE.addProduct(Config.combs.getStackForType(CombType.OCCULT), 30)
+ .addSpecialty(Config.drops.getStackForType(DropType.ENCHANTED, 1), 9)
+ .setGenome(BeeGenomeManager.getTemplateArcane())
+ .register();
+ CHARMED.addProduct(Config.combs.getStackForType(CombType.OTHERWORLDLY), 20)
+ .setGenome(BeeGenomeManager.getTemplateCharmed())
+ .register();
+ ENCHANTED.addProduct(Config.combs.getStackForType(CombType.OTHERWORLDLY), 30)
+ .setGenome(BeeGenomeManager.getTemplateEnchanted())
+ .register();
+ SUPERNATURAL.addProduct(Config.combs.getStackForType(CombType.OTHERWORLDLY), 40)
+ .addSpecialty(Config.pollen.getStackForType(PollenType.UNUSUAL), 8)
+ .setGenome(BeeGenomeManager.getTemplateSupernatural())
+ .register();
+ PUPIL.addProduct(Config.combs.getStackForType(CombType.PAPERY), 20)
+ .setGenome(BeeGenomeManager.getTemplatePupil())
+ .register();
+ SCHOLARLY.addProduct(Config.combs.getStackForType(CombType.PAPERY), 25)
+ .addSpecialty(Config.miscResources.getStackForType(ResourceType.LORE_FRAGMENT), 2)
+ .setGenome(BeeGenomeManager.getTemplateScholarly())
+ .register();
+ SAVANT.addProduct(Config.combs.getStackForType(CombType.PAPERY), 40)
+ .addSpecialty(Config.miscResources.getStackForType(ResourceType.LORE_FRAGMENT), 5)
+ .setGenome(BeeGenomeManager.getTemplateSavant())
+ .register();
+ STARK.addProduct(Config.combs.getStackForType(CombType.STARK), 10)
+ .setGenome(BeeGenomeManager.getTemplateStark())
+ .register();
+ AIR.addProduct(Config.combs.getStackForType(CombType.AIRY), 9)
+ .addSpecialty(new ItemStack(Config.tcNuggets, 1, ThaumcraftHelper.NuggetType.QUICKSILVER.ordinal()), 8)
+ .setGenome(BeeGenomeManager.getTemplateAir())
+ .register();
+ FIRE.addProduct(Config.combs.getStackForType(CombType.FIREY), 15)
+ .addSpecialty(new ItemStack(Item.blazePowder), 8)
+ .setGenome(BeeGenomeManager.getTemplateFire())
+ .register();
+ WATER.addProduct(Config.combs.getStackForType(CombType.WATERY), 20)
+ .addSpecialty(new ItemStack(Block.ice), 1)
+ .addSpecialty(new ItemStack(Config.fPollen, 1, ForestryHelper.Pollen.CRYSTALLINE.ordinal()), 5)
+ .setGenome(BeeGenomeManager.getTemplateWater())
+ .register();
+ EARTH.addProduct(Config.combs.getStackForType(CombType.EARTHY), 30)
+ .addSpecialty(new ItemStack(Config.tcMiscResource, 1, ThaumcraftHelper.MiscResource.AMBER.ordinal()), 6)
+ .setGenome(BeeGenomeManager.getTemplateEarth())
+ .register();
+ INFUSED.addProduct(Config.combs.getStackForType(CombType.INFUSED), 20)
+ .setGenome(BeeGenomeManager.getTemplateInfused())
+ .register();
+ AWARE.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 18)
+ .setGenome(BeeGenomeManager.getTemplateAware())
+ .register();
+ VIS.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 25)
+ .setGenome(BeeGenomeManager.getTemplateVis())
+ .register();
+ PURE.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 20)
+ .setGenome(BeeGenomeManager.getTemplatePure())
+ .register();
+ FLUX.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 20)
+ .setGenome(BeeGenomeManager.getTemplateFlux())
+ .register();
+ NODE.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 20)
+ .setGenome(BeeGenomeManager.getTemplateNode())
+ .register();
+ SKULKING.addProduct(Config.combs.getStackForType(CombType.SKULKING), 10)
+ .setGenome(BeeGenomeManager.getTemplateSkulking())
+ .register();
+ BRAINY.addProduct(Config.combs.getStackForType(CombType.SKULKING), 10)
+ .addProduct(new ItemStack(Item.rottenFlesh), 6)
+ .addSpecialty(new ItemStack(Config.tcMiscResource, 1, ThaumcraftHelper.MiscResource.ZOMBIE_BRAIN.ordinal()), 2)
+ .setGenome(BeeGenomeManager.getTemplateBrainy())
+ .register();
+ GOSSAMER.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.SILKY.ordinal()), 15)
+ .setGenome(BeeGenomeManager.getTemplateGossamer())
+ .register();
+ WISPY.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.SILKY.ordinal()), 22)
+ .addSpecialty(new ItemStack(Config.fCraftingResource, 1, ForestryHelper.CraftingMaterial.SILK_WISP.ordinal()), 4)
+ .setGenome(BeeGenomeManager.getTemplateWispy())
+ .register();
+ BATTY.addProduct(Config.combs.getStackForType(CombType.SKULKING), 10)
+ .addSpecialty(new ItemStack(Item.gunpowder), 4)
+ .setGenome(BeeGenomeManager.getTemplateBatty())
+ .register();
+ GHASTLY.addProduct(Config.combs.getStackForType(CombType.SKULKING), 8)
+ .addSpecialty(new ItemStack(Item.ghastTear), 2)
+ .setGenome(BeeGenomeManager.getTemplateGhastly())
+ .register();
+ TIMELY.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.DRIPPING.ordinal()), 25)
+ .setGenome(BeeGenomeManager.getTemplateTimely())
+ .register();
+ LORDLY.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.MYSTERIOUS.ordinal()), 30)
+ .setGenome(BeeGenomeManager.getTemplateLordly())
+ .register();
+ DOCTORAL.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.MYSTERIOUS.ordinal()), 35)
+ .addSpecialty(new ItemStack(Config.jellyBaby), 5)
+ .setGenome(BeeGenomeManager.getTemplateDoctoral())
+ .register();
+ }
+
+ private String name;
+ private String descripton;
+ private String binomial;
+ private String authority;
+ private int bodyType;
+ private int primaryColour;
+ private int secondaryColour;
+ private EnumTemperature temperature;
+ private EnumHumidity humidity;
+ private boolean hasEffect;
+ private boolean isSecret;
+ private boolean isCounted;
+ private IClassification branch;
+ private HashMap products;
+ private HashMap specialty;
+ private IAllele genomeTemplate[];
+ private String uid;
+ private boolean dominant;
+
+ private BeeSpecies(String speciesName, String speciesDescription, String genusName, IClassification classification, int firstColour, EnumTemperature preferredTemp, EnumHumidity preferredHumidity, boolean hasGlowEffect, boolean isSpeciesDominant)
+ {
+ this(speciesName, speciesDescription, genusName, classification, 0, firstColour, 0xFF6E0D, preferredTemp, preferredHumidity, hasGlowEffect, true, true, isSpeciesDominant);
+ }
+
+ private BeeSpecies(String speciesName, String speciesDescription, String genusName, IClassification classification, int firstColour, int secondColour, EnumTemperature preferredTemp, EnumHumidity preferredHumidity, boolean hasGlowEffect, boolean isSpeciesDominant)
+ {
+ this(speciesName, speciesDescription, genusName, classification, 0, firstColour, secondColour, preferredTemp, preferredHumidity, hasGlowEffect, true, true, isSpeciesDominant);
+ }
+
+ private BeeSpecies(String speciesName, String speciesDescription, String genusName, IClassification classification, int body, int firstColour, int secondColour, EnumTemperature preferredTemp, EnumHumidity preferredHumidity, boolean hasGlowEffect, boolean isSpeciesSecret, boolean isSpeciesCounted, boolean isSpeciesDominant)
+ {
+ this.uid = "thaumicbees.species" + speciesName;
+ this.dominant = isSpeciesDominant;
+ AlleleManager.alleleRegistry.registerAllele(this);
+ name = speciesName;
+ descripton = speciesDescription;
+ binomial = genusName;
+ authority = "MysteriousAges";
+ bodyType = body;
+ primaryColour = firstColour;
+ secondaryColour = secondColour;
+ temperature = preferredTemp;
+ humidity = preferredHumidity;
+ hasEffect = hasGlowEffect;
+ isSecret = isSpeciesSecret;
+ isCounted = isSpeciesCounted;
+ products = new HashMap();
+ specialty = new HashMap();
+ this.branch = classification;
+ this.branch.addMemberSpecies(this);
+ }
+
+ public BeeSpecies setGenome(IAllele genome[])
+ {
+ genomeTemplate = genome;
+ return this;
+ }
+
+ public IAllele[] getGenome()
+ {
+ return genomeTemplate;
+ }
+
+ public BeeSpecies addProduct(ItemStack produce, int percentChance)
+ {
+ products.put(produce, Integer.valueOf(percentChance));
+ return this;
+ }
+
+ public BeeSpecies addSpecialty(ItemStack produce, int percentChance)
+ {
+ specialty.put(produce, Integer.valueOf(percentChance));
+ return this;
+ }
+
+ public ItemStack getBeeItem(EnumBeeType beeType)
+ {
+ return BeeManager.beeInterface.getBeeStack(BeeManager.beeInterface.getBee(null, BeeManager.beeInterface.templateAsGenome(genomeTemplate)), beeType);
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public String getDescription()
+ {
+ return descripton;
+ }
+
+ public int getBodyType()
+ {
+ return bodyType;
+ }
+
+ public int getPrimaryColor()
+ {
+ return primaryColour;
+ }
+
+ public int getSecondaryColor()
+ {
+ return secondaryColour;
+ }
+
+ public EnumTemperature getTemperature()
+ {
+ return temperature;
+ }
+
+ public EnumHumidity getHumidity()
+ {
+ return humidity;
+ }
+
+ public boolean hasEffect()
+ {
+ return hasEffect;
+ }
+
+ public boolean isSecret()
+ {
+ return isSecret;
+ }
+
+ public boolean isCounted()
+ {
+ return isCounted;
+ }
+
+ public String getBinomial()
+ {
+ return binomial;
+ }
+
+ public String getAuthority()
+ {
+ return authority;
+ }
+
+ public IClassification getBranch()
+ {
+ return this.branch;
+ }
+
+ public HashMap getProducts()
+ {
+ return products;
+ }
+
+ public HashMap getSpecialty()
+ {
+ return specialty;
+ }
+
+ @Override
+ public String getUID()
+ {
+ return this.uid;
+ }
+
+ @Override
+ public boolean isDominant()
+ {
+ return this.dominant;
+ }
+
+ public boolean isJubilant(World world, int biomeid, int x, int i, int j)
+ {
+ return true;
+ }
+
+ private BeeSpecies register()
+ {
+ BeeManager.breedingManager.registerBeeTemplate(this.getGenome());
+ return this;
+ }
+
+ /**
+ * @deprecated Method getAchievement is deprecated
+ */
+
+ public Achievement getAchievement()
+ {
+ return null;
+ }
+}
diff --git a/thaumicbees_src/thaumicbees/bees/genetics/EffectData.java b/thaumicbees_src/thaumicbees/bees/EffectData.java
similarity index 97%
rename from thaumicbees_src/thaumicbees/bees/genetics/EffectData.java
rename to thaumicbees_src/thaumicbees/bees/EffectData.java
index 8a81b40..16480d1 100644
--- a/thaumicbees_src/thaumicbees/bees/genetics/EffectData.java
+++ b/thaumicbees_src/thaumicbees/bees/EffectData.java
@@ -1,4 +1,4 @@
-package thaumicbees.bees.genetics;
+package thaumicbees.bees;
import net.minecraft.nbt.NBTTagCompound;
import forestry.api.genetics.IEffectData;
diff --git a/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderAuraNode.java b/thaumicbees_src/thaumicbees/bees/FlowerProviderAuraNode.java
similarity index 98%
rename from thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderAuraNode.java
rename to thaumicbees_src/thaumicbees/bees/FlowerProviderAuraNode.java
index d822b1f..b2530fc 100644
--- a/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderAuraNode.java
+++ b/thaumicbees_src/thaumicbees/bees/FlowerProviderAuraNode.java
@@ -1,4 +1,4 @@
-package thaumicbees.bees.genetics;
+package thaumicbees.bees;
import thaumcraft.api.AuraNode;
import thaumcraft.api.ThaumcraftApi;
diff --git a/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderAuraNodeFlux.java b/thaumicbees_src/thaumicbees/bees/FlowerProviderAuraNodeFlux.java
similarity index 96%
rename from thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderAuraNodeFlux.java
rename to thaumicbees_src/thaumicbees/bees/FlowerProviderAuraNodeFlux.java
index 9a3fe7f..cc4c106 100644
--- a/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderAuraNodeFlux.java
+++ b/thaumicbees_src/thaumicbees/bees/FlowerProviderAuraNodeFlux.java
@@ -1,4 +1,4 @@
-package thaumicbees.bees.genetics;
+package thaumicbees.bees;
import thaumcraft.api.EnumTag;
import thaumcraft.api.ObjectTags;
diff --git a/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderAuraNodePurify.java b/thaumicbees_src/thaumicbees/bees/FlowerProviderAuraNodePurify.java
similarity index 97%
rename from thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderAuraNodePurify.java
rename to thaumicbees_src/thaumicbees/bees/FlowerProviderAuraNodePurify.java
index ccbe115..64027fd 100644
--- a/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderAuraNodePurify.java
+++ b/thaumicbees_src/thaumicbees/bees/FlowerProviderAuraNodePurify.java
@@ -1,4 +1,4 @@
-package thaumicbees.bees.genetics;
+package thaumicbees.bees;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
diff --git a/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderBookshelf.java b/thaumicbees_src/thaumicbees/bees/FlowerProviderBookshelf.java
similarity index 97%
rename from thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderBookshelf.java
rename to thaumicbees_src/thaumicbees/bees/FlowerProviderBookshelf.java
index e5875a6..3734104 100644
--- a/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderBookshelf.java
+++ b/thaumicbees_src/thaumicbees/bees/FlowerProviderBookshelf.java
@@ -1,4 +1,4 @@
-package thaumicbees.bees.genetics;
+package thaumicbees.bees;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
diff --git a/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderThaumcraftFlower.java b/thaumicbees_src/thaumicbees/bees/FlowerProviderThaumcraftFlower.java
similarity index 98%
rename from thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderThaumcraftFlower.java
rename to thaumicbees_src/thaumicbees/bees/FlowerProviderThaumcraftFlower.java
index b42e885..9e3789b 100644
--- a/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderThaumcraftFlower.java
+++ b/thaumicbees_src/thaumicbees/bees/FlowerProviderThaumcraftFlower.java
@@ -1,4 +1,4 @@
-package thaumicbees.bees.genetics;
+package thaumicbees.bees;
import thaumicbees.main.Config;
import net.minecraft.block.Block;
diff --git a/thaumicbees_src/thaumicbees/bees/TBBeeManager.java b/thaumicbees_src/thaumicbees/bees/TBBeeManager.java
deleted file mode 100644
index 50dbec0..0000000
--- a/thaumicbees_src/thaumicbees/bees/TBBeeManager.java
+++ /dev/null
@@ -1,426 +0,0 @@
-package thaumicbees.bees;
-
-import cpw.mods.fml.common.network.IGuiHandler;
-import forestry.api.apiculture.*;
-import forestry.api.core.*;
-import forestry.api.genetics.AlleleManager;
-import forestry.api.genetics.IClassification;
-import forestry.api.genetics.IClassification.EnumClassLevel;
-
-import java.lang.reflect.Field;
-import java.util.Random;
-
-import thaumcraft.api.EnumNodeType;
-import thaumcraft.api.EnumTag;
-import thaumcraft.api.ObjectTags;
-import thaumcraft.api.ThaumcraftApi;
-import thaumicbees.bees.genetics.Allele;
-import thaumicbees.bees.genetics.AlleleEffectAuraNodeGrow;
-import thaumicbees.bees.genetics.AlleleEffectCure;
-import thaumicbees.bees.genetics.AlleleEffectPotion;
-import thaumicbees.bees.genetics.AlleleEffectSpawnMob;
-import thaumicbees.bees.genetics.AlleleEffectSpawnWisp;
-import thaumicbees.bees.genetics.AlleleFlower;
-import thaumicbees.bees.genetics.AlleleInteger;
-import thaumicbees.bees.genetics.BeeMutation;
-import thaumicbees.bees.genetics.BeeSpecies;
-import thaumicbees.bees.genetics.FlowerProviderAuraNode;
-import thaumicbees.bees.genetics.FlowerProviderAuraNodeFlux;
-import thaumicbees.bees.genetics.FlowerProviderAuraNodePurify;
-import thaumicbees.bees.genetics.FlowerProviderBookshelf;
-import thaumicbees.bees.genetics.FlowerProviderThaumcraftFlower;
-import thaumicbees.compat.CompatabilityManager;
-import thaumicbees.compat.ThaumcraftHelper;
-import thaumicbees.item.ItemComb;
-import thaumicbees.item.types.CombType;
-import thaumicbees.item.types.DropType;
-import thaumicbees.item.types.PollenType;
-import thaumicbees.item.types.ResourceType;
-import thaumicbees.main.Config;
-import thaumicbees.main.ThaumicBees;
-import thaumicbees.main.utils.MoonPhase;
-
-import net.minecraft.block.Block;
-import net.minecraft.command.ICommand;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.potion.Potion;
-import net.minecraft.world.World;
-
-public class TBBeeManager
-{
- private static int defaultBodyColour = 0xFF6E0D;
- private static int malevolentBodyColour = 0xe15236;
- private static boolean hideSpecies = true;
-
- public void doInit()
- {
- try
- {
- Field f = Class.forName("forestry.core.config.Config").getField("enableParticleFX");
- ThaumicBees.getConfig().DrawParticleEffects = f.getBoolean(null);
-
- f = Class.forName("forestry.core.config.Defaults").getField("TEXTURE_PARTICLES_BEE");
- thaumicbees.main.CommonProxy.FORESTRY_GFX_BEEEFFECTS = (String)f.get(null);
- }
- catch (Exception e)
- {
- // Could not get Forestry config value.
- }
- }
-
- public void postInit()
- {
- setupAdditionalAlleles();
- setupBeeSpecies();
- setupBeeMutations();
- }
-
- private void setupAdditionalAlleles()
- {
- Allele.fertilityHighDominant = new AlleleInteger("fertilityHighDominant", 3, true);
-
- Allele.flowerBookshelf = new AlleleFlower("flowerBookshelf", new FlowerProviderBookshelf(), true);
- Allele.flowerThaumcraft = new AlleleFlower("flowerThaumcraftPlant", new FlowerProviderThaumcraftFlower(), false);
- Allele.flowerAuraNode = new AlleleFlower("flowerAuraNode", new FlowerProviderAuraNode(), true);
- Allele.flowerNodePurify = new AlleleFlower("flowerAuraNodePurify", new FlowerProviderAuraNodePurify(), false);
- Allele.flowerNodeFluxify = new AlleleFlower("flowerAuraNodeFlux", new FlowerProviderAuraNodeFlux(), false);
-
- Allele.cleansingEffect = new AlleleEffectCure("effectCurative", false);
- Allele.digSpeed = new AlleleEffectPotion("effectDigSpeed", "Mining", Potion.digSpeed, 7, false);
- Allele.moveSpeed = new AlleleEffectPotion("effectMoveSpeed", "Swiftness", Potion.moveSpeed, 5, false);
-
- Allele.nodeGen = new AlleleEffectAuraNodeGrow("effectNodeGeneration", "Nodeify", false, 800);
-
- Allele.spawnBrainyZombie = new AlleleEffectSpawnMob("effectBrainy", false, "Brainy", ThaumcraftHelper.Entity.BRAINY_ZOMBIE.entityID);
- Allele.spawnBrainyZombie.setAggrosPlayerOnSpawn().setThrottle(800).setSpawnsOnPlayerNear(null).setMaxMobsInSpawnZone(2);
-
- Allele.spawnBats = new AlleleEffectSpawnMob("effectBatty", false, "Batty", ThaumcraftHelper.Entity.FIREBAT.entityID);
- Allele.spawnBats.setThrottle(300).setSpawnsOnPlayerNear("Bat");
-
- Allele.spawnWisp = new AlleleEffectSpawnWisp("effectWispy", false, "Wispy", ThaumcraftHelper.Entity.WISP.entityID);
- Allele.spawnWisp.setThrottle(1800);
-
- Allele.spawnGhast = new AlleleEffectSpawnMob("Ghast", false, "Ghastly", "Ghast");
- Allele.spawnGhast.setThrottle(2000).setChanceToSpawn(20).setMaxMobsInSpawnZone(1);
- }
-
- private void setupBeeSpecies()
- {
- IBreedingManager breedingMgr = BeeManager.breedingManager;
- ItemStack forestryItem;
-
- IClassification familyBee = AlleleManager.alleleRegistry.getClassification("family.apidae");
- IClassification occult = AlleleManager.alleleRegistry.createAndRegisterClassification(EnumClassLevel.GENUS, "occult", "Arcanus");
- occult.setParent(familyBee);
-
- Allele.Esoteric = new BeeSpecies("Esoteric", "An unusual crossbreed which seems to have magical properties.|Apinomicon",
- "secretiore", occult, 0,
- 0x001099, 0xcc763c, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- false, hideSpecies, true, true);
- Allele.Esoteric.addProduct(Config.combs.getStackForType(CombType.OCCULT), 20);
- Allele.Esoteric.setGenome(BeeGenomeManager.getTemplateEsoteric());
- occult.addMemberSpecies(Allele.Esoteric);
- breedingMgr.registerBeeTemplate(Allele.Esoteric.getGenome());
-
- Allele.Mysterious = new BeeSpecies("Mysterious", "These bees have been to the end of the world and back, and their power has grown.|Apinomicon",
- "mysticus", occult, 0,
- 0x762bc2, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- false, hideSpecies, true, true);
- Allele.Mysterious.addProduct(Config.combs.getStackForType(CombType.OCCULT), 25);
- Allele.Mysterious.setGenome(BeeGenomeManager.getTemplateMysterious());
- occult.addMemberSpecies(Allele.Mysterious);
- breedingMgr.registerBeeTemplate(Allele.Mysterious.getGenome());
-
- Allele.Arcane = new BeeSpecies("Arcane", "\"Their produce is charged with magic.\"|Azanor, Master Thaumaturge",
- "arcanus", occult, 0,
- 0xd242df, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- true, hideSpecies, true, true);
- Allele.Arcane.addProduct(Config.combs.getStackForType(CombType.OCCULT), 30);
- Allele.Arcane.addSpecialty(Config.drops.getStackForType(DropType.ENCHANTED, 1), 9);
- Allele.Arcane.setGenome(BeeGenomeManager.getTemplateArcane());
- occult.addMemberSpecies(Allele.Arcane);
- breedingMgr.registerBeeTemplate(Allele.Arcane.getGenome());
-
- IClassification otherworldly = AlleleManager.alleleRegistry.createAndRegisterClassification(EnumClassLevel.GENUS, "coeleste", "Coeleste");
- otherworldly.setParent(familyBee);
-
- Allele.Charmed = new BeeSpecies("Charmed", "Your first experiments in Thaumaturgical Apiculture have yielded fruit. Buzzing fruit.|Apinomicon",
- "larvatus", otherworldly, 0,
- 0x48EEEC, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- false, hideSpecies, true, true);
- Allele.Charmed.addProduct(Config.combs.getStackForType(CombType.OTHERWORLDLY), 20);
- Allele.Charmed.setGenome(BeeGenomeManager.getTemplateCharmed());
- otherworldly.addMemberSpecies(Allele.Charmed);
- breedingMgr.registerBeeTemplate(Allele.Charmed.getGenome());
-
- Allele.Enchanted = new BeeSpecies("Enchanted", "Successive generations of Charmed bees have reinforced their connection to the unknown.|Apinomicon",
- "cantatus", otherworldly, 0,
- 0x18e726, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- false, hideSpecies, true, true);
- Allele.Enchanted.addProduct(Config.combs.getStackForType(CombType.OTHERWORLDLY), 30);
- Allele.Enchanted.setGenome(BeeGenomeManager.getTemplateEnchanted());
- otherworldly.addMemberSpecies(Allele.Enchanted);
- breedingMgr.registerBeeTemplate(Allele.Enchanted.getGenome());
-
- Allele.Supernatural = new BeeSpecies("Supernatural", "These bees walk the line between this world and the unseen.|Apinomicon",
- "coeleste", otherworldly, 0,
- 0x005614, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- true, hideSpecies, true, true);
- Allele.Supernatural.addProduct(Config.combs.getStackForType(CombType.OTHERWORLDLY), 40);
- Allele.Supernatural.addSpecialty(Config.pollen.getStackForType(PollenType.UNUSUAL), 8);
- Allele.Supernatural.setGenome(BeeGenomeManager.getTemplateSupernatural());
- otherworldly.addMemberSpecies(Allele.Supernatural);
- breedingMgr.registerBeeTemplate(Allele.Supernatural.getGenome());
-
- IClassification learned = AlleleManager.alleleRegistry.createAndRegisterClassification(EnumClassLevel.GENUS, "docto", "Docto");
- learned.setParent(familyBee);
-
- Allele.Pupil = new BeeSpecies("Pupil", "\"What does that bee want with my paper?!|Yorae, Librarian",
- "disciplina", learned, 0,
- 0xFFFF00, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.ARID,
- false, hideSpecies, true, true);
- Allele.Pupil.addProduct(Config.combs.getStackForType(CombType.PAPERY), 20);
- Allele.Pupil.setGenome(BeeGenomeManager.getTemplatePupil());
- learned.addMemberSpecies(Allele.Pupil);
- breedingMgr.registerBeeTemplate(Allele.Pupil.getGenome());
-
- Allele.Scholarly = new BeeSpecies("Scholarly", "\"I can't be sure, but I think they might be smarter than me...\"|Yorae, Librarian",
- "studiosis", learned, 0,
- 0x6E0000, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.ARID,
- false, hideSpecies, true, false);
- Allele.Scholarly.addProduct(Config.combs.getStackForType(CombType.PAPERY), 25);
- Allele.Scholarly.addSpecialty(Config.miscResources.getStackForType(ResourceType.LORE_FRAGMENT), 2);
- Allele.Scholarly.setGenome(BeeGenomeManager.getTemplateScholarly());
- learned.addMemberSpecies(Allele.Scholarly);
- breedingMgr.registerBeeTemplate(Allele.Scholarly.getGenome());
-
- Allele.Savant = new BeeSpecies("Savant", "lim(x^(i / pi)/ log(e * 7 - ln(32/x^-pi))). Solve for honey.|Note found on Yorae's desk",
- "philologus", learned, 0,
- 0x6E1C6D, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.ARID,
- true, hideSpecies, true, false);
- Allele.Savant.addProduct(Config.combs.getStackForType(CombType.PAPERY), 40);
- Allele.Savant.addSpecialty(Config.miscResources.getStackForType(ResourceType.LORE_FRAGMENT), 5);
- Allele.Savant.setGenome(BeeGenomeManager.getTemplateSavant());
- learned.addMemberSpecies(Allele.Savant);
- breedingMgr.registerBeeTemplate(Allele.Savant.getGenome());
-
- IClassification magical = AlleleManager.alleleRegistry.createAndRegisterClassification(EnumClassLevel.GENUS, "thaumis", "Thaumis");
- magical.setParent(familyBee);
-
- Allele.Stark = new BeeSpecies("Stark", "\"These are unusually attracted to shards. This warrents further investigation.\"|Azanor, Master Thaumaturge",
- "torridae", magical, 0,
- 0xCCCCCC, 0x999999, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- true, hideSpecies, true, false);
- Allele.Stark.addProduct(Config.combs.getStackForType(CombType.STARK), 10);
- Allele.Stark.setGenome(BeeGenomeManager.getTemplateStark());
- breedingMgr.registerBeeTemplate(Allele.Stark.getGenome());
-
-
- Allele.Air = new BeeSpecies("Aura", "\"They work so fast it's breathtaking.\"|Sengir, Mad Apiarist",
- "ventosa", magical, 0,
- 0xD9D636, 0xA19E10, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- true, hideSpecies, true, true);
- Allele.Air.addProduct(Config.combs.getStackForType(CombType.AIRY), 9);
- Allele.Air.addSpecialty(new ItemStack(Config.tcNuggets, 1, ThaumcraftHelper.NuggetType.QUICKSILVER.ordinal()), 8);
- Allele.Air.setGenome(BeeGenomeManager.getTemplateAir());
- breedingMgr.registerBeeTemplate(Allele.Air.getGenome());
-
- Allele.Fire = new BeeSpecies("Ignis", "Caution: Contents of hive extremely hot.|Warning label on Azanor's apiary",
- "praefervidus", magical, 0,
- 0xE50B0B, 0x95132F, EnumTemperature.HOT, EnumHumidity.ARID,
- true, hideSpecies, true, true);
- Allele.Fire.addProduct(Config.combs.getStackForType(CombType.FIREY), 15);
- Allele.Fire.addSpecialty(new ItemStack(Item.blazePowder), 8);
- Allele.Fire.setGenome(BeeGenomeManager.getTemplateFire());
- breedingMgr.registerBeeTemplate(Allele.Fire.getGenome());
-
- // Grab the Crystalline Pollen
- (forestryItem = ItemInterface.getItem("pollen")).setItemDamage(1);
-
- Allele.Water = new BeeSpecies("Aqua", "\"I tried to breed them once, but that was a wash.\"|MysteriousAges, Apprentice Thaumaturge",
- "umidus", magical, 0,
- 0x36CFD9, 0x1054A1, EnumTemperature.NORMAL, EnumHumidity.DAMP,
- true, hideSpecies, true, true);
- Allele.Water.addProduct(Config.combs.getStackForType(CombType.WATERY), 20);
- Allele.Water.addSpecialty(new ItemStack(Block.ice), 1).addSpecialty(forestryItem, 5);
- Allele.Water.setGenome(BeeGenomeManager.getTemplateWater());
- breedingMgr.registerBeeTemplate(Allele.Water.getGenome());
-
- Allele.Earth = new BeeSpecies("Solum", "\"You're really gonna dig these bees, but watch out - they bore quite easily.\"|MysteriousAges, Apprentice Comedian",
- "sordida", magical, 0,
- 0x005100, 0x00a000, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- true, hideSpecies, true, true);
- Allele.Earth.addProduct(Config.combs.getStackForType(CombType.EARTHY), 30);
- Allele.Earth.addSpecialty(new ItemStack(Config.tcMiscResource, 1, ThaumcraftHelper.MiscResource.AMBER.ordinal()), 6);
- Allele.Earth.setGenome(BeeGenomeManager.getTemplateEarth());
- breedingMgr.registerBeeTemplate(Allele.Earth.getGenome());
-
- Allele.Infused = new BeeSpecies("Praecantatio", "Beekeeping is magic!|Apinomicon, Preface",
- "azanorius", magical, 0,
- 0xaa32fc, 0x7A489E, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- true, hideSpecies, true, true);
- Allele.Infused.addProduct(Config.combs.getStackForType(CombType.INFUSED), 20);
- Allele.Infused.setGenome(BeeGenomeManager.getTemplateInfused());
- breedingMgr.registerBeeTemplate(Allele.Infused.getGenome());
-
- IClassification aware = AlleleManager.alleleRegistry.createAndRegisterClassification(EnumClassLevel.GENUS, "patibilis", "Patibilis");
- aware.setParent(familyBee);
-
- Allele.Aware = new BeeSpecies("Aware", "\"They can see into your soul!\"|Florastar, Expert Beekeeper",
- "sensibilis", aware, 0,
- 0xb0092e9, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- false, hideSpecies, true, false);
- Allele.Aware.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 18);
- Allele.Aware.setGenome(BeeGenomeManager.getTemplateAware());
- breedingMgr.registerBeeTemplate(Allele.Aware.getGenome());
-
- Allele.Vis = new BeeSpecies("Vis", "\"They can feel changes in the aura, but are not yet able to affect it.\"|Azanor, research notes",
- "arcanus saecula", aware, 0,
- 0x004c99, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- false, hideSpecies, true, false);
- Allele.Vis.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 25);
- Allele.Vis.setGenome(BeeGenomeManager.getTemplateVis());
- breedingMgr.registerBeeTemplate(Allele.Vis.getGenome());
-
- Allele.Pure = new BeeSpecies("Pure", "\"It's like a bee janitor!\"|MysteriousAges, Thaumaturge",
- "arcanus puritatem", aware, 0,
- 0xb0092e9, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- true, hideSpecies, true, false);
- Allele.Pure.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 20);
- Allele.Pure.setGenome(BeeGenomeManager.getTemplatePure());
- breedingMgr.registerBeeTemplate(Allele.Pure.getGenome());
-
- Allele.Flux = new BeeSpecies("Flux", "\"I thought they would help clean up, but it only makes things worse!\"|Kreicus, Apprentice Thaumaturge",
- "arcanus labe", aware, 0,
- 0x004c99, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- true, hideSpecies, true, false);
- Allele.Flux.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 20);
- Allele.Flux.setGenome(BeeGenomeManager.getTemplateFlux());
- breedingMgr.registerBeeTemplate(Allele.Flux.getGenome());
-
- Allele.Node = new BeeSpecies("Node", "Having undergone a freak mutation, these bees now attract magic to them.|Apinomicon",
- "conficiens", aware, 0,
- 0xFFF266, 0xFF8CE9, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- true, hideSpecies, true, false);
- Allele.Node.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 20);
- Allele.Node.setGenome(BeeGenomeManager.getTemplateNode());
- breedingMgr.registerBeeTemplate(Allele.Node.getGenome());
-
- IClassification malevolent = AlleleManager.alleleRegistry.createAndRegisterClassification(EnumClassLevel.GENUS, "malevolens", "Malevolens");
- malevolent.setParent(familyBee);
-
- Allele.Skulking = new BeeSpecies("Skulking", "These bees have become xenophobic and bad-tempered. Use caution.|Apinomicon",
- "malevolens", malevolent, 0,
- 0x524827, malevolentBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- false, hideSpecies, true, true);
- Allele.Skulking.addProduct(Config.combs.getStackForType(CombType.SKULKING), 10);
- Allele.Skulking.setGenome(BeeGenomeManager.getTemplateSkulking());
- breedingMgr.registerBeeTemplate(Allele.Skulking.getGenome());
-
- Allele.Brainy = new BeeSpecies("Brainy", "Their combs may be fetid and foul-smelling, but their intelligence is well-developed.|Apinomicon",
- "cerebrum", malevolent, 0,
- 0x83FF70, malevolentBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- false, hideSpecies, true, true);
- Allele.Brainy.addProduct(Config.combs.getStackForType(CombType.SKULKING), 10).addProduct(new ItemStack(Item.rottenFlesh), 6);
- Allele.Brainy.addSpecialty(new ItemStack(Config.tcMiscResource, 1, ThaumcraftHelper.MiscResource.ZOMBIE_BRAIN.ordinal()), 2);
- Allele.Brainy.setGenome(BeeGenomeManager.getTemplateBrainy());
- breedingMgr.registerBeeTemplate(Allele.Brainy.getGenome());
-
- // Grab the Silky Comb.
- (forestryItem = ItemInterface.getItem("beeComb")).setItemDamage(6);
-
- Allele.Gossamer = new BeeSpecies("Gossamer", "As they work, they seem to fade out from light for brief moments.|Apinomicon",
- "perlucidus", malevolent, 0,
- 0x183f66, malevolentBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- false, hideSpecies, true, true);
- Allele.Gossamer.addProduct(forestryItem, 15);
- Allele.Gossamer.setGenome(BeeGenomeManager.getTemplateGossamer());
- breedingMgr.registerBeeTemplate(Allele.Gossamer.getGenome());
-
- Allele.Wispy = new BeeSpecies("Wispy", "Their language is garbled and unintelligible. It is probable they are speaking to unnatural beings.|Apinomicon",
- "umbrabilis", malevolent, 0,
- 0x9cb8d5, malevolentBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- false, hideSpecies, true, false);
- Allele.Wispy.addProduct(forestryItem, 22);
- // Get silk wisp
- (forestryItem = ItemInterface.getItem("craftingMaterial")).setItemDamage(2);
- Allele.Wispy.addSpecialty(forestryItem, 4);
- Allele.Wispy.setGenome(BeeGenomeManager.getTemplateWispy());
- breedingMgr.registerBeeTemplate(Allele.Wispy.getGenome());
-
- Allele.Batty = new BeeSpecies("Batty", "They tend to attract bats to their hives through means unknown.|Apinomicon",
- "chiroptera", malevolent, 0,
- 0x27350d, malevolentBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- false, hideSpecies, true, true);
- Allele.Batty.addProduct(Config.combs.getStackForType(CombType.SKULKING), 10);
- Allele.Batty.addSpecialty(new ItemStack(Item.gunpowder), 4);
- Allele.Batty.setGenome(BeeGenomeManager.getTemplateBatty());
- breedingMgr.registerBeeTemplate(Allele.Batty.getGenome());
-
- Allele.Ghastly = new BeeSpecies("Ghastly", "\"*sigh*... Really, Myst?\"|Taveria",
- "pallens", malevolent, 0,
- 0xccccee, 0xbf877c, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
- false, hideSpecies, true, false);
- Allele.Ghastly.addProduct(Config.combs.getStackForType(CombType.SKULKING), 8);
- Allele.Ghastly.addSpecialty(new ItemStack(Item.ghastTear), 2);
- Allele.Ghastly.setGenome(BeeGenomeManager.getTemplateGhastly());
- breedingMgr.registerBeeTemplate(Allele.Ghastly.getGenome());
- }
-
- private void setupBeeMutations()
- {
- // Mutations are registered with the BreedingManager in their constructor.
-
- BeeMutation.Esoteric = new BeeMutation(Allele.getBaseSpecies("Imperial"), Allele.getBaseSpecies("Demonic"), Allele.Esoteric, 10);
- BeeMutation.Esoteric1 = new BeeMutation(Allele.getBaseSpecies("Heroic"), Allele.getBaseSpecies("Demonic"), Allele.Esoteric, 25);
- BeeMutation.Mysterious = new BeeMutation(Allele.Esoteric, Allele.getBaseSpecies("Ended"), Allele.Mysterious, 10);
- BeeMutation.Arcane = new BeeMutation(Allele.Esoteric, Allele.Mysterious, Allele.Arcane, 8)
- .setMoonPhaseBonus(MoonPhase.WANING_CRESCENT, MoonPhase.WAXING_CRESCENT, 1.5f);
- BeeMutation.Charmed = new BeeMutation(Allele.getBaseSpecies("Diligent"), Allele.getBaseSpecies("Valiant"), Allele.Charmed, 20);
- BeeMutation.Enchanted = new BeeMutation(Allele.Charmed, Allele.getBaseSpecies("Valiant"), Allele.Enchanted, 8);
- BeeMutation.Supernatural = new BeeMutation(Allele.Charmed, Allele.Enchanted, Allele.Supernatural, 10)
- .setMoonPhaseBonus(MoonPhase.WAXING_GIBBOUS, MoonPhase.WANING_GIBBOUS, 1.5f);
- BeeMutation.Pupil = new BeeMutation(Allele.Arcane, Allele.Enchanted, Allele.Pupil, 10);
- BeeMutation.Scholarly = new BeeMutation(Allele.Pupil, Allele.Arcane, Allele.Scholarly, 8);
- BeeMutation.Savant = new BeeMutation(Allele.Pupil, Allele.Scholarly, Allele.Savant, 6);
- BeeMutation.Stark = new BeeMutation(Allele.Arcane, Allele.Supernatural, Allele.Stark, 8);
-
- BeeMutation.Aware = new BeeMutation(Allele.getBaseSpecies("Demonic"), Allele.getBaseSpecies("Edenic"), Allele.Aware, 12);
- BeeMutation.Vis = new BeeMutation(Allele.Aware, Allele.Arcane, Allele.Vis, 9)
- .setAuraNodeRequired(40);
- BeeMutation.Vis1 = new BeeMutation(Allele.Aware, Allele.Stark, Allele.Vis, 12)
- .setAuraNodeRequired(80);
-
- BeeMutation.Pure = new BeeMutation(Allele.Vis, Allele.getBaseSpecies("Edenic"), Allele.Pure, 7)
- .setAuraNodeTypeRequired(5, EnumNodeType.PURE).setMoonPhaseBonus(MoonPhase.NEW, MoonPhase.NEW, 1.6f);
- BeeMutation.Flux = new BeeMutation(Allele.Vis, Allele.getBaseSpecies("Edenic"), Allele.Flux, 7)
- .setAuraNodeTypeRequired(30, EnumNodeType.UNSTABLE).setMoonPhaseBonus(MoonPhase.FULL, MoonPhase.FULL, 1.6f);
-
- BeeMutation.Node = new BeeMutation(Allele.Vis, Allele.Vis, Allele.Node, 2)
- .setAuraNodeRequired(4).setMoonPhaseRestricted(MoonPhase.WANING_HALF, MoonPhase.WANING_HALF);
- BeeMutation.Node1 = new BeeMutation(Allele.Vis, Allele.Vis, Allele.Node, 2)
- .setAuraNodeRequired(4).setMoonPhaseRestricted(MoonPhase.WAXING_HALF, MoonPhase.WAXING_HALF);
-
- // Now we get into a little bit of branching...
- if (ThaumicBees.getConfig().ExtraBeesInstalled)
- {
- BeeMutation.Skulking = new BeeMutation(Allele.Mysterious, Allele.getExtraSpecies("desolate"), Allele.Skulking, 10);
- BeeMutation.Brainy = new BeeMutation(Allele.Skulking, Allele.getExtraSpecies("rotten"), Allele.Brainy, 12);
- BeeMutation.Gossamer = new BeeMutation(Allele.Skulking, Allele.getExtraSpecies("ancient"), Allele.Gossamer, 10);
- BeeMutation.Batty = new BeeMutation(Allele.Skulking, Allele.getExtraSpecies("rock"), Allele.Batty, 14);
- BeeMutation.Ghastly = new BeeMutation(Allele.Skulking, Allele.getExtraSpecies("creeper"), Allele.Ghastly, 13);
- }
- else
- {
- BeeMutation.Skulking = new BeeMutation(Allele.Mysterious, Allele.getBaseSpecies("Modest"), Allele.Skulking, 10);
- BeeMutation.Brainy = new BeeMutation(Allele.Skulking, Allele.getBaseSpecies("Sinister"), Allele.Brainy, 10);
- BeeMutation.Gossamer = new BeeMutation(Allele.Skulking, Allele.Supernatural, Allele.Gossamer, 10);
- BeeMutation.Batty = new BeeMutation(Allele.Skulking, Allele.getBaseSpecies("Frugal"), Allele.Batty, 11);
- BeeMutation.Ghastly = new BeeMutation(Allele.Skulking, Allele.getBaseSpecies("Austere"), Allele.Ghastly, 13);
- }
- BeeMutation.Gossamer.setMoonPhaseRestricted(MoonPhase.FULL, MoonPhase.WANING_CRESCENT);
- BeeMutation.Wispy = new BeeMutation(Allele.Gossamer, Allele.getBaseSpecies("Cultivated"), Allele.Wispy, 8);
-
- }
-}
diff --git a/thaumicbees_src/thaumicbees/bees/genetics/Allele.java b/thaumicbees_src/thaumicbees/bees/genetics/Allele.java
deleted file mode 100644
index dcac294..0000000
--- a/thaumicbees_src/thaumicbees/bees/genetics/Allele.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package thaumicbees.bees.genetics;
-
-import forestry.api.apiculture.IAlleleBeeSpecies;
-import forestry.api.genetics.AlleleManager;
-import forestry.api.genetics.IAllele;
-
-public class Allele implements IAllele
-{
- public static BeeSpecies Esoteric;
- public static BeeSpecies Mysterious;
- public static BeeSpecies Arcane;
-
- public static BeeSpecies Charmed;
- public static BeeSpecies Enchanted;
- public static BeeSpecies Supernatural;
-
- public static BeeSpecies Pupil;
- public static BeeSpecies Scholarly;
- public static BeeSpecies Savant;
-
- public static BeeSpecies Stark;
- public static BeeSpecies Air;
- public static BeeSpecies Water;
- public static BeeSpecies Earth;
- public static BeeSpecies Fire;
- public static BeeSpecies Infused;
-
- public static BeeSpecies Aware;
- public static BeeSpecies Vis;
- public static BeeSpecies Pure;
- public static BeeSpecies Flux;
- public static BeeSpecies Node;
-
- public static BeeSpecies Skulking;
- public static BeeSpecies Brainy;
- public static BeeSpecies Gossamer;
- public static BeeSpecies Wispy;
- public static BeeSpecies Batty;
- public static BeeSpecies Ghastly;
-
- public static AlleleInteger fertilityHighDominant;
-
- public static AlleleFlower flowerBookshelf;
- public static AlleleFlower flowerThaumcraft;
- public static AlleleFlower flowerAuraNode;
- public static AlleleFlower flowerNodePurify;
- public static AlleleFlower flowerNodeFluxify;
-
- public static AlleleEffectCure cleansingEffect;
- public static AlleleEffectPotion digSpeed;
- public static AlleleEffectPotion moveSpeed;
- public static AlleleEffectSpawnMob spawnBrainyZombie;
- public static AlleleEffectSpawnMob spawnWisp;
- public static AlleleEffectSpawnMob spawnBats;
- public static AlleleEffectSpawnMob spawnGhast;
- public static AlleleEffectAuraNodeGrow nodeGen;
-
- private String uid;
- private boolean dominant;
-
- public static IAlleleBeeSpecies getBaseSpecies(String name)
- {
- return (IAlleleBeeSpecies) AlleleManager.alleleRegistry.getAllele((new StringBuilder()).append("forestry.species").append(name).toString());
- }
-
- public static IAlleleBeeSpecies getExtraSpecies(String name)
- {
- return (IAlleleBeeSpecies) AlleleManager.alleleRegistry.getAllele((new StringBuilder()).append("extrabees.species.").append(name).toString());
- }
-
- public static IAllele getBaseAllele(String name)
- {
- return AlleleManager.getAllele(name);
- }
-
- public Allele(String id, boolean isDominant)
- {
- this.uid = "thaumicbees." + id;
- this.dominant = isDominant;
- AlleleManager.alleleRegistry.registerAllele(this);
- }
-
- @Override
- public String getUID()
- {
- return this.uid;
- }
-
- @Override
- public boolean isDominant()
- {
- return this.dominant;
- }
-
-}
diff --git a/thaumicbees_src/thaumicbees/bees/genetics/BeeSpecies.java b/thaumicbees_src/thaumicbees/bees/genetics/BeeSpecies.java
deleted file mode 100644
index 6171c7b..0000000
--- a/thaumicbees_src/thaumicbees/bees/genetics/BeeSpecies.java
+++ /dev/null
@@ -1,180 +0,0 @@
-package thaumicbees.bees.genetics;
-
-import forestry.api.apiculture.*;
-import forestry.api.core.EnumHumidity;
-import forestry.api.core.EnumTemperature;
-import forestry.api.genetics.*;
-import java.util.HashMap;
-
-import net.minecraft.item.ItemStack;
-import net.minecraft.stats.Achievement;
-import net.minecraft.world.World;
-
-public class BeeSpecies extends Allele implements IAlleleBeeSpecies
-{
- private String name;
- private String descripton;
- private String binomial;
- private String authority;
- private int bodyType;
- private int primaryColour;
- private int secondaryColour;
- private EnumTemperature temperature;
- private EnumHumidity humidity;
- private boolean hasEffect;
- private boolean isSecret;
- private boolean isCounted;
- private IClassification branch;
- private HashMap products;
- private HashMap specialty;
- private IAllele genomeTemplate[];
-
- public BeeSpecies(String speciesName, String speciesDescription, String genusName, IClassification classification, int firstColour, int secondColour, EnumTemperature preferredTemp, EnumHumidity preferredHumidity, boolean hasGlowEffect, boolean isSpeciesDominant)
- {
- this(speciesName, speciesDescription, genusName, classification, 0, firstColour, secondColour, preferredTemp, preferredHumidity, hasGlowEffect, true, true, isSpeciesDominant);
- }
-
- public BeeSpecies(String speciesName, String speciesDescription, String genusName, IClassification classification, int body, int firstColour, int secondColour, EnumTemperature preferredTemp, EnumHumidity preferredHumidity, boolean hasGlowEffect, boolean isSpeciesSecret, boolean isSpeciesCounted, boolean isSpeciesDominant)
- {
- super("species" + speciesName, isSpeciesDominant);
- name = speciesName;
- descripton = speciesDescription;
- binomial = genusName;
- authority = "MysteriousAges";
- bodyType = body;
- primaryColour = firstColour;
- secondaryColour = secondColour;
- temperature = preferredTemp;
- humidity = preferredHumidity;
- hasEffect = hasGlowEffect;
- isSecret = isSpeciesSecret;
- isCounted = isSpeciesCounted;
- products = new HashMap();
- specialty = new HashMap();
- this.branch = classification;
- this.genomeTemplate = new IAllele[EnumBeeChromosome.values().length];
- }
-
- public BeeSpecies setGene(EnumBeeChromosome chromosome, IAllele allele)
- {
- genomeTemplate[chromosome.ordinal()] = allele;
- return this;
- }
-
- public BeeSpecies setGenome(IAllele genome[])
- {
- genomeTemplate = genome;
- return this;
- }
-
- public IAllele[] getGenome()
- {
- return genomeTemplate;
- }
-
- public BeeSpecies addProduct(ItemStack produce, int percentChance)
- {
- products.put(produce, Integer.valueOf(percentChance));
- return this;
- }
-
- public BeeSpecies addSpecialty(ItemStack produce, int percentChance)
- {
- specialty.put(produce, Integer.valueOf(percentChance));
- return this;
- }
-
- public ItemStack getBeeItem(EnumBeeType beeType)
- {
- return BeeManager.beeInterface.getBeeStack(BeeManager.beeInterface.getBee(null, BeeManager.beeInterface.templateAsGenome(genomeTemplate)), beeType);
- }
-
- public String getName()
- {
- return name;
- }
-
- public String getDescription()
- {
- return descripton;
- }
-
- public int getBodyType()
- {
- return bodyType;
- }
-
- public int getPrimaryColor()
- {
- return primaryColour;
- }
-
- public int getSecondaryColor()
- {
- return secondaryColour;
- }
-
- public EnumTemperature getTemperature()
- {
- return temperature;
- }
-
- public EnumHumidity getHumidity()
- {
- return humidity;
- }
-
- public boolean hasEffect()
- {
- return hasEffect;
- }
-
- public boolean isSecret()
- {
- return isSecret;
- }
-
- public boolean isCounted()
- {
- return isCounted;
- }
-
- public String getBinomial()
- {
- return binomial;
- }
-
- public String getAuthority()
- {
- return authority;
- }
-
- public IClassification getBranch()
- {
- return this.branch;
- }
-
- public HashMap getProducts()
- {
- return products;
- }
-
- public HashMap getSpecialty()
- {
- return specialty;
- }
-
- public boolean isJubilant(World world, int biomeid, int x, int i, int j)
- {
- return true;
- }
-
- /**
- * @deprecated Method getAchievement is deprecated
- */
-
- public Achievement getAchievement()
- {
- return null;
- }
-}
diff --git a/thaumicbees_src/thaumicbees/block/BlockMagicApiary.java b/thaumicbees_src/thaumicbees/block/BlockMagicApiary.java
index c9bc239..f03677c 100644
--- a/thaumicbees_src/thaumicbees/block/BlockMagicApiary.java
+++ b/thaumicbees_src/thaumicbees/block/BlockMagicApiary.java
@@ -3,9 +3,11 @@ package thaumicbees.block;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import thaumicbees.main.CommonProxy;
-import net.minecraft.block.Block;
+import thaumicbees.tile.TileEntityMagicApiary;
+import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import forestry.api.apiculture.IBee;
@@ -14,7 +16,7 @@ import forestry.api.apiculture.IBeeHousing;
import forestry.api.core.EnumHumidity;
import forestry.api.core.EnumTemperature;
-public class BlockMagicApiary extends Block
+public class BlockMagicApiary extends BlockContainer
{
public BlockMagicApiary(int par1)
{
@@ -26,8 +28,29 @@ public class BlockMagicApiary extends Block
@Override
@SideOnly(Side.CLIENT)
- public int getBlockTexture(IBlockAccess par1iBlockAccess, int par2, int par3, int par4, int par5)
+ public int getBlockTexture(IBlockAccess worldAccess, int x, int y, int z, int side)
{
- return super.getBlockTexture(par1iBlockAccess, par2, par3, par4, par5);
+ int texture = 48;
+ if (side == 0 || side == 1)
+ {
+ texture = 50;
+ }
+ return texture;
+ }
+
+ public int getBlockTextureFromSideAndMetadata(int side, int meta)
+ {
+ int texture = 48;
+ if (side == 0 || side == 1)
+ {
+ texture = 50;
+ }
+ return texture;
+ }
+
+ @Override
+ public TileEntity createNewTileEntity(World var1)
+ {
+ return new TileEntityMagicApiary();
}
}
diff --git a/thaumicbees_src/thaumicbees/compat/CompatabilityManager.java b/thaumicbees_src/thaumicbees/compat/CompatabilityManager.java
new file mode 100644
index 0000000..c8171d8
--- /dev/null
+++ b/thaumicbees_src/thaumicbees/compat/CompatabilityManager.java
@@ -0,0 +1,466 @@
+package thaumicbees.compat;
+
+import java.io.File;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+
+import thaumcraft.api.EnumTag;
+import thaumcraft.api.ItemApi;
+import thaumcraft.api.ObjectTags;
+import thaumcraft.api.ThaumcraftApi;
+import thaumcraft.api.research.ResearchItem;
+import thaumcraft.api.research.ResearchList;
+import thaumicbees.bees.Allele;
+import thaumicbees.bees.BeeGenomeManager;
+import thaumicbees.item.ItemComb;
+import thaumicbees.item.ItemMiscResources;
+import thaumicbees.item.types.CombType;
+import thaumicbees.item.types.DropType;
+import thaumicbees.item.types.LiquidType;
+import thaumicbees.item.types.PollenType;
+import thaumicbees.item.types.PropolisType;
+import thaumicbees.item.types.ResourceType;
+import thaumicbees.item.types.WaxType;
+import thaumicbees.main.CommonProxy;
+import thaumicbees.main.Config;
+import thaumicbees.main.ThaumicBees;
+import thaumicbees.storage.BackpackDefinition;
+
+import cpw.mods.fml.common.event.FMLInterModComms;
+import cpw.mods.fml.common.registry.GameRegistry;
+import forestry.api.apiculture.EnumBeeChromosome;
+import forestry.api.apiculture.EnumBeeType;
+import forestry.api.core.BlockInterface;
+import forestry.api.core.ItemInterface;
+import forestry.api.storage.BackpackManager;
+
+import net.minecraft.block.Block;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemBlock;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+import net.minecraftforge.common.Property;
+import net.minecraftforge.common.Configuration;
+
+public class CompatabilityManager
+{
+ public static ItemStack getExtraBeeItem(String field)
+ {
+ ItemStack value = null;
+ try
+ {
+ Class src = Class.forName("binnie.extrabees.core.ExtraBeeItem");
+ Field f = src.getDeclaredField(field);
+
+ Item i = (Item) f.get(null);
+ value = new ItemStack(i);
+ }
+ catch (Exception e)
+ {
+
+ }
+ return value;
+ }
+
+ public static void setupBackpacks()
+ {
+ if (ThaumicBees.getConfig().AddThaumcraftItemsToBackpacks)
+ {
+ // Add all shards and Thaumium to miner's backpack
+ String ids = Config.tcShard.itemID + ":" + -1 + ";"
+ + Config.tcMiscResource.itemID + ":" + ThaumcraftHelper.MiscResource.THAUMIUM.ordinal();
+ FMLInterModComms.sendMessage("Forestry", "add-backpack-items", "miner@" + ids);
+
+ // All resources go into Thaumaturge's backpack
+ ids = Config.tcMiscResource.itemID + ":" + -1 + ";"
+ + Config.tcShard.itemID + ":" + -1 + ";"
+ + Config.tcFilledJar.itemID + ":" + -1 + ";"
+ + Config.tcCrystal.blockID + ":" + -1 + ";"
+ + Config.tcJar.blockID + ":" + -1 + ";"
+ + Config.tcGolem.itemID + ":" + -1 + ";"
+ + Config.solidFlux.itemID + ":" + -1;
+ FMLInterModComms.sendMessage("Forestry", "add-backpack-items", "thaumaturge@" + ids);
+
+ // Add some plants & saplings to Forester's
+ ids = Config.tcPlant.blockID + ":" + "-1" + ";"
+ + Config.tcLeaf.blockID + ":" + -1 + ";"
+ + Config.tcLog.blockID + ":" + "-1";
+ FMLInterModComms.sendMessage("Forestry", "add-backpack-items", "forester@" + ids);
+
+ // Add Wisp & brains to Hunter's
+ ids = Config.tcWispEssence.itemID + ":" + -1 + ";"
+ + Config.tcMiscResource.itemID + ":" + ThaumcraftHelper.MiscResource.ZOMBIE_BRAIN.ordinal();
+ FMLInterModComms.sendMessage("Forestry", "add-backpack-items", "hunter@" + ids);
+
+ // Add Marker, warded stone, candle to builder
+ ids = Config.tcCandle.blockID + ":" + -1 + ";"
+ + Config.tcMarker.blockID + ":" + -1 + ";"
+ + Config.tcWarded.blockID + ":" + -1;
+ FMLInterModComms.sendMessage("Forestry", "add-backpack-items", "builder@" + ids);
+ }
+ }
+
+ public static void setupItemAspects()
+ {
+ setupItemAspectsThaumicBees();
+ setupItemAspectsForestry();
+ if (ThaumicBees.getConfig().ExtraBeesInstalled)
+ {
+ setupItemAspectsExtraBees();
+ }
+ }
+
+ private static void setupItemAspectsThaumicBees()
+ {
+ ObjectTags tags;
+ ItemStack itemStack;
+
+ tags = new ObjectTags().add(EnumTag.MAGIC, 2);
+ ThaumcraftApi.registerObjectTag(Config.wax.itemID, WaxType.MAGIC.ordinal(), tags);
+
+ tags = new ObjectTags().add(EnumTag.MAGIC, 1);
+ ThaumcraftApi.registerObjectTag(Config.drops.itemID, DropType.ENCHANTED.ordinal(), tags);
+ tags = new ObjectTags().add(EnumTag.KNOWLEDGE, 1);
+ ThaumcraftApi.registerObjectTag(Config.drops.itemID, DropType.INTELLECT.ordinal(), tags);
+
+ tags = new ObjectTags().add(EnumTag.ELDRITCH, 1);
+ ThaumcraftApi.registerObjectTag(Config.pollen.itemID, PollenType.UNUSUAL.ordinal(), tags);
+
+ tags = new ObjectTags().add(EnumTag.CONTROL, 1);
+ ThaumcraftApi.registerObjectTag(Config.propolis.itemID, -1, tags);
+ tags = new ObjectTags(Config.propolis.itemID, -1).add(EnumTag.MAGIC, 1);
+ ThaumcraftApi.registerObjectTag(Config.propolis.itemID, PropolisType.STARK.ordinal(), tags);
+ tags = new ObjectTags(Config.propolis.itemID, -1).add(EnumTag.MAGIC, 1).add(EnumTag.WIND, 3);
+ ThaumcraftApi.registerObjectTag(Config.propolis.itemID, PropolisType.AIR.ordinal(), tags);
+ tags = new ObjectTags(Config.propolis.itemID, -1).add(EnumTag.MAGIC, 1).add(EnumTag.FIRE, 3);
+ ThaumcraftApi.registerObjectTag(Config.propolis.itemID, PropolisType.FIRE.ordinal(), tags);
+ tags = new ObjectTags(Config.propolis.itemID, -1).add(EnumTag.MAGIC, 1).add(EnumTag.WATER, 3);
+ ThaumcraftApi.registerObjectTag(Config.propolis.itemID, PropolisType.WATER.ordinal(), tags);
+ tags = new ObjectTags(Config.propolis.itemID, -1).add(EnumTag.MAGIC, 1).add(EnumTag.EARTH, 3);
+ ThaumcraftApi.registerObjectTag(Config.propolis.itemID, PropolisType.EARTH.ordinal(), tags);
+ tags = new ObjectTags(Config.propolis.itemID, -1).add(EnumTag.MAGIC, 4);
+ ThaumcraftApi.registerObjectTag(Config.propolis.itemID, PropolisType.INFUSED.ordinal(), tags);
+
+ tags = new ObjectTags().add(EnumTag.KNOWLEDGE, 3);
+ ThaumcraftApi.registerObjectTag(Config.miscResources.itemID, ResourceType.LORE_FRAGMENT.ordinal(), tags);
+
+ tags = new ObjectTags().add(EnumTag.INSECT, 2).add(EnumTag.TRAP, 2);
+ ThaumcraftApi.registerObjectTag(Config.combs.itemID, -1, tags);
+
+ itemStack = Config.combs.getStackForType(CombType.OCCULT);
+ tags = new ObjectTags().add(EnumTag.INSECT, 2).add(EnumTag.TRAP, 2).add(EnumTag.MAGIC, 2);
+ ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.OCCULT.ordinal(), tags);
+ ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.OTHERWORLDLY.ordinal(), tags);
+ ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.STARK.ordinal(), tags);
+ ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.AIRY.ordinal(), tags);
+ ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.FIREY.ordinal(), tags);
+ ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.WATERY.ordinal(), tags);
+ ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.EARTHY.ordinal(), tags);
+ ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.INFUSED.ordinal(), tags);
+
+ // Tagging capsules.
+ tags = new ObjectTags().add(EnumTag.VOID, 2).add(EnumTag.MAGIC, 2);
+ ThaumcraftApi.registerComplexObjectTag(Config.magicCapsule.itemID, LiquidType.EMPTY.ordinal(), tags);
+
+ tags = new ObjectTags(Config.magicCapsule.itemID, LiquidType.EMPTY.ordinal())
+ .add(EnumTag.WATER, 8);
+ ThaumcraftApi.registerObjectTag(Config.magicCapsule.itemID, LiquidType.WATER.ordinal(), tags);
+ tags = new ObjectTags(Config.magicCapsule.itemID, LiquidType.EMPTY.ordinal())
+ .add(EnumTag.FIRE, 12).add(EnumTag.ROCK, 4);
+ ThaumcraftApi.registerObjectTag(Config.magicCapsule.itemID, LiquidType.LAVA.ordinal(), tags);
+
+ for (EnumTag tag : EnumTag.values())
+ {
+ if (tag == EnumTag.UNKNOWN)
+ {
+ continue;
+ }
+ tags = new ObjectTags().add(tag, 1);
+ ThaumcraftApi.registerObjectTag(Config.solidFlux.itemID, tag.id, tags);
+ }
+ }
+
+ private static void setupItemAspectsForestry()
+ {
+ ObjectTags tags;
+ ItemStack itemStack;
+
+ itemStack = BlockInterface.getBlock("candle");
+ tags = new ObjectTags().add(EnumTag.LIGHT, 1).add(EnumTag.CONTROL, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+
+ itemStack = BlockInterface.getBlock("glass");
+ tags = new ObjectTags(Block.glass.blockID, 0);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, -1, tags);
+
+ // Pulsating propolis
+ itemStack = ItemInterface.getItem("propolis");
+ tags = new ObjectTags().add(EnumTag.CONTROL, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, -1, tags);
+ tags = new ObjectTags(itemStack.itemID, -1).add(EnumTag.ELDRITCH, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Propolis.PULSATING.ordinal(), tags);
+
+ itemStack = ItemInterface.getItem("pollen");
+ tags = new ObjectTags().add(EnumTag.FLOWER, 1).add(EnumTag.PLANT, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Pollen.NORMAL.ordinal(), tags);
+ tags = new ObjectTags(itemStack.itemID, ForestryHelper.Pollen.NORMAL.ordinal()).add(EnumTag.COLD, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Pollen.CRYSTALLINE.ordinal(), tags);
+
+ itemStack = ItemInterface.getItem("craftingMaterial");
+ tags = new ObjectTags().add(EnumTag.ELDRITCH, 2);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.CraftingMaterial.PULSATING_MESH.ordinal(), tags);
+ tags = new ObjectTags().add(EnumTag.INSECT, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.CraftingMaterial.SILK_WISP.ordinal(), tags);
+ tags = new ObjectTags().add(EnumTag.INSECT, 4).add(EnumTag.CLOTH, 5);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.CraftingMaterial.WOVEN_SILK.ordinal(), tags);
+ tags = new ObjectTags().add(EnumTag.COLD, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.CraftingMaterial.ICE_SHARD.ordinal(), tags);
+ tags = new ObjectTags().add(EnumTag.VALUABLE, 1).add(EnumTag.PLANT, 1).add(EnumTag.INSECT, 2)
+ .add(EnumTag.CONTROL, 2).add(EnumTag.WOOD, 5);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.CraftingMaterial.SCENTED_PANELING.ordinal(), tags);
+
+ itemStack = ItemInterface.getItem("beealyzer");
+ tags = new ObjectTags().add(EnumTag.VALUABLE, 3).add(EnumTag.MECHANISM, 3).add(EnumTag.METAL, 19)
+ .add(EnumTag.POWER, 8).add(EnumTag.CRYSTAL, 18);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+
+ itemStack = ItemInterface.getItem("treealyzer");
+ tags = new ObjectTags().add(EnumTag.POWER, 3).add(EnumTag.PURE, 3).add(EnumTag.LIFE, 6)
+ .add(EnumTag.CRYSTAL, 12).add(EnumTag.METAL, 19);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+
+ itemStack = ItemInterface.getItem("apatite");
+ tags = new ObjectTags().add(EnumTag.CRYSTAL, 2).add(EnumTag.POWER, 2);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+
+ itemStack = ItemInterface.getItem("impregnatedCasing");
+ tags = new ObjectTags().add(EnumTag.WOOD, 58).add(EnumTag.PLANT, 8);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+
+ itemStack = ItemInterface.getItem("stickImpregnated");
+ tags = new ObjectTags().add(EnumTag.WOOD, 8).add(EnumTag.PLANT, 2);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+
+ itemStack = ItemInterface.getItem("peat");
+ tags = new ObjectTags().add(EnumTag.POWER, 2).add(EnumTag.PLANT, 2);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+
+ itemStack = ItemInterface.getItem("ash");
+ tags = new ObjectTags().add(EnumTag.DESTRUCTION, 1).add(EnumTag.EXCHANGE, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+
+ itemStack = ItemInterface.getItem("honeyDrop");
+ tags = new ObjectTags().add(EnumTag.EXCHANGE, 2).add(EnumTag.LIFE, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+ itemStack = ItemInterface.getItem("honeydew");
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+
+ itemStack = ItemInterface.getItem("royalJelly");
+ tags = new ObjectTags().add(EnumTag.INSECT, 2).add(EnumTag.POWER, 1).add(EnumTag.VALUABLE, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+
+ itemStack = ItemInterface.getItem("honeyPot");
+ tags = new ObjectTags().add(EnumTag.LIFE, 2);
+ ThaumcraftApi.registerComplexObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+
+ itemStack = ItemInterface.getItem("ambrosia");
+ tags = new ObjectTags().add(EnumTag.HEAL, 4);
+ ThaumcraftApi.registerComplexObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+
+ itemStack = ItemInterface.getItem("beeswax");
+ tags = new ObjectTags().add(EnumTag.CONTROL, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+ itemStack = ItemInterface.getItem("refractoryWax");
+ tags = new ObjectTags().add(EnumTag.FIRE, 3);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+ itemStack = ItemInterface.getItem("phosphor");
+ tags = new ObjectTags().add(EnumTag.FIRE, 2).add(EnumTag.DESTRUCTION, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+
+ itemStack = ItemInterface.getItem("waxCapsule");
+ tags = new ObjectTags().add(EnumTag.CONTROL, 1).add(EnumTag.VOID, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+ itemStack = ItemInterface.getItem("waxCapsuleWater");
+ tags = new ObjectTags().add(EnumTag.CONTROL, 1).add(EnumTag.VOID, 1).add(EnumTag.WATER, 4);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+
+ itemStack = ItemInterface.getItem("refractoryEmpty");
+ tags = new ObjectTags().add(EnumTag.FIRE, 1).add(EnumTag.CONTROL, 1).add(EnumTag.VOID, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+ itemStack = ItemInterface.getItem("refractoryWater");
+ tags = new ObjectTags().add(EnumTag.FIRE, 1).add(EnumTag.VOID, 1).add(EnumTag.WATER, 4);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+ itemStack = ItemInterface.getItem("refractoryLava");
+ tags = new ObjectTags().add(EnumTag.VOID, 1).add(EnumTag.FIRE, 7).add(EnumTag.WATER, 1).add(EnumTag.ROCK, 2);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+
+ itemStack = ItemInterface.getItem("canEmpty");
+ tags = new ObjectTags().add(EnumTag.METAL, 1).add(EnumTag.VOID, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+ itemStack = ItemInterface.getItem("canWater");
+ tags = new ObjectTags().add(EnumTag.METAL, 1).add(EnumTag.VOID, 1).add(EnumTag.WATER, 4);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+ itemStack = ItemInterface.getItem("canLava");
+ tags = new ObjectTags().add(EnumTag.METAL, 1).add(EnumTag.VOID, 1).add(EnumTag.FIRE, 6).add(EnumTag.WATER, 1).add(EnumTag.ROCK, 2);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
+
+ itemStack = ItemInterface.getItem("beeComb");
+ tags = new ObjectTags().add(EnumTag.INSECT, 2).add(EnumTag.TRAP, 2);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, -1, tags);
+ tags = new ObjectTags(itemStack.itemID, -1).add(EnumTag.FIRE, 2);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Comb.SIMMERING.ordinal(), tags);
+ tags = new ObjectTags(itemStack.itemID, -1).add(EnumTag.COLD, 2);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Comb.FROZEN.ordinal(), tags);
+ tags = new ObjectTags(itemStack.itemID, -1).add(EnumTag.CROP, 2);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Comb.WHEATEN.ordinal(), tags);
+ tags = new ObjectTags(itemStack.itemID, -1).add(EnumTag.FUNGUS, 2);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Comb.MOSSY.ordinal(), tags);
+
+ itemStack = ItemInterface.getItem("ambrosia");
+ tags = new ObjectTags().add(EnumTag.LIFE, 2).add(EnumTag.HEAL, 4);
+
+ // Forestry's wood
+ itemStack = BlockInterface.getBlock("log1");
+ tags = new ObjectTags().add(EnumTag.WOOD, 8);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, -1, tags);
+ itemStack = BlockInterface.getBlock("log2"); // Same tags
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, -1, tags);
+ itemStack = BlockInterface.getBlock("log3"); // Same tags.
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, -1, tags);
+ itemStack = BlockInterface.getBlock("log4"); // Still same tags.
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, -1, tags);
+
+ itemStack = ItemInterface.getItem("sapling");
+ tags = new ObjectTags().add(EnumTag.PLANT, 4).add(EnumTag.WOOD, 2);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, -1, tags);
+
+ // BEES!
+ itemStack = ItemInterface.getItem("beeDroneGE");
+ tags = new ObjectTags().add(EnumTag.INSECT, 1).add(EnumTag.FLIGHT, 2);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, -1, tags); // All drones
+
+ tags = new ObjectTags(itemStack.itemID, -1).add(EnumTag.VALUABLE, 4); // Get drone tags & add valuable
+ itemStack = ItemInterface.getItem("beePrincessGE");
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, -1, tags); // All princesses.
+
+ tags = new ObjectTags().add(EnumTag.VALUABLE, 8).add(EnumTag.INSECT, 2).add(EnumTag.FLIGHT, 4);
+ itemStack = ItemInterface.getItem("beeQueenGE");
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, -1, tags); //All queens.
+
+ itemStack = ItemInterface.getItem("circuitboards");
+ tags = new ObjectTags().add(EnumTag.CRYSTAL, 2).add(EnumTag.METAL, 5).add(EnumTag.MECHANISM, 10)
+ .add(EnumTag.POWER, 10);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.CircuitBoard.BASIC.ordinal(), tags);
+ tags = new ObjectTags().add(EnumTag.MECHANISM, 10).add(EnumTag.POWER, 10).add(EnumTag.METAL, 14)
+ .add(EnumTag.CONTROL, 2).add(EnumTag.EXCHANGE, 2);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.CircuitBoard.ENHANCED.ordinal(), tags);
+ tags = new ObjectTags().add(EnumTag.MECHANISM, 10).add(EnumTag.POWER, 10).add(EnumTag.METAL, 14);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.CircuitBoard.REFINED.ordinal(), tags);
+ tags = new ObjectTags().add(EnumTag.MECHANISM, 10).add(EnumTag.POWER, 10).add(EnumTag.METAL, 19)
+ .add(EnumTag.VALUABLE, 10);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.CircuitBoard.INTRICATE.ordinal(), tags);
+
+ itemStack = ItemInterface.getItem("tubes");
+ tags = new ObjectTags(ItemInterface.getItem("ingotCopper").itemID, 0).add(EnumTag.MECHANISM, 1).add(EnumTag.POWER, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Tube.COPPER.ordinal(), tags);
+ tags = new ObjectTags(ItemInterface.getItem("ingotTin").itemID, 0).add(EnumTag.MECHANISM, 1).add(EnumTag.POWER, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Tube.TIN.ordinal(), tags);
+ tags = new ObjectTags(ItemInterface.getItem("ingotBronze").itemID, 0).add(EnumTag.MECHANISM, 1).add(EnumTag.POWER, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Tube.BRONZE.ordinal(), tags);
+ tags = new ObjectTags(Item.ingotIron.itemID, 0).add(EnumTag.MECHANISM, 1).add(EnumTag.POWER, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Tube.IRON.ordinal(), tags);
+ tags = new ObjectTags(Item.ingotGold.itemID, 0).add(EnumTag.MECHANISM, 1).add(EnumTag.POWER, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Tube.GOLD.ordinal(), tags);
+ tags = new ObjectTags(Item.diamond.itemID, 0).add(EnumTag.MECHANISM, 1).add(EnumTag.POWER, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Tube.DIAMOND.ordinal(), tags);
+ tags = new ObjectTags(Block.obsidian.blockID, 0).add(EnumTag.MECHANISM, 1).add(EnumTag.POWER, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Tube.OBSIDIAN.ordinal(), tags);
+ tags = new ObjectTags(Item.blazePowder.itemID, 0).add(EnumTag.MECHANISM, 1).add(EnumTag.POWER, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Tube.BLAZE.ordinal(), tags);
+ tags = new ObjectTags().add(EnumTag.MOTION, 2).add(EnumTag.CONTROL, 2).add(EnumTag.MECHANISM, 1).add(EnumTag.POWER, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Tube.RUBBER.ordinal(), tags);
+ tags = new ObjectTags(Item.emerald.itemID, 0).add(EnumTag.MECHANISM, 1).add(EnumTag.POWER, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Tube.EMERALD.ordinal(), tags);
+ tags = new ObjectTags(ItemInterface.getItem("apatite").itemID, 0).add(EnumTag.MECHANISM, 1).add(EnumTag.POWER, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Tube.APATITE.ordinal(), tags);
+ tags = new ObjectTags(Item.dyePowder.itemID, 4).add(EnumTag.MECHANISM, 1).add(EnumTag.POWER, 1);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, ForestryHelper.Tube.LAPIS.ordinal(), tags);
+ }
+
+ private static void setupItemAspectsExtraBees()
+ {
+ ItemStack itemStack;
+ ObjectTags tags;
+
+ if ((itemStack = getExtraBeeItem("comb")) != null)
+ {
+ tags = new ObjectTags().add(EnumTag.INSECT, 2).add(EnumTag.TRAP, 2);
+ ThaumcraftApi.registerObjectTag(itemStack.itemID, -1, tags);
+ }
+ }
+
+ public static void setupResearch()
+ {
+ ObjectTags tags;
+
+ ResearchItem startNode = new ResearchItem("TBSTARTNODE", null, 10, 0, Config.miscResources.getStackForType(ResourceType.RESEARCH_StartNode))
+ .setAutoUnlock()
+ .registerResearchItem();
+
+ tags = new ObjectTags().add(EnumTag.INSECT, 9).add(EnumTag.MAGIC, 4).add(EnumTag.FLUX, 4);
+ ResearchItem starkHint = new ResearchItem("STARKHINT", tags, 5, 2, ItemInterface.getItem("beeQueenGE"))
+ .setParents(startNode)
+ .registerResearchItem();
+
+ tags = new ObjectTags().add(EnumTag.INSECT, 15).add(EnumTag.MAGIC, 5).add(EnumTag.WATER, 5).add(EnumTag.EARTH, 5)
+ .add(EnumTag.WIND, 5).add(EnumTag.FIRE, 5);
+ ResearchItem beeInfusion = new ResearchItem("BEEINFUSION", tags, 5, 3, Config.miscResources.getStackForType(ResourceType.RESEARCH_BeeInfusion))
+ .setParents(starkHint, ResearchList.getResearch("UTFT")).setHidden()
+ .registerResearchItem();
+
+ tags = new ObjectTags().add(EnumTag.CROP, 20).add(EnumTag.EARTH, 20).add(EnumTag.WATER, 5);
+ ResearchItem fertilizer = new ResearchItem("FERTILIZER", tags, 16, 0, ItemInterface.getItem("apatite"))
+ .setParents(startNode)
+ .registerResearchItem();
+
+ tags = new ObjectTags().add(EnumTag.WOOD, 10).add(EnumTag.TOOL, 6).add(EnumTag.INSECT, 15).add(EnumTag.BEAST, 2)
+ .add(EnumTag.MAGIC, 5);
+ ResearchItem magicFrame = new ResearchItem("HIVEFRAME", tags, 10, -2, Config.hiveFrameMagic)
+ .setParents(startNode)
+ .registerResearchItem();
+
+ tags = new ObjectTags().add(EnumTag.TOOL, 5).add(EnumTag.INSECT, 10).add(EnumTag.ARMOR, 5).add(EnumTag.EXCHANGE, 6)
+ .add(EnumTag.MAGIC, 8);
+ ResearchItem magicFrame2 = new ResearchItem("HIVEFRAME2", tags, 8, -2, Config.hiveFrameResilient)
+ .setParents(magicFrame).setHidden()
+ .registerResearchItem();
+
+ tags = new ObjectTags().add(EnumTag.TOOL, 4).add(EnumTag.INSECT, 10).add(EnumTag.LIFE, 5).add(EnumTag.EXCHANGE, 6)
+ .add(EnumTag.HEAL, 2).add(EnumTag.FLOWER, 6);
+ ResearchItem gentleFrame = new ResearchItem("HIVEFRAMEGENTLE", tags, 12, -2, Config.hiveFrameGentle)
+ .setParents(magicFrame).setHidden()
+ .registerResearchItem();
+
+ tags = new ObjectTags().add(EnumTag.TOOL, 4).add(EnumTag.INSECT, 10).add(EnumTag.LIFE, 6).add(EnumTag.EXCHANGE, 8)
+ .add(EnumTag.MAGIC, 8).add(EnumTag.MOTION, 4).add(EnumTag.FLESH, 4);
+ ResearchItem metabolicFrame = new ResearchItem("HIVEFRAMEMETA", tags, 9, -3, Config.hiveFrameMetabolic)
+ .setParents(magicFrame).setHidden()
+ .registerResearchItem();
+
+ tags = new ObjectTags().add(EnumTag.TOOL, 5).add(EnumTag.INSECT, 10).add(EnumTag.DEATH, 15).add(EnumTag.EXCHANGE, 6)
+ .add(EnumTag.MAGIC, 8).add(EnumTag.POISON, 6);
+ ResearchItem necroticFrame = new ResearchItem("HIVEFRAMENECRO", tags, 11, -3, Config.hiveFrameNecrotic)
+ .setParents(magicFrame).setHidden()
+ .registerResearchItem();
+
+ tags = new ObjectTags().add(EnumTag.TOOL, 5).add(EnumTag.INSECT, 10).add(EnumTag.TIME, 4);
+ ResearchItem temporalFrame = new ResearchItem("HIVEFRAMETIME", tags, 9, -5, Config.hiveFrameTemporal)
+ .setParents(magicFrame).setHidden()
+ .registerResearchItem();
+ }
+
+ public static void registerResearch()
+ {
+ ThaumcraftApi.registerResearchXML(CommonProxy.TCBEES_RESEARCH + "research.xml");
+ }
+}
diff --git a/thaumicbees_src/thaumicbees/compat/ForestryHelper.java b/thaumicbees_src/thaumicbees/compat/ForestryHelper.java
new file mode 100644
index 0000000..81bd6a8
--- /dev/null
+++ b/thaumicbees_src/thaumicbees/compat/ForestryHelper.java
@@ -0,0 +1,94 @@
+package thaumicbees.compat;
+
+import net.minecraft.item.Item;
+import forestry.api.core.ItemInterface;
+import thaumicbees.main.Config;
+
+public class ForestryHelper
+{
+ public static void getForestryBlocks()
+ {
+
+ }
+
+ public static void getForestryItems()
+ {
+ Config.fBeeComb = Item.itemsList[ItemInterface.getItem("beeComb").itemID];
+ Config.fPollen = Item.itemsList[ItemInterface.getItem("pollen").itemID];
+ Config.fCraftingResource = Item.itemsList[ItemInterface.getItem("craftingMaterial").itemID];
+ }
+
+ public enum CraftingMaterial
+ {
+ PULSATING_DUST, // unused
+ PULSATING_MESH,
+ SILK_WISP,
+ WOVEN_SILK,
+ DISSIPATION_CHARGE,
+ ICE_SHARD,
+ SCENTED_PANELING,
+ ;
+ }
+
+ public enum Comb
+ {
+ HONEY,
+ COCOA,
+ SIMMERING,
+ STRINGY,
+ FROZEN,
+ DRIPPING,
+ SILKY,
+ PARCHED,
+ MYSTERIOUS,
+ IRRADIATED,
+ POWDERY,
+ REDDENED,
+ DARKENED,
+ OMEGA,
+ WHEATEN,
+ MOSSY,
+ ;
+ }
+
+ public enum Propolis
+ {
+ NORMAL,
+ STICKY, // Unused.
+ PULSATING,
+ SILKY,
+ ;
+ }
+
+ public enum Pollen
+ {
+ NORMAL,
+ CRYSTALLINE,
+ ;
+ }
+
+ public enum CircuitBoard
+ {
+ BASIC,
+ ENHANCED,
+ REFINED,
+ INTRICATE,
+ ;
+ }
+
+ public enum Tube
+ {
+ COPPER,
+ TIN,
+ BRONZE,
+ IRON,
+ GOLD,
+ DIAMOND,
+ OBSIDIAN,
+ BLAZE,
+ RUBBER,
+ EMERALD,
+ APATITE,
+ LAPIS
+ }
+}
diff --git a/thaumicbees_src/thaumicbees/compat/ShapelessBeeInfusionCraftingRecipe.java b/thaumicbees_src/thaumicbees/compat/ShapelessBeeInfusionCraftingRecipe.java
new file mode 100644
index 0000000..b5c98b9
--- /dev/null
+++ b/thaumicbees_src/thaumicbees/compat/ShapelessBeeInfusionCraftingRecipe.java
@@ -0,0 +1,158 @@
+package thaumicbees.compat;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+
+import forestry.api.apiculture.EnumBeeChromosome;
+import forestry.api.genetics.IAllele;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTBase;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.nbt.NBTTagList;
+import thaumcraft.api.ObjectTags;
+import thaumcraft.api.ThaumcraftApi;
+import thaumcraft.api.ThaumcraftApiHelper;
+import thaumcraft.api.crafting.ShapelessInfusionCraftingRecipes;
+import thaumcraft.api.research.ResearchList;
+
+public class ShapelessBeeInfusionCraftingRecipe extends ShapelessInfusionCraftingRecipes
+{
+ private String alleleId;
+ private byte alleleSlot;
+
+ /**
+ * Creates & adds a Crafting recipe to Thaumcraft for our Stark bee infusions.
+ */
+ public static void createNewRecipe(String key, String researchKey, ItemStack output, Object[] input,
+ int auraCost, ObjectTags tags, IAllele allele, EnumBeeChromosome slot)
+ {
+ ArrayList inputList = new ArrayList(input.length);
+ for (Object item : input)
+ {
+ if (item instanceof ItemStack)
+ {
+ inputList.add(((ItemStack) item).copy());
+ }
+ else if (item instanceof Item)
+ {
+ inputList.add(new ItemStack((Item)item));
+ }
+ else if (item instanceof Block)
+ {
+ inputList.add(new ItemStack((Block)item));
+ }
+ else
+ {
+ throw new RuntimeException("Invalid shapeless crafting recipe!");
+ }
+ }
+ ThaumcraftApi.getCraftingRecipes().add(
+ new ShapelessBeeInfusionCraftingRecipe(key, output, inputList, auraCost, tags, allele, slot)
+ );
+ ResearchList.craftingRecipesForResearch.put(researchKey, Arrays.asList(ThaumcraftApi.getCraftingRecipes().size()-1));
+ }
+
+ private ShapelessBeeInfusionCraftingRecipe(String key, ItemStack output, List itemList, int cost, ObjectTags tags,
+ IAllele allele, EnumBeeChromosome slot)
+ {
+ super(key, output, itemList, cost, tags);
+
+ this.alleleId = allele.getUID();
+ this.alleleSlot = (byte)slot.ordinal();
+ }
+
+ @Override
+ public boolean matches(IInventory craftingInventory, EntityPlayer player)
+ {
+ // We'll remove items from the list as they are found.
+ ArrayList recipeItemsList = new ArrayList(this.recipeItems);
+
+ boolean invalidItemFound = false;
+
+ if (key.length() == 0 || (key.length() > 0 && ThaumcraftApiHelper.isResearchComplete(player.username, key)))
+ {
+
+ for (int i = 0; i < 3 && !invalidItemFound; ++i)
+ {
+ for (int j = 0; j < 3 && !invalidItemFound; ++j)
+ {
+ ItemStack itemStack = ThaumcraftApiHelper.getStackInRowAndColumn(craftingInventory, j, i);
+
+ if (itemStack != null)
+ {
+ Iterator itr = recipeItemsList.iterator();
+ boolean currentItemInRecipe = false;
+
+ while (itr.hasNext())
+ {
+ ItemStack recipeItem = itr.next();
+
+ if (itemStack.itemID == recipeItem.itemID && (recipeItem.getItemDamage() == -1 || itemStack.getItemDamage() == recipeItem.getItemDamage()))
+ {
+ if (recipeItem.hasTagCompound())
+ {
+ currentItemInRecipe = this.hasMatchingChromosome(itemStack);
+ }
+ else
+ {
+ currentItemInRecipe = true;
+ }
+ }
+
+ if (currentItemInRecipe)
+ {
+ itr.remove();
+ break;
+ }
+ }
+
+ if (!currentItemInRecipe)
+ {
+ invalidItemFound = true;
+ }
+ }
+ }
+ }
+ }
+
+ return recipeItemsList.isEmpty() && !invalidItemFound;
+ }
+
+ private boolean hasMatchingChromosome(ItemStack itemStack)
+ {
+ boolean genesMatch = false;
+
+ NBTTagCompound compoundRoot = itemStack.getTagCompound();
+ if (compoundRoot.hasKey("Genome"))
+ {
+ NBTTagCompound genome = compoundRoot.getCompoundTag("Genome");
+ if (genome.hasKey("Chromosomes"))
+ {
+ NBTTagList chromosomes = genome.getTagList("Chromosomes");
+
+ for (int i = 0; i < chromosomes.tagCount() && !genesMatch; ++i)
+ {
+ NBTTagCompound genes = (NBTTagCompound)chromosomes.tagAt(i);
+ if (genes.hasKey("Slot") && genes.getByte("Slot") == this.alleleSlot)
+ {
+ if (genes.getString("UID0").equals(this.alleleId) && genes.getString("UID1").equals(this.alleleId))
+ {
+ genesMatch = true;
+ }
+
+ }
+ }
+ }
+ }
+
+ return genesMatch;
+ }
+
+}
diff --git a/thaumicbees_src/thaumicbees/compat/ThaumcraftHelper.java b/thaumicbees_src/thaumicbees/compat/ThaumcraftHelper.java
new file mode 100644
index 0000000..892f0cd
--- /dev/null
+++ b/thaumicbees_src/thaumicbees/compat/ThaumcraftHelper.java
@@ -0,0 +1,110 @@
+package thaumicbees.compat;
+
+import net.minecraft.block.Block;
+import net.minecraft.item.Item;
+import thaumcraft.api.ItemApi;
+import thaumicbees.main.Config;
+import cpw.mods.fml.common.registry.LanguageRegistry;
+
+public class ThaumcraftHelper
+{
+ public static void getThaumcraftBlocks()
+ {
+ Config.tcPlant = Block.blocksList[ItemApi.getItem("blockCustomPlant", 0).itemID];
+ Config.tcCandle = Block.blocksList[ItemApi.getItem("blockCandle", 0).itemID];
+ Config.tcCrystal = Block.blocksList[ItemApi.getItem("blockCrystal", 0).itemID];
+ Config.tcMarker = Block.blocksList[ItemApi.getItem("blockMarker", 0).itemID];
+ Config.tcJar = Block.blocksList[ItemApi.getItem("blockJar", 0).itemID];
+ Config.tcLog = Block.blocksList[ItemApi.getItem("blockMagicalLog", 0).itemID];
+ Config.tcLeaf = Block.blocksList[ItemApi.getItem("blockMagicalLeaves", 0).itemID];
+ Config.tcWarded = Block.blocksList[ItemApi.getItem("blockWarded", 0).itemID];
+ }
+
+ public static void getThaumcraftItems()
+ {
+ Config.tcFilledJar = Item.itemsList[ItemApi.getItem("itemJarFilled", 0).itemID];
+ Config.tcMiscResource = Item.itemsList[ItemApi.getItem("itemResource", 0).itemID];
+ Config.tcEssentiaBottle = Item.itemsList[ItemApi.getItem("itemEssence", 0).itemID];
+ Config.tcShard = Item.itemsList[ItemApi.getItem("itemShard", 0).itemID];
+ Config.tcGolem = Item.itemsList[ItemApi.getItem("itemGolemPlacer", 0).itemID];
+ Config.tcWispEssence = Item.itemsList[ItemApi.getItem("itemWispEssence", 0).itemID];
+ Config.tcNuggets = Item.itemsList[ItemApi.getItem("itemNugget", 0).itemID];
+ }
+
+ public enum MiscResource
+ {
+ ALUMENTUM,
+ NITOR,
+ THAUMIUM,
+ QUICKSILVER,
+ MAGIC_TALLOW,
+ ZOMBIE_BRAIN,
+ AMBER,
+ ENCHANTED_FABRIC,
+ FLUX_FILTER,
+ KNOWLEDGE_FRAGMENT,
+ MIRRORED_GLASS,
+ ;
+ }
+
+ public enum NuggetType
+ {
+ IRON,
+ COPPER,
+ TIN,
+ SILVER,
+ LEAD,
+ QUICKSILVER, _6, _7, _8,_9,_10,_11,_12,_13,_14,_15,
+ NATIVE_IRON,
+ NATIVE_COPPER,
+ NATIVE_TIN,
+ NATIVE_SILVER,
+ NATIVE_LEAD, _21,_22,_23,_24,_25,_26,_27,_28,_29,_30,
+ NATIVE_GOLD,
+ ;
+ }
+
+ public enum ShardType
+ {
+ AIR,
+ FIRE,
+ WATER,
+ EARTH,
+ MAGIC,
+ DULL,
+ ;
+ }
+
+ public enum Entity
+ {
+ BRAINY_ZOMBIE("entBrainyZombie", "EntityBrainyZombie"),
+ GIANT_BRAINY_ZOMBIE("entGiantBrainyZombie", "EntityGiantBrainyZombie"),
+ WISP("entWisp", "EntityWisp"),
+ FIREBAT("entFirebat", "EntityFireBat"),
+ ;
+
+ private static String packageName = "thaumcraft.common.entities.monster.";
+
+ public String entityID;
+ private String className;
+
+ private Entity(String id, String clazz)
+ {
+ this.entityID = id;
+ this.className = clazz;
+ }
+
+ public String getClassName()
+ {
+ return packageName + this.className;
+ }
+ }
+
+ public enum BlockPlant
+ {
+ GREATWOOD_SAPLING,
+ SILVERWOOD_SAPLING,
+ SILVERLEAF,
+ CINDERPEARL;
+ }
+}
diff --git a/thaumicbees_src/thaumicbees/item/types/HiveFrameType.java b/thaumicbees_src/thaumicbees/item/types/HiveFrameType.java
index 71aa5d1..6f8628a 100644
--- a/thaumicbees_src/thaumicbees/item/types/HiveFrameType.java
+++ b/thaumicbees_src/thaumicbees/item/types/HiveFrameType.java
@@ -13,8 +13,10 @@ public enum HiveFrameType
new ObjectTags().add(EnumTag.HEAL, 1).add(EnumTag.LIFE, 1)),
METABOLIC("Metabolic Frame", 35, 120, 1f, 1.8f, 1f, 1.2f, 5,
new ObjectTags().add(EnumTag.EXCHANGE, 1).add(EnumTag.MOTION, 1)),
- NECROTIC("Necrotic Frame", 36, 270, 1f, 1f, 0.4f, 0.75f, 1,
+ NECROTIC("Necrotic Frame", 36, 290, 1f, 1f, 0.3f, 0.75f, 1,
new ObjectTags().add(EnumTag.DEATH, 3).add(EnumTag.POISON, 2)),
+ TEMPORAL("Temporal Frame", 37, 300, 1f, 1f, 2.5f, 1f, 1,
+ new ObjectTags().add(EnumTag.TIME, 5)),
;
private HiveFrameType(String name, int icon, int damage,
diff --git a/thaumicbees_src/thaumicbees/main/ClientProxy.java b/thaumicbees_src/thaumicbees/main/ClientProxy.java
index 71daaa4..9ffeb70 100644
--- a/thaumicbees_src/thaumicbees/main/ClientProxy.java
+++ b/thaumicbees_src/thaumicbees/main/ClientProxy.java
@@ -1,5 +1,7 @@
package thaumicbees.main;
+import java.lang.reflect.Field;
+
import thaumicbees.main.render.BeeRenderEffect;
import net.minecraft.world.World;
import net.minecraftforge.client.MinecraftForgeClient;
@@ -18,6 +20,20 @@ public class ClientProxy extends CommonProxy
// Preload the TCBees items file
MinecraftForgeClient.preloadTexture(TCBEES_ITEMS_IMAGE);
MinecraftForgeClient.preloadTexture(TCBEES_LIQUIDS_IMAGE);
+
+ Field f;
+ try
+ {
+ f = Class.forName("forestry.core.config.Config").getField("enableParticleFX");
+ ThaumicBees.getConfig().DrawParticleEffects = f.getBoolean(null);
+
+ f = Class.forName("forestry.core.config.Defaults").getField("TEXTURE_PARTICLES_BEE");
+ thaumicbees.main.CommonProxy.FORESTRY_GFX_BEEEFFECTS = (String)f.get(null);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
}
@Override
diff --git a/thaumicbees_src/thaumicbees/main/Config.java b/thaumicbees_src/thaumicbees/main/Config.java
index 4a395dc..d7bd7ef 100644
--- a/thaumicbees_src/thaumicbees/main/Config.java
+++ b/thaumicbees_src/thaumicbees/main/Config.java
@@ -4,6 +4,7 @@ import java.io.File;
import thaumicbees.block.BlockMagicApiary;
import thaumicbees.compat.CompatabilityManager;
+import thaumicbees.compat.ForestryHelper;
import thaumicbees.compat.ThaumcraftHelper;
import thaumicbees.item.ItemCapsule;
import thaumicbees.item.ItemComb;
@@ -20,11 +21,14 @@ import thaumicbees.storage.BackpackDefinition;
import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.common.registry.LanguageRegistry;
import forestry.api.storage.BackpackManager;
import forestry.api.storage.EnumBackpackType;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
+import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;
+import net.minecraft.potion.Potion;
import net.minecraftforge.common.Configuration;
import net.minecraftforge.common.Property;
import net.minecraftforge.oredict.OreDictionary;
@@ -52,6 +56,7 @@ public class Config
public static ItemPollen pollen;
public static ItemSolidFlux solidFlux;
public static ItemMiscResources miscResources;
+ public static ItemFood jellyBaby;
//----- Liquid Capsules --------------------
public static ItemCapsule magicCapsule;
@@ -62,12 +67,18 @@ public class Config
public static ItemMagicHiveFrame hiveFrameGentle;
public static ItemMagicHiveFrame hiveFrameMetabolic;
public static ItemMagicHiveFrame hiveFrameNecrotic;
+ public static ItemMagicHiveFrame hiveFrameTemporal;
//----- Backpacks ------------------------------------------
public static Item thaumaturgeBackpackT1;
public static Item thaumaturgeBackpackT2;
public static BackpackDefinition thaumaturgeBackpackDef;
+ //----- Forestry Blocks ------------------------------------
+ //----- Forestry Items -------------------------------------
+ public static Item fBeeComb;
+ public static Item fPollen;
+ public static Item fCraftingResource;
//----- Thaumcraft Blocks ----------------------------------
public static Block tcPlant;
public static Block tcCandle;
@@ -106,6 +117,7 @@ public class Config
public void setupBlocks()
{
ThaumcraftHelper.getThaumcraftBlocks();
+ ForestryHelper.getForestryBlocks();
int blockIdBase = 1750;
@@ -116,6 +128,7 @@ public class Config
public void setupItems()
{
ThaumcraftHelper.getThaumcraftItems();
+ ForestryHelper.getForestryItems();
int itemIDBase = 26090;
@@ -162,6 +175,7 @@ public class Config
hiveFrameGentle = new ItemMagicHiveFrame(tbConfig.getItem("frameGentle", itemIDBase++).getInt(), HiveFrameType.GENTLE);
hiveFrameMetabolic = new ItemMagicHiveFrame(tbConfig.getItem("frameMetabolic", itemIDBase++).getInt(), HiveFrameType.METABOLIC);
hiveFrameNecrotic = new ItemMagicHiveFrame(tbConfig.getItem("frameNecrotic", itemIDBase++).getInt(), HiveFrameType.NECROTIC);
+ hiveFrameTemporal = new ItemMagicHiveFrame(tbConfig.getItem("frameTemporal", itemIDBase++).getInt(), HiveFrameType.TEMPORAL);
// Future frames, so they all are clumped together.
itemIDBase++;
itemIDBase++;
@@ -174,6 +188,10 @@ public class Config
itemIDBase++;
// New items here.
+ jellyBaby = new ItemFood(tbConfig.getItem("sugarSnack", itemIDBase++).getInt(), 1, false).setAlwaysEdible()
+ .setPotionEffect(Potion.moveSpeed.id, 5, 1, 1f);
+ jellyBaby.setTextureFile(CommonProxy.TCBEES_ITEMS_IMAGE).setIconIndex(19).setItemName("sugarSnack");
+ LanguageRegistry.addName(jellyBaby, "Jelly Baby");
}
diff --git a/thaumicbees_src/thaumicbees/main/ThaumicBees.java b/thaumicbees_src/thaumicbees/main/ThaumicBees.java
index 8ae4e63..415d868 100644
--- a/thaumicbees_src/thaumicbees/main/ThaumicBees.java
+++ b/thaumicbees_src/thaumicbees/main/ThaumicBees.java
@@ -3,7 +3,6 @@ package thaumicbees.main;
import net.minecraftforge.common.Configuration;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.ForgeSubscribe;
-import thaumicbees.bees.TBBeeManager;
import thaumicbees.compat.CompatabilityManager;
import thaumicbees.main.utils.CraftingManager;
import thaumicbees.main.utils.VersionInfo;
@@ -17,6 +16,7 @@ import forestry.api.core.ItemInterface;
@Mod(
modid="ThaumicBees",
+ name="Thaumic Bees",
useMetadata=true,
acceptedMinecraftVersions=VersionInfo.MCVersion,
version=VersionInfo.Version,
@@ -33,11 +33,9 @@ public class ThaumicBees
private String configsPath;
private Config modConfig;
- private TBBeeManager plugin;
public ThaumicBees()
{
- this.plugin = new TBBeeManager();
}
@Mod.PreInit
@@ -72,14 +70,12 @@ public class ThaumicBees
this.modConfig.setupItems();
CompatabilityManager.setupBackpacks();
-
- plugin.doInit();
}
@Mod.PostInit
public void postInit(FMLPostInitializationEvent event)
{
- plugin.postInit();
+ this.setupBees();
this.modConfig.saveConfigs();
CompatabilityManager.setupItemAspects();
@@ -98,4 +94,11 @@ public class ThaumicBees
{
return object.modConfig;
}
+
+ private void setupBees()
+ {
+ thaumicbees.bees.Allele.setupAdditionalAlleles();
+ thaumicbees.bees.BeeSpecies.setupBeeSpecies();
+ thaumicbees.bees.BeeMutation.setupMutations();
+ }
}
diff --git a/thaumicbees_src/thaumicbees/main/utils/CraftingManager.java b/thaumicbees_src/thaumicbees/main/utils/CraftingManager.java
index b19026b..67489b8 100644
--- a/thaumicbees_src/thaumicbees/main/utils/CraftingManager.java
+++ b/thaumicbees_src/thaumicbees/main/utils/CraftingManager.java
@@ -3,13 +3,15 @@ package thaumicbees.main.utils;
import thaumcraft.api.EnumTag;
import thaumcraft.api.ObjectTags;
import thaumcraft.api.ThaumcraftApi;
+import thaumicbees.bees.Allele;
import thaumicbees.bees.BeeGenomeManager;
-import thaumicbees.bees.genetics.Allele;
+import thaumicbees.bees.BeeSpecies;
import thaumicbees.compat.ShapelessBeeInfusionCraftingRecipe;
import thaumicbees.compat.ThaumcraftHelper;
import thaumicbees.item.ItemCapsule;
import thaumicbees.item.types.CombType;
import thaumicbees.item.types.DropType;
+import thaumicbees.item.types.HiveFrameType;
import thaumicbees.item.types.LiquidType;
import thaumicbees.item.types.PropolisType;
import thaumicbees.item.types.ResourceType;
@@ -40,13 +42,12 @@ public class CraftingManager
// Essentia bottles
ItemStack output = new ItemStack(Config.tcEssentiaBottle);
output.stackSize = 8;
- GameRegistry.addRecipe(output, new Object[]
- {
+ GameRegistry.addRecipe(output, new Object[] {
" C ", "GPG", "PGP",
'G', Config.wax,
'C', Item.clay,
'P', Block.thinGlass
- });
+ });
output = new ItemStack(Config.tcEssentiaBottle);
output.stackSize = 4;
@@ -73,7 +74,7 @@ public class CraftingManager
"SWS", "NCN", "SWS",
'S', Item.silk,
'W', Block.cloth,
- 'N', Item.goldNugget,
+ 'N', new ItemStack(Config.tcMiscResource.itemID, 1, ThaumcraftHelper.MiscResource.AMBER.ordinal()),
'C', Block.chest
});
@@ -228,7 +229,6 @@ public class CraftingManager
});
// Make Aromatic Lumps a swarmer inducer. Chance is /1000.
BeeManager.inducers.put(output, 80);
-
output = Config.miscResources.getStackForType(ResourceType.EXTENDED_FERTILIZER);
ItemStack inputA = ItemInterface.getItem("apatite");
@@ -278,63 +278,60 @@ public class CraftingManager
'S', Item.rottenFlesh,
'x', inputA
});
+
+ output = new ItemStack(Config.hiveFrameTemporal);
+ tags = new ObjectTags().add(EnumTag.WOOD, 4).add(EnumTag.INSECT, 8).add(EnumTag.TIME, 2);
+ ThaumcraftApi.addInfusionCraftingRecipe("HIVEFRAMETIME", "FRAMETIME", 50, tags, output, new Object[] {
+ "tSt", "SFS", "tSt",
+ 't', Item.stick,
+ 'S', Block.sand,
+ 'F', inputA
+ });
- ItemStack drone = BeeGenomeManager.getBeeNBTForSpecies(Allele.Stark, EnumBeeType.DRONE);
- ItemStack princess = BeeGenomeManager.getBeeNBTForSpecies(Allele.Stark, EnumBeeType.PRINCESS);
- ItemStack airDrone = Allele.Air.getBeeItem(EnumBeeType.DRONE);
- ItemStack airPrincess = Allele.Air.getBeeItem(EnumBeeType.PRINCESS);
- ItemStack waterDrone = Allele.Water.getBeeItem(EnumBeeType.DRONE);
- ItemStack waterPrincess = Allele.Water.getBeeItem(EnumBeeType.PRINCESS);
- ItemStack earthDrone = Allele.Earth.getBeeItem(EnumBeeType.DRONE);
- ItemStack earthPrincess = Allele.Earth.getBeeItem(EnumBeeType.PRINCESS);
- ItemStack fireDrone = Allele.Fire.getBeeItem(EnumBeeType.DRONE);
- ItemStack firePrincess = Allele.Fire.getBeeItem(EnumBeeType.PRINCESS);
- ItemStack magicDrone = Allele.Infused.getBeeItem(EnumBeeType.DRONE);
- ItemStack magicPrincess = Allele.Infused.getBeeItem(EnumBeeType.PRINCESS);
+ ItemStack drone = BeeGenomeManager.getBeeNBTForSpecies(BeeSpecies.STARK, EnumBeeType.DRONE);
+ ItemStack princess = BeeGenomeManager.getBeeNBTForSpecies(BeeSpecies.STARK, EnumBeeType.PRINCESS);
String researchKey = "BEEINFUSION";
tags = (new ObjectTags()).add(EnumTag.WIND, 40).add(EnumTag.MOTION, 24);
- ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION1", airDrone,
+ ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION1", BeeSpecies.AIR.getBeeItem(EnumBeeType.DRONE),
new ItemStack[] { drone, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.AIR.ordinal())},
- 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES);
- ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION2", airPrincess,
+ 100, tags, BeeSpecies.STARK, EnumBeeChromosome.SPECIES);
+ ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION2", BeeSpecies.AIR.getBeeItem(EnumBeeType.PRINCESS),
new ItemStack[] { princess , new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.AIR.ordinal()) },
- 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES);
+ 100, tags, BeeSpecies.STARK, EnumBeeChromosome.SPECIES);
tags = (new ObjectTags()).add(EnumTag.FIRE, 40).add( EnumTag.POWER, 24);
- ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION3", fireDrone, new Object[]
+ ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION3", BeeSpecies.FIRE.getBeeItem(EnumBeeType.DRONE), new Object[]
{ drone, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.FIRE.ordinal()) },
- 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES);
- ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION4", firePrincess, new Object[]
+ 100, tags, BeeSpecies.STARK, EnumBeeChromosome.SPECIES);
+ ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION4", BeeSpecies.FIRE.getBeeItem(EnumBeeType.PRINCESS), new Object[]
{ princess, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.FIRE.ordinal()) },
- 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES);
+ 100, tags, BeeSpecies.STARK, EnumBeeChromosome.SPECIES);
tags = (new ObjectTags()).add(EnumTag.WATER, 40).add( EnumTag.COLD, 24);
- ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION5", waterDrone, new Object[]
+ ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION5", BeeSpecies.WATER.getBeeItem(EnumBeeType.DRONE), new Object[]
{ drone, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.WATER.ordinal()) },
- 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES);
- ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION6", waterPrincess, new Object[]
+ 100, tags, BeeSpecies.STARK, EnumBeeChromosome.SPECIES);
+ ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION6", BeeSpecies.WATER.getBeeItem(EnumBeeType.PRINCESS), new Object[]
{ princess, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.WATER.ordinal()) },
- 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES);
+ 100, tags, BeeSpecies.STARK, EnumBeeChromosome.SPECIES);
tags = (new ObjectTags()).add(EnumTag.EARTH, 40).add( EnumTag.ROCK, 24);
- ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION7", earthDrone, new Object[]
+ ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION7", BeeSpecies.EARTH.getBeeItem(EnumBeeType.DRONE), new Object[]
{ drone, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.EARTH.ordinal()) },
- 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES);
- ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION8", earthPrincess, new Object[]
+ 100, tags, BeeSpecies.STARK, EnumBeeChromosome.SPECIES);
+ ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION8", BeeSpecies.EARTH.getBeeItem(EnumBeeType.PRINCESS), new Object[]
{ princess, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.EARTH.ordinal()) },
- 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES);
+ 100, tags, BeeSpecies.STARK, EnumBeeChromosome.SPECIES);
tags = new ObjectTags().add(EnumTag.MAGIC, 40).add(EnumTag.FLUX, 24);
- ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION9", magicDrone, new Object[]
+ ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION9", BeeSpecies.INFUSED.getBeeItem(EnumBeeType.DRONE), new Object[]
{ drone, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.MAGIC.ordinal()) },
- 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES);
- ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION0", magicPrincess, new Object[]
+ 100, tags, BeeSpecies.STARK, EnumBeeChromosome.SPECIES);
+ ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION0", BeeSpecies.INFUSED.getBeeItem(EnumBeeType.PRINCESS), new Object[]
{ princess, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.MAGIC.ordinal()) },
- 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES);
-
-
+ 100, tags, BeeSpecies.STARK, EnumBeeChromosome.SPECIES);
registerLiquidContainer(Config.magicCapsule);
}
@@ -345,9 +342,9 @@ public class CraftingManager
ItemStack filled;
LiquidStack liquid = null;
- for (LiquidType l : LiquidType.values())
+ for (LiquidType liquidType : LiquidType.values())
{
- switch (l)
+ switch (liquidType)
{
case EMPTY:
liquid = null;
@@ -359,23 +356,23 @@ public class CraftingManager
liquid = new LiquidStack(Block.lavaStill, baseCapsule.getType().capacity);
break;
default:
- liquid = LiquidDictionary.getLiquid(l.liquidID, baseCapsule.getType().capacity);
+ liquid = LiquidDictionary.getLiquid(liquidType.liquidID, baseCapsule.getType().capacity);
break;
}
if (liquid != null)
{
- filled = new ItemStack(baseCapsule, 1, l.ordinal());
+ filled = new ItemStack(baseCapsule, 1, liquidType.ordinal());
LiquidContainerRegistry.registerLiquid(new LiquidContainerData(liquid, filled, empty));
// Register with Squeezer/Bottler
RecipeManagers.bottlerManager.addRecipe(5, liquid, empty, filled);
RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[] {filled} , liquid,
Config.wax.getStackForType(WaxType.MAGIC), 20);
- l.available = true;
+ liquidType.available = true;
}
}
// Empty will be set to unavailable. Obviously, it always is.
LiquidType.EMPTY.available = true;
}
-}
+}
\ No newline at end of file
diff --git a/thaumicbees_src/thaumicbees/main/utils/VersionInfo.java b/thaumicbees_src/thaumicbees/main/utils/VersionInfo.java
index d8ee5eb..a62062b 100644
--- a/thaumicbees_src/thaumicbees/main/utils/VersionInfo.java
+++ b/thaumicbees_src/thaumicbees/main/utils/VersionInfo.java
@@ -9,6 +9,6 @@ public class VersionInfo
public static final String Logo = "/gfx/thaumicbees/logo.png";
- public static final String Depends = "required-after:Forestry;required-after:Thaumcraft@[3.0.2b,);after:ExtraBees";
+ public static final String Depends = "required-after:Forestry;required-after:Thaumcraft@[3.0.3,);after:ExtraBees";
}
diff --git a/thaumicbees_src/thaumicbees/tile/TileEntityMagicApiary.java b/thaumicbees_src/thaumicbees/tile/TileEntityMagicApiary.java
new file mode 100644
index 0000000..0bed05e
--- /dev/null
+++ b/thaumicbees_src/thaumicbees/tile/TileEntityMagicApiary.java
@@ -0,0 +1,280 @@
+package thaumicbees.tile;
+
+import forestry.api.apiculture.IBee;
+import forestry.api.apiculture.IBeeGenome;
+import forestry.api.apiculture.IBeeHousing;
+import forestry.api.core.EnumHumidity;
+import forestry.api.core.EnumTemperature;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+
+public class TileEntityMagicApiary extends TileEntity implements IInventory, IBeeHousing
+{
+
+ @Override
+ public int getSizeInventory()
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public ItemStack getStackInSlot(int var1)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public ItemStack decrStackSize(int var1, int var2)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public ItemStack getStackInSlotOnClosing(int var1)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setInventorySlotContents(int var1, ItemStack var2)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public String getInvName()
+ {
+ return "thaumicbees.magicApiary";
+ }
+
+ @Override
+ public int getInventoryStackLimit()
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public boolean isUseableByPlayer(EntityPlayer var1)
+ {
+ return true;
+ }
+
+ @Override
+ public void openChest() { }
+
+ @Override
+ public void closeChest() { }
+
+ @Override
+ public float getTerritoryModifier(IBeeGenome genome)
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public float getMutationModifier(IBeeGenome genome, IBeeGenome mate)
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public float getLifespanModifier(IBeeGenome genome, IBeeGenome mate)
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public float getProductionModifier(IBeeGenome genome)
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public float getFloweringModifier(IBeeGenome genome)
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public boolean isSealed()
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isSelfLighted()
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isSunlightSimulated()
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isHellish()
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void onQueenChange(ItemStack queen)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void wearOutEquipment(int amount)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void onQueenDeath(IBee queen)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void onPostQueenDeath(IBee queen)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public int getXCoord()
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public int getYCoord()
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public int getZCoord()
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public ItemStack getQueen()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public ItemStack getDrone()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setQueen(ItemStack itemstack)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setDrone(ItemStack itemstack)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public int getBiomeId()
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public EnumTemperature getTemperature()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public EnumHumidity getHumidity()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public World getWorld()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getOwnerName()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setErrorState(int state)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public int getErrorOrdinal()
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public boolean canBreed()
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean addProduct(ItemStack product, boolean all)
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+}