Files
MagicBees/magicbees_src/magicbees/main/utils/compat/ThaumcraftHelper.java
T
MysteriousAges 3989430408 3 new essences: Time, armor & oblivion
Crafting recipes for the essences
Recipes for essences -> remaining frames; removed all "no TC" recipes for frames.
Thaumcraft recipe cost reduction on frames
2013-07-19 15:34:54 -07:00

758 lines
36 KiB
Java

package magicbees.main.utils.compat;
import java.util.HashMap;
import magicbees.bees.BeeGenomeManager;
import magicbees.bees.BeeSpecies;
import magicbees.item.ItemThaumiumGrafter;
import magicbees.item.ItemThaumiumScoop;
import magicbees.item.types.CombType;
import magicbees.item.types.DropType;
import magicbees.item.types.HiveFrameType;
import magicbees.item.types.LiquidType;
import magicbees.item.types.PollenType;
import magicbees.item.types.PropolisType;
import magicbees.item.types.ResourceType;
import magicbees.item.types.WaxType;
import magicbees.main.CommonProxy;
import magicbees.main.Config;
import magicbees.main.MagicBees;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
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 cpw.mods.fml.common.event.FMLInterModComms;
import forestry.api.apiculture.EnumBeeChromosome;
import forestry.api.apiculture.EnumBeeType;
import forestry.api.core.BlockInterface;
import forestry.api.core.ItemInterface;
public class ThaumcraftHelper
{
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,
SHIMMERLEAF,
CINDERPEARL;
}
public enum TreeType
{
GREATWOOD,
SILVERWOOD,
;
}
private static boolean isThaumcraftPresent = false;
public static final String Name = "Thaumcraft";
public static boolean isActive()
{
return isThaumcraftPresent;
}
public static void init()
{
if (cpw.mods.fml.common.Loader.isModLoaded(Name))
{
isThaumcraftPresent = true;
registerResearchXML();
}
else
{
// Switch off TC-dependant items.
ResourceType.LORE_FRAGMENT.setHidden();
}
}
public static void getBlocks()
{
if (isActive())
{
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 getItems()
{
if (isActive())
{
Config.tcFilledJar = ItemApi.getItem("itemJarFilled", 0).getItem();
Config.tcMiscResource = ItemApi.getItem("itemResource", 0).getItem();
Config.tcEssentiaBottle = ItemApi.getItem("itemEssence", 0).getItem();
Config.tcShard = ItemApi.getItem("itemShard", 0).getItem();
Config.tcGolem = ItemApi.getItem("itemGolemPlacer", 0).getItem();
Config.tcWispEssence = ItemApi.getItem("itemWispEssence", 0).getItem();
Config.tcNuggets = ItemApi.getItem("itemNugget", 0).getItem();
Config.tcNuggetChicken = ItemApi.getItem("itemNuggetChicken", 0).getItem();
Config.tcNuggetBeef = ItemApi.getItem("itemNuggetBeef", 0).getItem();
Config.tcNuggetPork = ItemApi.getItem("itemNuggetPork", 0).getItem();
}
}
public static void addItemsToBackpack()
{
if (isActive() && MagicBees.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 + ";";
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()
{
if (isActive())
{
setupItemAspectsThaumicBees();
setupItemAspectsForestry();
if (ExtraBeesHelper.isActive())
{
setupItemAspectsExtraBees();
}
}
}
private static void setupItemAspectsThaumicBees()
{
ObjectTags tags;
ItemStack itemStack;
tags = new ObjectTags().add(EnumTag.WOOD, 1);
ThaumcraftApi.registerObjectTag(Config.planksWood.blockID, -1, tags);
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, 2);
ThaumcraftApi.registerObjectTag(Config.pollen.itemID, PollenType.UNUSUAL.ordinal(), tags);
tags = new ObjectTags().add(EnumTag.TIME, 2);
ThaumcraftApi.registerObjectTag(Config.pollen.itemID, PollenType.PHASED.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);
tags = new ObjectTags(Config.combs.itemID, -1).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.HARMONIZING.ordinal(), tags);
tags = new ObjectTags(Config.combs.itemID, -1).add(EnumTag.MAGIC, 4);
ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.INFUSED.ordinal(), tags);
tags = new ObjectTags(Config.combs.itemID, -1).add(EnumTag.MAGIC, 2).add(EnumTag.MOTION, 2);
ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.AIRY.ordinal(), tags);
tags = new ObjectTags(Config.combs.itemID, -1).add(EnumTag.MAGIC, 2).add(EnumTag.POWER, 2);
ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.FIREY.ordinal(), tags);
tags = new ObjectTags(Config.combs.itemID, -1).add(EnumTag.MAGIC, 2).add(EnumTag.COLD, 2);
ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.WATERY.ordinal(), tags);
tags = new ObjectTags(Config.combs.itemID, -1).add(EnumTag.MAGIC, 2).add(EnumTag.ROCK, 2);
ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.EARTHY.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, 2);
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.TOOL, 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.TOOL, 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, 28).add(EnumTag.EXCHANGE, 8);
ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags);
itemStack = ItemInterface.getItem("stickImpregnated");
tags = new ObjectTags().add(EnumTag.WOOD, 3).add(EnumTag.EXCHANGE, 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, 4);
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, 1);
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;
try // One try block suffices. If we can't get one item, it's probably safe to assume we can't get any others.
{
itemStack = ExtraBeesHelper.getExtraBeeItem("comb");
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.POWER, 2);
ThaumcraftApi.registerObjectTag(itemStack.itemID, ExtraBeesHelper.CombType.OIL.ordinal(), tags);
ThaumcraftApi.registerObjectTag(itemStack.itemID, ExtraBeesHelper.CombType.COAL.ordinal(), tags);
ThaumcraftApi.registerObjectTag(itemStack.itemID, ExtraBeesHelper.CombType.FUEL.ordinal(), tags);
ThaumcraftApi.registerObjectTag(itemStack.itemID, ExtraBeesHelper.CombType.ALCOHOL.ordinal(), tags);
ThaumcraftApi.registerObjectTag(itemStack.itemID, ExtraBeesHelper.CombType.REDSTONE.ordinal(), tags);
ThaumcraftApi.registerObjectTag(itemStack.itemID, ExtraBeesHelper.CombType.URANIUM.ordinal(), tags);
tags = new ObjectTags(itemStack.itemID, -1).add(EnumTag.POISON, 2);
ThaumcraftApi.registerObjectTag(itemStack.itemID, ExtraBeesHelper.CombType.VENOMOUS.ordinal(), tags);
itemStack = ExtraBeesHelper.getExtraBeeItem("propolis");
tags = new ObjectTags().add(EnumTag.CONTROL, 1);
ThaumcraftApi.registerObjectTag(itemStack.itemID, -1, tags);
itemStack = ExtraBeesHelper.getExtraBeeItem("honeyDrop");
tags = new ObjectTags().add(EnumTag.EXCHANGE, 2).add(EnumTag.LIFE, 1);
ThaumcraftApi.registerObjectTag(itemStack.itemID, -1, tags);
}
catch (NullPointerException e) { }
}
public static void setupResearch()
{
if (isActive())
{
ObjectTags tags;
tags = new ObjectTags().add(EnumTag.WOOD, 10).add(EnumTag.PLANT, 10).add(EnumTag.INSECT, 10);
ResearchItem startNode = new ResearchItem("BEESTARTNODE", tags, 10, 1, Config.miscResources.getStackForType(ResourceType.RESEARCH_STARTNODE))
.setParents(ResearchList.getResearch("UTFT"))
.registerResearchItem();
tags = new ObjectTags().add(EnumTag.CROP, 15).add(EnumTag.EARTH, 15).add(EnumTag.WATER, 15);
ResearchItem fertilizer = new ResearchItem("FERTILIZER", tags, 16, 0, ItemInterface.getItem("apatite"))
.setParents(startNode)
.registerResearchItem();
tags = new ObjectTags().add(EnumTag.TOOL, 6).add(EnumTag.INSECT, 10).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.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);
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();
tags = new ObjectTags().add(EnumTag.VOID, 15).add(EnumTag.CRYSTAL, 8).add(EnumTag.ELDRITCH, 8).add(EnumTag.EXCHANGE, 15);
ResearchItem voidCapsule = new ResearchItem("VOIDCAPSULE", tags, 10, 9, Config.voidCapsule)
.setParents(startNode, ResearchList.getResearch("PORTABLEHOLE")).setHidden()
.registerResearchItem();
tags = new ObjectTags().add(EnumTag.WOOD, 8).add(EnumTag.INSECT, 10).add(EnumTag.TOOL, 6).add(EnumTag.MAGIC, 6);
ResearchItem scoop = new ResearchItem("THAUMIUMSCOOP", tags, 0, -3, Config.thaumiumScoop)
.setParents(ResearchList.getResearch("THAUMIUM"))
.registerResearchItem();
tags = new ObjectTags().add(EnumTag.WOOD, 16).add(EnumTag.PLANT, 20).add(EnumTag.TOOL, 6).add(EnumTag.MAGIC, 6);
ResearchItem grafter = new ResearchItem("THAUMIUMGRAFTER", tags, 0, -4, Config.thaumiumGrafter)
.setParents(scoop)
.registerResearchItem();
}
}
private static void registerResearchXML()
{
if (isActive())
{
ThaumcraftApi.registerResearchXML(CommonProxy.TCBEES_RESEARCH + "research.xml");
}
}
public static void setupThaumcraftCrafting()
{
ItemStack input;
ItemStack output;
if (MagicBees.getConfig().UseImpregnatedStickInTools)
{
input = ItemInterface.getItem("stickImpregnated");
}
else
{
input = new ItemStack(Item.stick);
}
ThaumcraftApi.addArcaneCraftingRecipe("THAUMIUMSCOOP", "THAUMIUMSCOOP", 20, new ItemStack(Config.thaumiumScoop), new Object[] {
"sWs", "sTs", " T ",
's', input,
'W', Block.cloth,
'T', new ItemStack(Config.tcMiscResource, 1, ThaumcraftHelper.MiscResource.THAUMIUM.ordinal())
});
ThaumcraftApi.addArcaneCraftingRecipe("THAUMIUMGRAFTER", "THAUMIUMGRAFTER", 160, new ItemStack(Config.thaumiumGrafter), new Object[] {
" T", " T ", "s ",
's', input,
'T', new ItemStack(Config.tcMiscResource, 1, ThaumcraftHelper.MiscResource.THAUMIUM.ordinal())
});
output = Config.miscResources.getStackForType(ResourceType.EXTENDED_FERTILIZER);
input = ItemInterface.getItem("apatite");
ObjectTags tags = (new ObjectTags()).add(EnumTag.CROP, 12);
output.stackSize = 2;
ThaumcraftApi.addShapelessInfusionCraftingRecipe("FERTILIZER", "FERTILIZER", 5, tags, output, new Object[] {
input
});
output = new ItemStack(Config.hiveFrameMagic);
input = ItemInterface.getItem("frameUntreated");
tags = new ObjectTags().add(EnumTag.WOOD, 4).add(EnumTag.MAGIC, 2);
ThaumcraftApi.addShapelessInfusionCraftingRecipe("HIVEFRAME", "FRAMEMAGIC", 20, tags, output, new Object[] {
input
});
output = new ItemStack(Config.hiveFrameResilient);
tags = new ObjectTags().add(EnumTag.WOOD, 12).add(EnumTag.MAGIC, 2).add(EnumTag.EXCHANGE, 8);
ThaumcraftApi.addInfusionCraftingRecipe("HIVEFRAME2", "FRAMERESILIENT", 35, tags, output, new Object[] {
"ifi",
'f', Config.hiveFrameMagic,
'i', Item.ingotIron
});
output = new ItemStack(Config.hiveFrameGentle);
tags = new ObjectTags().add(EnumTag.WOOD, 4).add(EnumTag.MAGIC, 2).add(EnumTag.LIFE, 8);
ThaumcraftApi.addInfusionCraftingRecipe("HIVEFRAMEGENTLE", "FRAMEGENTLE", 35, tags, output, new Object[] {
" w ", "wFw", " w ",
'F', input,
'w', ItemInterface.getItem("beeswax")
});
output = new ItemStack(Config.hiveFrameMetabolic);
tags = new ObjectTags().add(EnumTag.WOOD, 6).add(EnumTag.MAGIC, 2).add(EnumTag.LIFE, 4).add(EnumTag.EXCHANGE, 8);
ThaumcraftApi.addShapelessInfusionCraftingRecipe("HIVEFRAMEMETA", "FRAMEMETABOLIC", 50, tags, output, new Object[] {
Item.magmaCream,
input
});
output = new ItemStack(Config.hiveFrameNecrotic);
tags = new ObjectTags().add(EnumTag.WOOD, 6).add(EnumTag.MAGIC, 2).add(EnumTag.EXCHANGE, 12).add(EnumTag.DEATH, 8);
ThaumcraftApi.addInfusionCraftingRecipe("HIVEFRAMENECRO", "FRAMENECROTIC", 35, tags, output, new Object[] {
"SxS",
'S', Item.rottenFlesh,
'x', input
});
output = new ItemStack(Config.hiveFrameTemporal);
tags = new ObjectTags().add(EnumTag.WOOD, 6).add(EnumTag.MAGIC, 2).add(EnumTag.TIME, 1);
ThaumcraftApi.addInfusionCraftingRecipe("HIVEFRAMETIME", "FRAMETIME", 50, tags, output, new Object[] {
"tSt", "SFS", "tSt",
't', Item.stick,
'S', Block.sand,
'F', input
});
output = Config.voidCapsule.getCapsuleForLiquid(LiquidType.EMPTY);
output.stackSize = 4;
tags = new ObjectTags().add(EnumTag.VOID, 16).add(EnumTag.ELDRITCH, 2).add(EnumTag.EXCHANGE, 8);
ThaumcraftApi.addInfusionCraftingRecipe("VOIDCAPSULE", "VOIDCAPSULE", 10, tags, output, new Object[] {
" G ", "GPG", "TGT",
'G', Block.thinGlass,
'P', Item.enderPearl,
'T', Item.ingotIron
});
ItemStack drone = BeeGenomeManager.getBeeNBTForSpecies(BeeSpecies.TC_STARK, EnumBeeType.DRONE);
ItemStack princess = BeeGenomeManager.getBeeNBTForSpecies(BeeSpecies.TC_STARK, EnumBeeType.PRINCESS);
String researchKey = "BEEINFUSION";
tags = (new ObjectTags()).add(EnumTag.WIND, 40).add(EnumTag.MOTION, 24);
ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION1", BeeSpecies.TC_AIR.getBeeItem(EnumBeeType.DRONE),
new ItemStack[] { drone, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.AIR.ordinal())},
100, tags, BeeSpecies.TC_STARK, EnumBeeChromosome.SPECIES);
ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION2", BeeSpecies.TC_AIR.getBeeItem(EnumBeeType.PRINCESS),
new ItemStack[] { princess , new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.AIR.ordinal()) },
100, tags, BeeSpecies.TC_STARK, EnumBeeChromosome.SPECIES);
tags = (new ObjectTags()).add(EnumTag.FIRE, 40).add( EnumTag.POWER, 24);
ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION3", BeeSpecies.TC_FIRE.getBeeItem(EnumBeeType.DRONE), new Object[]
{ drone, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.FIRE.ordinal()) },
100, tags, BeeSpecies.TC_STARK, EnumBeeChromosome.SPECIES);
ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION4", BeeSpecies.TC_FIRE.getBeeItem(EnumBeeType.PRINCESS), new Object[]
{ princess, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.FIRE.ordinal()) },
100, tags, BeeSpecies.TC_STARK, EnumBeeChromosome.SPECIES);
tags = (new ObjectTags()).add(EnumTag.WATER, 40).add( EnumTag.COLD, 24);
ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION5", BeeSpecies.TC_WATER.getBeeItem(EnumBeeType.DRONE), new Object[]
{ drone, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.WATER.ordinal()) },
100, tags, BeeSpecies.TC_STARK, EnumBeeChromosome.SPECIES);
ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION6", BeeSpecies.TC_WATER.getBeeItem(EnumBeeType.PRINCESS), new Object[]
{ princess, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.WATER.ordinal()) },
100, tags, BeeSpecies.TC_STARK, EnumBeeChromosome.SPECIES);
tags = (new ObjectTags()).add(EnumTag.EARTH, 40).add( EnumTag.ROCK, 24);
ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION7", BeeSpecies.TC_EARTH.getBeeItem(EnumBeeType.DRONE), new Object[]
{ drone, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.EARTH.ordinal()) },
100, tags, BeeSpecies.TC_STARK, EnumBeeChromosome.SPECIES);
ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION8", BeeSpecies.TC_EARTH.getBeeItem(EnumBeeType.PRINCESS), new Object[]
{ princess, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.EARTH.ordinal()) },
100, tags, BeeSpecies.TC_STARK, EnumBeeChromosome.SPECIES);
tags = new ObjectTags().add(EnumTag.MAGIC, 40).add(EnumTag.FLUX, 24);
ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION9", BeeSpecies.TC_MAGIC.getBeeItem(EnumBeeType.DRONE), new Object[]
{ drone, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.MAGIC.ordinal()) },
100, tags, BeeSpecies.TC_STARK, EnumBeeChromosome.SPECIES);
ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION0", BeeSpecies.TC_MAGIC.getBeeItem(EnumBeeType.PRINCESS), new Object[]
{ princess, new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.MAGIC.ordinal()) },
100, tags, BeeSpecies.TC_STARK, EnumBeeChromosome.SPECIES);
}
}