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; + } +}