diff --git a/magicbees_res/assets/magicbees/lang/en_US.xml b/magicbees_res/assets/magicbees/lang/en_US.xml index aaf77cd..b9e5f1f 100644 --- a/magicbees_res/assets/magicbees/lang/en_US.xml +++ b/magicbees_res/assets/magicbees/lang/en_US.xml @@ -411,5 +411,11 @@ These bees have a changeable nature.|Apinomicon Essential These bees have an increased affinity for aspected magic.|Apinomicon + + + Apimancy + Apimancy + Adding some sparkle to your buzz. + Don't get too excited.\This is just a test. diff --git a/magicbees_res/assets/magicbees/textures/items/TCairDust.png b/magicbees_res/assets/magicbees/textures/items/TCairDust.png new file mode 100644 index 0000000..cc2c61a Binary files /dev/null and b/magicbees_res/assets/magicbees/textures/items/TCairDust.png differ diff --git a/magicbees_res/assets/magicbees/textures/items/TCchaosDust.png b/magicbees_res/assets/magicbees/textures/items/TCchaosDust.png new file mode 100644 index 0000000..5d4daa9 Binary files /dev/null and b/magicbees_res/assets/magicbees/textures/items/TCchaosDust.png differ diff --git a/magicbees_res/assets/magicbees/textures/items/TCearthDust.png b/magicbees_res/assets/magicbees/textures/items/TCearthDust.png new file mode 100644 index 0000000..90bcf33 Binary files /dev/null and b/magicbees_res/assets/magicbees/textures/items/TCearthDust.png differ diff --git a/magicbees_res/assets/magicbees/textures/items/TCfireDust.png b/magicbees_res/assets/magicbees/textures/items/TCfireDust.png new file mode 100644 index 0000000..b38f86c Binary files /dev/null and b/magicbees_res/assets/magicbees/textures/items/TCfireDust.png differ diff --git a/magicbees_res/assets/magicbees/textures/items/TCorderDust.png b/magicbees_res/assets/magicbees/textures/items/TCorderDust.png new file mode 100644 index 0000000..1416309 Binary files /dev/null and b/magicbees_res/assets/magicbees/textures/items/TCorderDust.png differ diff --git a/magicbees_res/assets/magicbees/textures/items/TCwaterDust.png b/magicbees_res/assets/magicbees/textures/items/TCwaterDust.png new file mode 100644 index 0000000..e0d9484 Binary files /dev/null and b/magicbees_res/assets/magicbees/textures/items/TCwaterDust.png differ diff --git a/magicbees_res/assets/magicbees/textures/items/dimensionalSingularity.png b/magicbees_res/assets/magicbees/textures/items/dimensionalSingularity.png new file mode 100644 index 0000000..942b7a9 Binary files /dev/null and b/magicbees_res/assets/magicbees/textures/items/dimensionalSingularity.png differ diff --git a/magicbees_res/build.xml b/magicbees_res/build.xml index f5c99c2..3ef1c1f 100644 --- a/magicbees_res/build.xml +++ b/magicbees_res/build.xml @@ -15,7 +15,7 @@ - + diff --git a/magicbees_res/changelog.txt b/magicbees_res/changelog.txt index 509cef0..09918b4 100644 --- a/magicbees_res/changelog.txt +++ b/magicbees_res/changelog.txt @@ -1,3 +1,8 @@ +2.1.4 +Some cleanup of Helper code +Hammering out rest of Transmutation effect, and exposing parts of it in an API so other people can hook into it if they want. +Trying out tying in Thaumcraft 4 stuff. + 2.1.3 Added a new mini bee branch: Polymorphic. It is said Unusual bees can have some unusual effects on the world if they are advanced... Altered mutation to get Minium bees to fit into the Polymorphic branch. diff --git a/magicbees_src/magicbees/api/MagicBeesAPI.java b/magicbees_src/magicbees/api/MagicBeesAPI.java new file mode 100644 index 0000000..1c8087e --- /dev/null +++ b/magicbees_src/magicbees/api/MagicBeesAPI.java @@ -0,0 +1,9 @@ +package magicbees.api; + +import magicbees.api.bees.ITransmutationEffectController; + +public class MagicBeesAPI +{ + // Use this object during or after the Mod.Init phase to add your logic to the Transmutation bee effect. + public static ITransmutationEffectController transmutationEffectController; +} diff --git a/magicbees_src/magicbees/api/bees/ITransmutationEffectController.java b/magicbees_src/magicbees/api/bees/ITransmutationEffectController.java new file mode 100644 index 0000000..0c9b0da --- /dev/null +++ b/magicbees_src/magicbees/api/bees/ITransmutationEffectController.java @@ -0,0 +1,14 @@ +package magicbees.api.bees; + +/** + * Manages adding custom ITransmutationEffectLogic instances into the bee effect + * system. + * + * @author MysteriousAges + * + */ +public interface ITransmutationEffectController +{ + public void addEffectLogic(ITransmutationEffectLogic logic); + +} diff --git a/magicbees_src/magicbees/api/bees/ITransmutationEffectLogic.java b/magicbees_src/magicbees/api/bees/ITransmutationEffectLogic.java new file mode 100644 index 0000000..e266723 --- /dev/null +++ b/magicbees_src/magicbees/api/bees/ITransmutationEffectLogic.java @@ -0,0 +1,33 @@ +package magicbees.api.bees; + +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; + +/** + * Class to control plugin logic for the Transmutation bee effect. Turns blocks + * into other blocks based on biome, time of day, or whatever is deemed + * appropriate at the time. + * + * @author MysteriousAges + * + */ +public interface ITransmutationEffectLogic +{ + /** + * Allows an external mod to add transmutation logic to the Transmuting bee effect. + * Called from a list of ITransmutationEffectLogic until one returns true. You can + * implement more than one transmutation effect in a single implementation of the + * interface. Function checks for a series of conditions based on block ID/meta, or + * biome information, or world information. + * + * @param world World object + * @param biome Biome information for current coordinates + * @param sourceBlock ItemStack representing the block at current coordinates + * @param x Current X coordinate to attempt a transmute + * @param y Current Y coordinate to attempt a transmute + * @param z Current Z coordinate to attempt a transmute + * @return true if a block was changed. + */ + public boolean tryTransmutation(World world, BiomeGenBase biome, ItemStack sourceBlock, int x, int y, int z); +} diff --git a/magicbees_src/magicbees/bees/Allele.java b/magicbees_src/magicbees/bees/Allele.java index 725aacd..9a38888 100644 --- a/magicbees_src/magicbees/bees/Allele.java +++ b/magicbees_src/magicbees/bees/Allele.java @@ -162,12 +162,12 @@ public class Allele implements IAllele registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesDiamond", BeeSpecies.DIAMOND); registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesEmerald", BeeSpecies.EMERALD); registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesApatite", BeeSpecies.APATITE); - registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesStark", BeeSpecies.TC_STARK); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesStark", BeeSpecies.TC_CHAOS); registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesAura", BeeSpecies.TC_AIR); registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesIgnis", BeeSpecies.TC_FIRE); registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesAqua", BeeSpecies.TC_WATER); registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesSolum", BeeSpecies.TC_EARTH); - registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesPraecantatio", BeeSpecies.TC_MAGIC); + registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesPraecantatio", BeeSpecies.TC_ORDER); registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesVis", BeeSpecies.TC_VIS); registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesPure", BeeSpecies.TC_PURE); registry.registerDeprecatedAlleleReplacement("thaumicbees.speciesFlux", BeeSpecies.TC_FLUX); diff --git a/magicbees_src/magicbees/bees/AlleleEffectTransmuting.java b/magicbees_src/magicbees/bees/AlleleEffectTransmuting.java index 7666368..5bfc304 100644 --- a/magicbees_src/magicbees/bees/AlleleEffectTransmuting.java +++ b/magicbees_src/magicbees/bees/AlleleEffectTransmuting.java @@ -18,7 +18,7 @@ public class AlleleEffectTransmuting extends AlleleEffect { public AlleleEffectTransmuting(String id, boolean isDominant) { - super(id, isDominant, 900); + super(id, isDominant, 200); } @Override @@ -43,76 +43,13 @@ public class AlleleEffectTransmuting extends AlleleEffect int zCoord = (int)(housing.getTerritoryModifier(genome, 1f) * genome.getTerritory()[0]); zCoord = housing.getZCoord() + world.rand.nextInt(zCoord) - zCoord / 2; - // Check if == stone - boolean doTransmute = false; - Block block = Block.blocksList[world.getBlockId(xCoord, yCoord, zCoord)]; - if (block == null || block == Block.stone || block == Block.cobblestone) - { - doTransmute = true; - } - else if (block != null) - { - ItemStack cobbleItem = new ItemStack(Block.cobblestone); - ItemStack stoneItem = new ItemStack(Block.stone); - ItemStack testItem = new ItemStack(block); - doTransmute = OreDictionary.itemMatches(cobbleItem, testItem, false) || OreDictionary.itemMatches(stoneItem, cobbleItem, false); - } - - // Transmute to something. - if (doTransmute) - { - BiomeGenBase biome = world.getBiomeGenForCoords(xCoord, zCoord); - // Gogo shortcutting logic operators! - boolean tryThis = trySpawnAbyssalStone(world, biome, xCoord, yCoord, zCoord) || - trySpawnQuarriedStone(world, biome, xCoord, yCoord, zCoord) || - trySpawnSandstone(world, biome, xCoord, yCoord, zCoord); - } + BiomeGenBase biome = world.getBiomeGenForCoords(xCoord, zCoord); + TransmutationEffectController.instance.attemptTransmutations(world, biome, + new ItemStack(world.getBlockId(xCoord, yCoord, zCoord), 1, world.getBlockMetadata(xCoord, yCoord, zCoord)), + xCoord, yCoord, zCoord); + storedData.setInteger(0, 0); return storedData; } - - private boolean trySpawnQuarriedStone(World world, BiomeGenBase biome, int x, int y, int z) - { - boolean flag = false; - if (BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.FOREST) && - !BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.FROZEN)) - { - ItemStack item = GameRegistry.findItemStack("Railcraft", "stone.abyssal", 1); - if (item != null) - { - world.setBlock(x, y, z, item.itemID, item.getItemDamage(), 2); - flag = true; - } - } - return flag; - } - - private boolean trySpawnAbyssalStone(World world, BiomeGenBase biome, int x, int y, int z) - { - boolean flag = false; - if (BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.WATER) && - biome.biomeName.toLowerCase(Locale.ENGLISH).contains("river")) - { - ItemStack item = GameRegistry.findItemStack("Railcraft", "stone.quarried", 1); - if (item != null) - { - world.setBlock(x, y, z, item.itemID, item.getItemDamage(), 2); - flag = true; - } - } - return flag; - } - - private boolean trySpawnSandstone(World world, BiomeGenBase biome, int x, int y, int z) - { - boolean flag = false; - if (BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.DESERT)) - { - world.setBlock(x, y, z, Block.sandStone.blockID); - flag = true; - } - return flag; - } - } diff --git a/magicbees_src/magicbees/bees/BeeGenomeManager.java b/magicbees_src/magicbees/bees/BeeGenomeManager.java index f3dd912..1ff64a9 100644 --- a/magicbees_src/magicbees/bees/BeeGenomeManager.java +++ b/magicbees_src/magicbees/bees/BeeGenomeManager.java @@ -772,7 +772,7 @@ public class BeeGenomeManager { IAllele[] genome = getTemplateTCBase(); - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_STARK; + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_CHAOS; genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityNormal"); return genome; @@ -843,7 +843,7 @@ public class BeeGenomeManager { IAllele[] genome = getTemplateTCBase(); - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_MAGIC; + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.TC_ORDER; genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedNorm"); genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanNormal"); diff --git a/magicbees_src/magicbees/bees/BeeMutation.java b/magicbees_src/magicbees/bees/BeeMutation.java index a2a42bf..86b4bd9 100644 --- a/magicbees_src/magicbees/bees/BeeMutation.java +++ b/magicbees_src/magicbees/bees/BeeMutation.java @@ -114,7 +114,7 @@ public class BeeMutation implements IBeeMutation .setBiomeRequired(BiomeDictionary.Type.END); new BeeMutation(BeeSpecies.UNUSUAL, BeeSpecies.ELDRITCH, BeeSpecies.MUTABLE, 12); - //new BeeMutation(BeeSpecies.UNUSUAL, BeeSpecies.MUTABLE, BeeSpecies.TRANSMUTING, 9); + new BeeMutation(BeeSpecies.UNUSUAL, BeeSpecies.MUTABLE, BeeSpecies.TRANSMUTING, 9); new BeeMutation(BeeSpecies.UNUSUAL, BeeSpecies.MUTABLE, BeeSpecies.CRUMBLING, 9); if (BeeSpecies.COPPER.isActive()) @@ -181,19 +181,7 @@ public class BeeMutation implements IBeeMutation .setBlockRequired("oreApatite"); if (ThaumcraftHelper.isActive()) - { - BeeSpecies[] speciesList = new BeeSpecies[] {BeeSpecies.WINDY, BeeSpecies.FIREY, BeeSpecies.WATERY, BeeSpecies.EARTHY}; - - for (int a = 0; a < speciesList.length; ++a) - { - for (int b = a + 1; b < speciesList.length; ++b) - { - new BeeMutation(speciesList[a], speciesList[b], BeeSpecies.TC_STARK, 8) - .setBlockRequired(Config.tcCrystal) - .setBlockRequiredNameOverride("research.block.crystals"); - } - } - + { new BeeMutation(BeeSpecies.WINDY, BeeSpecies.WINDY, BeeSpecies.TC_AIR, 8) .setBlockAndMetaRequired(Config.tcCrystal, ThaumcraftHelper.ShardType.AIR.ordinal()); new BeeMutation(BeeSpecies.FIREY, BeeSpecies.FIREY, BeeSpecies.TC_FIRE, 8) @@ -202,22 +190,11 @@ public class BeeMutation implements IBeeMutation .setBlockAndMetaRequired(Config.tcCrystal, ThaumcraftHelper.ShardType.WATER.ordinal()); new BeeMutation(BeeSpecies.EARTHY, BeeSpecies.EARTHY, BeeSpecies.TC_EARTH, 8) .setBlockAndMetaRequired(Config.tcCrystal, ThaumcraftHelper.ShardType.EARTH.ordinal()); - new BeeMutation(BeeSpecies.ETHEREAL, BeeSpecies.ETHEREAL, BeeSpecies.TC_MAGIC, 8) - .setBlockAndMetaRequired(Config.tcCrystal, ThaumcraftHelper.ShardType.MAGIC.ordinal()); - /* - new BeeMutation(BeeSpecies.ELDRITCH, BeeSpecies.ETHEREAL, BeeSpecies.TC_VIS, 10) - .setAuraNodeRequired(75); - new BeeMutation(Allele.getBaseSpecies("Demonic"), BeeSpecies.TC_VIS, BeeSpecies.TC_FLUX, 8) - .setAuraNodeTypeRequired(50, thaumcraft.api.aura.EnumNodeType.DARK); - new BeeMutation(BeeSpecies.TC_VIS, BeeSpecies.TC_FLUX, BeeSpecies.TC_ATTRACT, 13) - .setAuraNodeTypeRequired(30, EnumNodeType.UNSTABLE) - .setMoonPhaseRestricted(MoonPhase.NEW, MoonPhase.NEW); - new BeeMutation(Allele.getBaseSpecies("Imperial"), BeeSpecies.TC_VIS, BeeSpecies.TC_REJUVENATING, 8) - .setAuraNodeRequired(25); - new BeeMutation(BeeSpecies.TC_VIS, BeeSpecies.TC_REJUVENATING, BeeSpecies.TC_PURE, 6) - .setAuraNodeTypeRequired(10, thaumcraft.api.aura.EnumNodeType.PURE) - .setMoonPhaseRestricted(MoonPhase.FULL, MoonPhase.FULL); - */ + new BeeMutation(BeeSpecies.ETHEREAL, BeeSpecies.ARCANE, BeeSpecies.TC_ORDER, 8) + .setBlockAndMetaRequired(Config.tcCrystal, ThaumcraftHelper.ShardType.ORDER.ordinal()); + new BeeMutation(BeeSpecies.ETHEREAL, BeeSpecies.SUPERNATURAL, BeeSpecies.TC_CHAOS, 8) + .setBlockAndMetaRequired(Config.tcCrystal, ThaumcraftHelper.ShardType.CHAOS.ordinal()); + new BeeMutation(BeeSpecies.SKULKING, BeeSpecies.WINDY, BeeSpecies.TC_BATTY, 9); new BeeMutation(BeeSpecies.SKULKING, BeeSpecies.PUPIL, BeeSpecies.TC_BRAINY, 9); new BeeMutation(BeeSpecies.ETHEREAL, BeeSpecies.GHASTLY, BeeSpecies.TC_WISPY, 9) @@ -267,7 +244,6 @@ public class BeeMutation implements IBeeMutation private MoonPhase moonPhaseEnd; private float moonPhaseMutationBonus; private boolean nodeRequired; - //private thaumcraft.api.aura.EnumNodeType nodeType; private double nodeRange; private boolean requiresBlock; private int requiredBlockId; @@ -326,28 +302,6 @@ public class BeeMutation implements IBeeMutation } } - /*if (this.nodeRequired) - { - int nodeId = thaumcraft.api.ThaumcraftApi.getClosestAuraWithinRange(housing.getWorld(), - housing.getXCoord(), housing.getYCoord(), housing.getZCoord(), this.nodeRange); - if (nodeId >= 0) - { - if (this.nodeType != null) - { - // Needs a _specific_ variety of node - thaumcraft.api.aura.AuraNode node = thaumcraft.api.ThaumcraftApi.getNodeCopy(nodeId); - if (node.type != this.nodeType) - { - chance = 0; - } - } - } - else - { - chance = 0; - } - }*/ - if (this.requiresBlock) { Block blockBelow; @@ -471,19 +425,6 @@ public class BeeMutation implements IBeeMutation } } - /*if (this.nodeRequired) - { - if (this.nodeType != null) - { - conditions.add(String.format(LocalizationManager.getLocalizedString("research.requiresNodeSpecific"), - LocalizationManager.getLocalizedString("research.node." + this.nodeType.name().toLowerCase()))); - } - else - { - conditions.add(LocalizationManager.getLocalizedString("research.requiresNode")); - } - }*/ - if (this.requiresBlock) { if (this.requiredBlockName != null) @@ -611,21 +552,6 @@ public class BeeMutation implements IBeeMutation return this; } - /*public BeeMutation setAuraNodeRequired(double range) - { - this.nodeRequired = true; - this.nodeRange = range; - - return this; - } - - public BeeMutation setAuraNodeTypeRequired(double range, thaumcraft.api.aura.EnumNodeType type) - { - this.nodeType = type; - - return this.setAuraNodeRequired(range); - }*/ - public BeeMutation setBiomeRequired(BiomeDictionary.Type biomeType) { this.requiredBiomeType = biomeType; diff --git a/magicbees_src/magicbees/bees/BeeSpecies.java b/magicbees_src/magicbees/bees/BeeSpecies.java index c401bb8..58ec0a1 100644 --- a/magicbees_src/magicbees/bees/BeeSpecies.java +++ b/magicbees_src/magicbees/bees/BeeSpecies.java @@ -168,7 +168,7 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider BeeClassification.TRANSMUTING, 0xDBB24C, 0xDBA4A4, EnumTemperature.HOT, EnumHumidity.ARID, false, false), // --------- Thaumcraft Bees --------------------------------------------------------------------------------------- - TC_STARK("TCStark", "torridae", // Stark + TC_CHAOS("TCStark", "torridae", // Stark BeeClassification.THAUMIC, 0xCCCCCC, 0x999999, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, false), TC_AIR("TCAir", "aether", // Aura BeeClassification.THAUMIC, 0xD9D636, 0x999999, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, true), @@ -178,7 +178,7 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider BeeClassification.THAUMIC, 0x36CFD9, 0x999999, EnumTemperature.NORMAL, EnumHumidity.DAMP, true, true), TC_EARTH("TCEarth", "sordida", // Solum BeeClassification.THAUMIC, 0x005100, 0x999999, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, true), - TC_MAGIC("TCMagic", "azanorius", //Praecantatio + TC_ORDER("TCMagic", "azanorius", //Praecantatio BeeClassification.THAUMIC, 0xaa32fc, 0x999999, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, true), TC_VIS("TCVis", "arcanus saecula", @@ -249,12 +249,12 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider SCHOLARLY.addSpecialty(Config.miscResources.getStackForType(ResourceType.LORE_FRAGMENT), 2); SAVANT.addSpecialty(Config.miscResources.getStackForType(ResourceType.LORE_FRAGMENT), 5); - TC_STARK.addSpecialty(new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.DULL.ordinal()), 5); TC_AIR.addSpecialty(new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.AIR.ordinal()), 5); TC_FIRE.addSpecialty(new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.FIRE.ordinal()), 5); TC_WATER.addSpecialty(new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.WATER.ordinal()), 5); TC_EARTH.addSpecialty(new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.EARTH.ordinal()), 5); - TC_MAGIC.addSpecialty(new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.MAGIC.ordinal()), 5); + TC_ORDER.addSpecialty(new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.ORDER.ordinal()), 5); + TC_CHAOS.addSpecialty(new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.CHAOS.ordinal()), 5); TC_BRAINY.addSpecialty(new ItemStack(Config.tcMiscResource, 1, ThaumcraftHelper.MiscResource.ZOMBIE_BRAIN.ordinal()), 2); TC_CHICKEN.addSpecialty(new ItemStack(Config.tcNuggetChicken, 1), 9); @@ -263,20 +263,20 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider } else { - TC_STARK.setInactive(); + TC_CHAOS.setInactive(); TC_AIR.setInactive(); TC_FIRE.setInactive(); TC_WATER.setInactive(); TC_EARTH.setInactive(); - TC_MAGIC.setInactive(); + TC_ORDER.setInactive(); TC_BRAINY.setInactive(); - TC_WISPY.setInactive(); TC_BATTY.setInactive(); TC_CHICKEN.setInactive(); TC_BEEF.setInactive(); TC_PORK.setInactive(); } // TODO: Temporary always off. Maybe. + TC_WISPY.setInactive(); TC_VIS.setInactive(); TC_FLUX.setInactive(); TC_ATTRACT.setInactive(); @@ -592,14 +592,14 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider .addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.SILKY.ordinal()), 10) .addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.SIMMERING.ordinal()), 10) .setGenome(BeeGenomeManager.getTemplateTransmuting()) - ;//.register(); + .register(); CRUMBLING.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.POWDERY.ordinal()), 20) .addProduct(new ItemStack(Config.fBeeComb, 1 , ForestryHelper.Comb.COCOA.ordinal()), 20) .setGenome(BeeGenomeManager.getTemplateCrumbling()) .register(); - TC_STARK.addProduct(Config.combs.getStackForType(CombType.HARMONIZING), 10) + TC_CHAOS.addProduct(Config.combs.getStackForType(CombType.HARMONIZING), 10) .setGenome(BeeGenomeManager.getTemplateTCStark()) .register(); TC_AIR.addProduct(Config.combs.getStackForType(CombType.AIRY), 10) @@ -614,7 +614,7 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider TC_EARTH.addProduct(Config.combs.getStackForType(CombType.EARTHY), 20) .setGenome(BeeGenomeManager.getTemplateTCEarth()) .register(); - TC_MAGIC.addProduct(Config.combs.getStackForType(CombType.INFUSED), 20) + TC_ORDER.addProduct(Config.combs.getStackForType(CombType.INFUSED), 20) .setGenome(BeeGenomeManager.getTemplateTCMagic()) .register(); diff --git a/magicbees_src/magicbees/bees/TransmutationEffectController.java b/magicbees_src/magicbees/bees/TransmutationEffectController.java new file mode 100644 index 0000000..1fd8c41 --- /dev/null +++ b/magicbees_src/magicbees/bees/TransmutationEffectController.java @@ -0,0 +1,63 @@ +package magicbees.bees; + +import java.util.ArrayList; + +import magicbees.api.MagicBeesAPI; +import magicbees.api.bees.ITransmutationEffectController; +import magicbees.api.bees.ITransmutationEffectLogic; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import cpw.mods.fml.common.FMLLog; + +public class TransmutationEffectController implements ITransmutationEffectController +{ + private ArrayList logicObjects; + static TransmutationEffectController instance; + + public TransmutationEffectController() + { + logicObjects = new ArrayList(); + logicObjects.add(new TransmutationEffectRailcraft()); + logicObjects.add(new TransmutationEffectVanilla()); + MagicBeesAPI.transmutationEffectController = instance = this; + } + + public void attemptTransmutations(World world, BiomeGenBase biome, ItemStack sourceBlock, int x, int y, int z) + { + boolean done = false; + int i = 0; + ITransmutationEffectLogic logic; + while (!done && i < logicObjects.size()) + { + logic = logicObjects.get(i++); + try + { + done = logic.tryTransmutation(world, biome, sourceBlock, x, y, z); + } + catch (Exception e) + { + done = false; + FMLLog.warning("Magic Bees encountered an issue with an ITransmutationEffectLogic provider %s. Debug information follows.", logic.getClass().getName()); + FMLLog.info(e.getMessage()); + } + + if (done) + { + logicObjects.remove(i); + logicObjects.add(logic); + break; + } + } + } + + @Override + public void addEffectLogic(ITransmutationEffectLogic logic) + { + if (logic != null && !logicObjects.contains(logic)) + { + logicObjects.add(logic); + } + } + +} diff --git a/magicbees_src/magicbees/bees/TransmutationEffectRailcraft.java b/magicbees_src/magicbees/bees/TransmutationEffectRailcraft.java new file mode 100644 index 0000000..47e5fb0 --- /dev/null +++ b/magicbees_src/magicbees/bees/TransmutationEffectRailcraft.java @@ -0,0 +1,60 @@ +package magicbees.bees; + +import java.util.Locale; + +import magicbees.api.bees.ITransmutationEffectLogic; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary; +import net.minecraftforge.oredict.OreDictionary; +import cpw.mods.fml.common.registry.GameRegistry; + +public class TransmutationEffectRailcraft implements ITransmutationEffectLogic +{ + @Override + public boolean tryTransmutation(World world, BiomeGenBase biome, ItemStack sourceBlock, int x, int y, int z) + { + boolean flag = false; + if (OreDictionary.itemMatches(new ItemStack(Block.stone), sourceBlock, false) || + OreDictionary.itemMatches(new ItemStack(Block.cobblestone), sourceBlock, false)) + { + flag = trySpawnQuarriedStone(world, biome, sourceBlock, x, y, z) || + trySpawnAbyssalStone(world, biome, sourceBlock, x, y, z); + } + return flag; + } + + private boolean trySpawnQuarriedStone(World world, BiomeGenBase biome, ItemStack sourceBlock, int x, int y, int z) + { + boolean flag = false; + if (BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.FOREST) && + !BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.FROZEN)) + { + ItemStack item = GameRegistry.findItemStack("Railcraft", "cube.stone.quarried", 1); + if (item != null) + { + world.setBlock(x, y, z, item.itemID, item.getItemDamage(), 2); + flag = true; + } + } + return flag; + } + + private boolean trySpawnAbyssalStone(World world, BiomeGenBase biome, ItemStack sourceBlock, int x, int y, int z) + { + boolean flag = false; + if (BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.WATER) && + biome.biomeName.toLowerCase(Locale.ENGLISH).contains("river")) + { + ItemStack item = GameRegistry.findItemStack("Railcraft", "cube.stone.abyssal", 1); + if (item != null) + { + world.setBlock(x, y, z, item.itemID, item.getItemDamage(), 2); + flag = true; + } + } + return flag; + } +} diff --git a/magicbees_src/magicbees/bees/TransmutationEffectVanilla.java b/magicbees_src/magicbees/bees/TransmutationEffectVanilla.java new file mode 100644 index 0000000..667d1c2 --- /dev/null +++ b/magicbees_src/magicbees/bees/TransmutationEffectVanilla.java @@ -0,0 +1,31 @@ +package magicbees.bees; + +import cpw.mods.fml.common.registry.GameRegistry; +import magicbees.api.bees.ITransmutationEffectLogic; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary; +import net.minecraftforge.oredict.OreDictionary; + +public class TransmutationEffectVanilla implements ITransmutationEffectLogic +{ + @Override + public boolean tryTransmutation(World world, BiomeGenBase biome, ItemStack sourceBlock, int x, int y, int z) + { + return trySpawnSandstone(world, biome, sourceBlock, x, y, z); + } + + private boolean trySpawnSandstone(World world, BiomeGenBase biome, ItemStack sourceBlock, int x, int y, int z) + { + boolean flag = false; + if (BiomeDictionary.isBiomeOfType(biome, BiomeDictionary.Type.DESERT) && + OreDictionary.itemMatches(new ItemStack(Block.sand), sourceBlock, false)) + { + world.setBlock(x, y, z, Block.sandStone.blockID); + flag = true; + } + return flag; + } +} diff --git a/magicbees_src/magicbees/client/gui/GUIEffectJar.java b/magicbees_src/magicbees/client/gui/GUIEffectJar.java index 65f0678..c291fc2 100644 --- a/magicbees_src/magicbees/client/gui/GUIEffectJar.java +++ b/magicbees_src/magicbees/client/gui/GUIEffectJar.java @@ -49,7 +49,7 @@ public class GUIEffectJar extends GuiContainer { GL11.glColor4f(1f, 1f, 1f, 1f); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_SRC_ALPHA); - this.mc.func_110434_K().func_110577_a(BACKGROUND_LOCATION); + this.mc.getTextureManager().bindTexture(BACKGROUND_LOCATION); this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, xSize, ySize); diff --git a/magicbees_src/magicbees/client/render/EffectJarRenderer.java b/magicbees_src/magicbees/client/render/EffectJarRenderer.java index 474bff6..032cfb5 100644 --- a/magicbees_src/magicbees/client/render/EffectJarRenderer.java +++ b/magicbees_src/magicbees/client/render/EffectJarRenderer.java @@ -69,7 +69,7 @@ public class EffectJarRenderer extends TileEntitySpecialRenderer implements IIte GL11.glScaled(scale, scale, scale); GL11.glTranslated(x, y, z); - FMLClientHandler.instance().getClient().renderEngine.func_110577_a(ModelEffectJar.textureLocation); + FMLClientHandler.instance().getClient().renderEngine.bindTexture(ModelEffectJar.textureLocation); ModelEffectJar.model.render(); diff --git a/magicbees_src/magicbees/item/ItemThaumiumGrafter.java b/magicbees_src/magicbees/item/ItemThaumiumGrafter.java index 9ebbfa9..4f2e5a7 100644 --- a/magicbees_src/magicbees/item/ItemThaumiumGrafter.java +++ b/magicbees_src/magicbees/item/ItemThaumiumGrafter.java @@ -4,20 +4,19 @@ import magicbees.main.Config; import magicbees.main.utils.VersionInfo; import magicbees.main.utils.compat.ThaumcraftHelper; import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.common.ForgeHooks; -import thaumcraft.api.IVisRepairable; -import thaumcraft.api.ThaumcraftApi; import cpw.mods.fml.common.registry.GameRegistry; import forestry.api.arboriculture.IToolGrafter; +import thaumcraft.api.IRepairable; +import thaumcraft.api.IRepairableExtended; +import thaumcraft.api.ThaumcraftApi; -public class ItemThaumiumGrafter extends Item implements IVisRepairable, IToolGrafter +public class ItemThaumiumGrafter extends Item implements IRepairableExtended, IToolGrafter { public ItemThaumiumGrafter(int id) { @@ -69,7 +68,6 @@ public class ItemThaumiumGrafter extends Item implements IVisRepairable, IToolGr if (entityLiving instanceof EntityPlayer) { EntityPlayer p = (EntityPlayer)entityLiving; - p.addExhaustion(8f); } return true; } @@ -98,15 +96,22 @@ public class ItemThaumiumGrafter extends Item implements IVisRepairable, IToolGr return ThaumcraftApi.toolMatThaumium.getToolCraftingMaterial() == par2ItemStack.itemID ? true : super.getIsRepairable(par1ItemStack, par2ItemStack); } - /*@Override - public void doRepair(ItemStack stack, Entity e) + @Override + public boolean doRepair(ItemStack stack, EntityPlayer player, int enchantLevel) { + boolean flag = false; if (stack.getItemDamage() > 0) { - if (ThaumcraftApi.decreaseClosestAura(e.worldObj, e.posX, e.posY, e.posZ, 2, true)) + flag = true; + if (enchantLevel > 2) { - stack.damageItem(-1, (EntityLiving)e); + player.setFire(enchantLevel * enchantLevel / 2); + } + else + { + player.addExhaustion(0.8f * (enchantLevel * enchantLevel)); } } - }*/ + return flag; + } } diff --git a/magicbees_src/magicbees/item/ItemThaumiumScoop.java b/magicbees_src/magicbees/item/ItemThaumiumScoop.java index 21ff24d..1904a97 100644 --- a/magicbees_src/magicbees/item/ItemThaumiumScoop.java +++ b/magicbees_src/magicbees/item/ItemThaumiumScoop.java @@ -2,19 +2,17 @@ package magicbees.item; import magicbees.main.utils.VersionInfo; import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.common.ForgeHooks; -import thaumcraft.api.IVisRepairable; +import thaumcraft.api.IRepairable; import thaumcraft.api.ThaumcraftApi; import cpw.mods.fml.common.registry.GameRegistry; import forestry.api.core.IToolScoop; -public class ItemThaumiumScoop extends Item implements IVisRepairable, IToolScoop +public class ItemThaumiumScoop extends Item implements IRepairable, IToolScoop { public ItemThaumiumScoop(int itemID) { @@ -67,16 +65,4 @@ public class ItemThaumiumScoop extends Item implements IVisRepairable, IToolScoo { return ThaumcraftApi.toolMatThaumium.getToolCraftingMaterial() == par2ItemStack.itemID ? true : super.getIsRepairable(par1ItemStack, par2ItemStack); } - - /*@Override - public void doRepair(ItemStack stack, Entity e) - { - if (stack.getItemDamage() > 0) - { - if (ThaumcraftApi.decreaseClosestAura(e.worldObj, e.posX, e.posY, e.posZ, 1, true)) - { - stack.damageItem(-1, (EntityLiving)e); - } - } - }*/ } diff --git a/magicbees_src/magicbees/item/types/ResourceType.java b/magicbees_src/magicbees/item/types/ResourceType.java index bc064f6..7ce5019 100644 --- a/magicbees_src/magicbees/item/types/ResourceType.java +++ b/magicbees_src/magicbees/item/types/ResourceType.java @@ -17,6 +17,19 @@ public enum ResourceType ESSENCE_LOST_TIME("essenceLostTime", true), ESSENCE_EVERLASTING_DURABILITY("essenceEverlastingDurability", true), ESSENCE_UNENDING_DISREGARD("essenceUnendingDisregard", true), + z_1("", false), + z_2("", false), + z_3("", false), + z_4("", false), + z_5("", false), + DIMENSIONAL_SINGULARITY("dimensionalSingularity", true), + TC_DUST_AIR("TCairDust", true), + TC_DUST_WATER("TCwaterDust", true), + TC_DUST_FIRE("TCfireDust", true), + TC_DUST_EARTH("TCearthDust", true), + TC_DUST_ORDER("TCorderDust", true), + TC_DUST_CHAOS("TCchaosDust", true), + // Dummy items for Thaumanomicon research icons. // These won't ever actually exist in-game, and so diff --git a/magicbees_src/magicbees/main/ClientProxy.java b/magicbees_src/magicbees/main/ClientProxy.java index 6c7a630..542ec47 100644 --- a/magicbees_src/magicbees/main/ClientProxy.java +++ b/magicbees_src/magicbees/main/ClientProxy.java @@ -10,7 +10,6 @@ import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import forestry.core.render.TextureManager; @SideOnly(Side.CLIENT) public class ClientProxy extends CommonProxy diff --git a/magicbees_src/magicbees/main/CommonProxy.java b/magicbees_src/magicbees/main/CommonProxy.java index 56bbffc..9507ffd 100644 --- a/magicbees_src/magicbees/main/CommonProxy.java +++ b/magicbees_src/magicbees/main/CommonProxy.java @@ -10,6 +10,7 @@ public class CommonProxy public static final String DOMAIN = "magicbees"; public static final String TEXTURE = "textures/"; public static final String GUI_TEXTURE = TEXTURE + "gui/"; + public static final String ITEM_TEXTURE = TEXTURE + "items/"; public static final String MODEL = "model/"; public static final String LANGS = "lang/"; diff --git a/magicbees_src/magicbees/main/Config.java b/magicbees_src/magicbees/main/Config.java index 82802c0..d882562 100644 --- a/magicbees_src/magicbees/main/Config.java +++ b/magicbees_src/magicbees/main/Config.java @@ -132,10 +132,10 @@ public class Config //----- Thaumcraft Items ----------------------------------- public static Item tcFilledJar; public static Item tcMiscResource; - public static Item tcEssentiaBottle; + //public static Item tcEssentiaBottle; public static Item tcShard; public static Item tcGolem; - public static Item tcWispEssence; + //public static Item tcWispEssence; public static Item tcNuggets; public static Item tcNuggetChicken; public static Item tcNuggetBeef; @@ -177,11 +177,6 @@ public class Config public void setupBlocks() { - ThaumcraftHelper.getBlocks(); - ForestryHelper.getBlocks(); - EquivalentExchangeHelper.getBlocks(); - ArsMagicaHelper.getBlocks(); - int blockIdBase = 1750; { @@ -233,12 +228,7 @@ public class Config } public void setupItems() - { - ThaumcraftHelper.getItems(); - ForestryHelper.getItems(); - EquivalentExchangeHelper.getItems(); - ArsMagicaHelper.getItems(); - + { int itemIDBase = 26090; combs= new ItemComb(configuration.getItem("combs", itemIDBase++).getInt() - 256); @@ -313,7 +303,7 @@ public class Config jellyBaby = new ItemFood(configuration.getItem("jellyBabies", itemIDBase++).getInt() - 256, 1, false).setAlwaysEdible() .setPotionEffect(Potion.moveSpeed.id, 5, 1, 1f); - jellyBaby.setUnlocalizedName(VersionInfo.ModName.toLowerCase() + ":jellyBabies").func_111206_d(VersionInfo.ModName.toLowerCase() + ":jellyBabies"); + jellyBaby.setUnlocalizedName(VersionInfo.ModName.toLowerCase() + ":jellyBabies").setTextureName(VersionInfo.ModName.toLowerCase() + ":jellyBabies"); GameRegistry.registerItem(jellyBaby, VersionInfo.ModName.toLowerCase() + ":jellyBabies"); diff --git a/magicbees_src/magicbees/main/MagicBees.java b/magicbees_src/magicbees/main/MagicBees.java index 07590eb..d18e0c5 100644 --- a/magicbees_src/magicbees/main/MagicBees.java +++ b/magicbees_src/magicbees/main/MagicBees.java @@ -1,8 +1,8 @@ package magicbees.main; import magicbees.bees.BeeManager; +import magicbees.bees.TransmutationEffectController; import magicbees.client.gui.GUIHandler; -import magicbees.main.utils.CompatabilityManager; import magicbees.main.utils.CraftingManager; import magicbees.main.utils.IMCManager; import magicbees.main.utils.LocalizationManager; @@ -10,6 +10,7 @@ import magicbees.main.utils.VersionInfo; import magicbees.main.utils.compat.ArsMagicaHelper; import magicbees.main.utils.compat.EquivalentExchangeHelper; import magicbees.main.utils.compat.ExtraBeesHelper; +import magicbees.main.utils.compat.ForestryHelper; import magicbees.main.utils.compat.ThaumcraftHelper; import magicbees.world.WorldGeneratorHandler; import cpw.mods.fml.common.Mod; @@ -45,33 +46,39 @@ public class MagicBees private Config modConfig; private WorldGeneratorHandler worldHandler; - @Mod.PreInit + @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { - LocalizationManager.setupLocalizationInfo(); - this.configsPath = event.getModConfigurationDirectory().getAbsolutePath(); this.modConfig = new Config(event.getSuggestedConfigurationFile()); + this.modConfig.setupBlocks(); + this.modConfig.setupItems(); + + LocalizationManager.setupLocalizationInfo(); + + new TransmutationEffectController(); // Compatibility Helpers setup time. - ThaumcraftHelper.init(); + ForestryHelper.preInit(); + ExtraBeesHelper.preInit(); + ThaumcraftHelper.preInit(); + EquivalentExchangeHelper.preInit(); + ArsMagicaHelper.preInit(); + } + + @Mod.EventHandler + public void init(FMLInitializationEvent event) + { + GameRegistry.registerWorldGenerator(worldHandler = new WorldGeneratorHandler()); + + ForestryHelper.init(); ExtraBeesHelper.init(); + ThaumcraftHelper.init(); EquivalentExchangeHelper.init(); ArsMagicaHelper.init(); } - @Mod.Init - public void init(FMLInitializationEvent event) - { - this.modConfig.setupBlocks(); - this.modConfig.setupItems(); - - CompatabilityManager.setupBackpacks(); - - GameRegistry.registerWorldGenerator(worldHandler = new WorldGeneratorHandler()); - } - - @Mod.PostInit + @Mod.EventHandler public void postInit(FMLPostInitializationEvent event) { this.guiHandler = new GUIHandler(); @@ -83,17 +90,18 @@ public class MagicBees this.modConfig.saveConfigs(); - ThaumcraftHelper.setupItemAspects(); - - // Vanilla, Forestry & Thaumcraft crafting setup CraftingManager.setupCrafting(); - ThaumcraftHelper.setupResearch(); - VersionInfo.doVersionCheck(); + + ForestryHelper.postInit(); + ExtraBeesHelper.postInit(); + ThaumcraftHelper.postInit(); + EquivalentExchangeHelper.postInit(); + ArsMagicaHelper.postInit(); } - @Mod.IMCCallback + @Mod.EventHandler public void handleIMCMessage(IMCEvent event) { IMCManager.handle(event); diff --git a/magicbees_src/magicbees/main/utils/CompatabilityManager.java b/magicbees_src/magicbees/main/utils/CompatabilityManager.java deleted file mode 100644 index 293d46c..0000000 --- a/magicbees_src/magicbees/main/utils/CompatabilityManager.java +++ /dev/null @@ -1,11 +0,0 @@ -package magicbees.main.utils; - -import magicbees.main.utils.compat.ThaumcraftHelper; - -public class CompatabilityManager -{ - public static void setupBackpacks() - { - ThaumcraftHelper.addItemsToBackpack(); - } -} diff --git a/magicbees_src/magicbees/main/utils/CraftingManager.java b/magicbees_src/magicbees/main/utils/CraftingManager.java index 3dd474d..d645fcb 100644 --- a/magicbees_src/magicbees/main/utils/CraftingManager.java +++ b/magicbees_src/magicbees/main/utils/CraftingManager.java @@ -33,17 +33,7 @@ public class CraftingManager // Broken up into seperate sections to make things a bit easier to find. setupVanillaCrafting(); setupCentrifugeRecipes(); - setupSqueezerRecipes(); setupCarpenterRecipes(); - - if (ThaumcraftHelper.isActive()) - { - ThaumcraftHelper.setupThaumcraftCrafting(); - } - else - { - setupThaumcraftAlternativeCrafting(); - } registerLiquidContainer(Config.magicCapsule); registerLiquidContainer(Config.voidCapsule); @@ -314,6 +304,24 @@ public class CraftingManager "xxx", "xxx", "xxx", 'x', Config.nuggets.getStackForType(NuggetType.APATITE) })); + + output = Config.miscResources.getStackForType(ResourceType.DIMENSIONAL_SINGULARITY, 2); + GameRegistry.addRecipe(output, new Object[] { + " E ", "pOp", " E ", + 'E', Item.eyeOfEnder, + 'p', Item.enderPearl, + 'W', Block.obsidian + }); + + output = Config.voidCapsule.getCapsuleForLiquid(FluidType.EMPTY); + output.stackSize = 4; + GameRegistry.addRecipe(output, new Object[] { + "T T", "GFG", "T T", + 'G', Block.thinGlass, + 'F', Config.miscResources.getStackForType(ResourceType.DIMENSIONAL_SINGULARITY), + 'T', Item.goldNugget + }); + if (ThaumcraftHelper.isActive()) { @@ -329,7 +337,7 @@ public class CraftingManager } // Essentia bottles - output = new ItemStack(Config.tcEssentiaBottle); + /*output = new ItemStack(Config.tcEssentiaBottle); output.stackSize = 8; GameRegistry.addRecipe(output, new Object[] { " C ", "GPG", "PGP", @@ -343,7 +351,7 @@ public class CraftingManager GameRegistry.addRecipe(output, new Object[] { " W ", "W W", " W ", 'W', Config.wax - }); + });*/ output = new ItemStack(Config.tcMiscResource, 1, ThaumcraftHelper.MiscResource.KNOWLEDGE_FRAGMENT.ordinal()); GameRegistry.addRecipe(output, new Object[] { @@ -455,12 +463,6 @@ public class CraftingManager new int[] { 85, 10, 2 } ); } } - - private static void setupSqueezerRecipes() - { - // Squeezer recipes - // if (ThaumcraftHelper.isActive()) { } - } private static void setupCarpenterRecipes() { @@ -499,6 +501,14 @@ public class CraftingManager 'J', ItemInterface.getItem("royalJelly"), 'D', Config.drops.getStackForType(DropType.ENCHANTED) }); + + output = new ItemStack(Config.hiveFrameMagic); + input = ItemInterface.getItem("frameUntreated"); + GameRegistry.addRecipe(output, new Object[] { + "www", "wfw", "www", + 'w', Config.wax.getStackForType(WaxType.MAGIC), + 'f', input + }); if (ThaumcraftHelper.isActive()) { @@ -512,17 +522,6 @@ public class CraftingManager 'W', input, 'T', new ItemStack(Config.thaumaturgeBackpackT1) }); - output = new ItemStack(Config.planksWood, 4, 0); - RecipeManagers.carpenterManager.addRecipe(8, new FluidStack(FluidRegistry.WATER, 500), null, output, new Object[] { - "B", - 'B', new ItemStack(Config.tcLog, 1, 0) - }); - - output = new ItemStack(Config.planksWood, 6, 1); - RecipeManagers.carpenterManager.addRecipe(8, new FluidStack(FluidRegistry.WATER, 500), null, output, new Object[] { - "B", - 'B', new ItemStack(Config.tcLog, 1, 1) - }); } } @@ -565,28 +564,4 @@ public class CraftingManager // Empty will be set to unavailable. Obviously, it always is. FluidType.EMPTY.available = true; } - - private static void setupThaumcraftAlternativeCrafting() - { - ItemStack input, output; - - output = new ItemStack(Config.hiveFrameMagic); - input = ItemInterface.getItem("frameUntreated"); - GameRegistry.addRecipe(output, new Object[] { - "www", "wfw", "www", - 'w', Config.wax.getStackForType(WaxType.MAGIC), - 'f', input - }); - - output = Config.voidCapsule.getCapsuleForLiquid(FluidType.EMPTY); - output.stackSize = 4; - GameRegistry.addRecipe(output, new Object[] { - "wDw", "GPG", "TwT", - 'G', Block.glass, - 'D', Item.diamond, - 'P', Item.eyeOfEnder, - 'T', Item.ingotGold, - 'w', Config.wax.getStackForType(WaxType.MAGIC) - }); - } } \ No newline at end of file diff --git a/magicbees_src/magicbees/main/utils/TickHandlerVersion.java b/magicbees_src/magicbees/main/utils/TickHandlerVersion.java index 7e5e13f..70c67ac 100644 --- a/magicbees_src/magicbees/main/utils/TickHandlerVersion.java +++ b/magicbees_src/magicbees/main/utils/TickHandlerVersion.java @@ -59,8 +59,8 @@ public class TickHandlerVersion implements IScheduledTickHandler if ((!MagicBees.getConfig().DisableUpdateNotification || anInfo.isCriticalUpdate()) && anInfo.isNewVersionAvailable()) { EntityPlayer player = (EntityPlayer) tickData[0]; - player.sendChatToPlayer(ChatMessageComponent.func_111066_d("[" + anInfo.modName + "] A new version is available: " + anInfo.getLatestVersion())); - player.sendChatToPlayer(ChatMessageComponent.func_111066_d(anInfo.getVersionDescription())); + player.sendChatToPlayer(ChatMessageComponent.createFromText("[" + anInfo.modName + "] A new version is available: " + anInfo.getLatestVersion())); + player.sendChatToPlayer(ChatMessageComponent.createFromText(anInfo.getVersionDescription())); } modIndex += 1; } diff --git a/magicbees_src/magicbees/main/utils/VersionInfo.java b/magicbees_src/magicbees/main/utils/VersionInfo.java index 37a1979..df4a0a2 100644 --- a/magicbees_src/magicbees/main/utils/VersionInfo.java +++ b/magicbees_src/magicbees/main/utils/VersionInfo.java @@ -49,7 +49,7 @@ public class VersionInfo public static int[] parseVersion(String rawVersion) { ArrayList versionTokens = new ArrayList(); - String[] tokens = rawVersion.trim().split("\\."); + String[] tokens = rawVersion.trim().split("[\\. ]"); for (int i = 0; i < tokens.length; ++i) { diff --git a/magicbees_src/magicbees/main/utils/compat/ArsMagicaHelper.java b/magicbees_src/magicbees/main/utils/compat/ArsMagicaHelper.java index ad3701a..4803010 100644 --- a/magicbees_src/magicbees/main/utils/compat/ArsMagicaHelper.java +++ b/magicbees_src/magicbees/main/utils/compat/ArsMagicaHelper.java @@ -14,7 +14,7 @@ public class ArsMagicaHelper return isArsMagicaPresent; } - public static void init() + public static void preInit() { if (Loader.isModLoaded("ArsMagica")) { @@ -22,46 +22,51 @@ public class ArsMagicaHelper } } - public static void getBlocks() + public static void init() { if (isActive()) { - try - { - Class clazz = Class.forName("mithion.arsmagica.blocks.ArsMagicaBlocksCommonProxy"); - Config.amBlackOrchid = (Block)(clazz.getField("blueOrchid").get(null)); - Config.amDesertNova = (Block)(clazz.getField("desertNova").get(null)); - } - catch (Exception e) - { - - } + getBlocks(); + getItems(); } } - public static void getItems() + public static void postInit() {} + + private static void getBlocks() { - if (isActive()) + try { - try - { - Class clazz = Class.forName("mithion.arsmagica.items.ArsMagicaItemsCommonProxy"); - Config.amVinteumDust = (Item)(clazz.getField("vinteumDust").get(null)); - Config.amArcaneCompound = (Item)(clazz.getField("arcaneCompound").get(null)); - Config.amEssenceAir = (Item)(clazz.getField("airEssence").get(null)); - Config.amEssenceArcane = (Item)(clazz.getField("arcaneEssence").get(null)); - Config.amEssenceEarth = (Item)(clazz.getField("earthEssence").get(null)); - Config.amEssenceFire = (Item)(clazz.getField("fireEssence").get(null)); - Config.amEssenceIce = (Item)(clazz.getField("iceEssence").get(null)); - Config.amEssenceLightning = (Item)(clazz.getField("lightningEssence").get(null)); - Config.amEssenceMagma = (Item)(clazz.getField("magmaEssence").get(null)); - Config.amEssencePlant = (Item)(clazz.getField("plantEssence").get(null)); - Config.amEssenceWater = (Item)(clazz.getField("waterEssence").get(null)); - } - catch (Exception e) - { - - } + Class clazz = Class.forName("mithion.arsmagica.blocks.ArsMagicaBlocksCommonProxy"); + Config.amBlackOrchid = (Block)(clazz.getField("blueOrchid").get(null)); + Config.amDesertNova = (Block)(clazz.getField("desertNova").get(null)); + } + catch (Exception e) + { + + } + } + + private static void getItems() + { + try + { + Class clazz = Class.forName("mithion.arsmagica.items.ArsMagicaItemsCommonProxy"); + Config.amVinteumDust = (Item)(clazz.getField("vinteumDust").get(null)); + Config.amArcaneCompound = (Item)(clazz.getField("arcaneCompound").get(null)); + Config.amEssenceAir = (Item)(clazz.getField("airEssence").get(null)); + Config.amEssenceArcane = (Item)(clazz.getField("arcaneEssence").get(null)); + Config.amEssenceEarth = (Item)(clazz.getField("earthEssence").get(null)); + Config.amEssenceFire = (Item)(clazz.getField("fireEssence").get(null)); + Config.amEssenceIce = (Item)(clazz.getField("iceEssence").get(null)); + Config.amEssenceLightning = (Item)(clazz.getField("lightningEssence").get(null)); + Config.amEssenceMagma = (Item)(clazz.getField("magmaEssence").get(null)); + Config.amEssencePlant = (Item)(clazz.getField("plantEssence").get(null)); + Config.amEssenceWater = (Item)(clazz.getField("waterEssence").get(null)); + } + catch (Exception e) + { + } } } diff --git a/magicbees_src/magicbees/main/utils/compat/EquivalentExchangeHelper.java b/magicbees_src/magicbees/main/utils/compat/EquivalentExchangeHelper.java index 3457ecb..155e46c 100644 --- a/magicbees_src/magicbees/main/utils/compat/EquivalentExchangeHelper.java +++ b/magicbees_src/magicbees/main/utils/compat/EquivalentExchangeHelper.java @@ -14,7 +14,7 @@ public class EquivalentExchangeHelper return isEquivalentExchangePresent; } - public static void init() + public static void preInit() { if (Loader.isModLoaded("EE3")) { @@ -22,27 +22,29 @@ public class EquivalentExchangeHelper } } - public static void getBlocks() + public static void init() { if (isActive()) { - + getBlocks(); + getItems(); } } - public static void getItems() + public static void postInit() {} + + private static void getBlocks() {} + + private static void getItems() { - if (isActive()) + try { - try - { - Class itemClass = Class.forName("com.pahimar.ee3.item.ModItems"); - Config.eeMinuimShard = (Item)(itemClass.getField("miniumShard").get(null)); - } - catch (Exception e) - { - FMLLog.info("Could not get Equivalent Exchange items."); - } + Class itemClass = Class.forName("com.pahimar.ee3.item.ModItems"); + Config.eeMinuimShard = (Item)(itemClass.getField("miniumShard").get(null)); + } + catch (Exception e) + { + FMLLog.info("Could not get Equivalent Exchange items."); } } } diff --git a/magicbees_src/magicbees/main/utils/compat/ExtraBeesHelper.java b/magicbees_src/magicbees/main/utils/compat/ExtraBeesHelper.java index 55abeeb..2c37115 100644 --- a/magicbees_src/magicbees/main/utils/compat/ExtraBeesHelper.java +++ b/magicbees_src/magicbees/main/utils/compat/ExtraBeesHelper.java @@ -7,36 +7,6 @@ import net.minecraft.item.ItemStack; public class ExtraBeesHelper { - private static boolean isEBPresent = false; - - public static boolean isActive() - { - return isEBPresent; - } - - public static void init() - { - if (cpw.mods.fml.common.Loader.isModLoaded("ExtraBees")) - { - isEBPresent = true; - } - } - - 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 enum CombType { BARREN, @@ -122,4 +92,37 @@ public class ExtraBeesHelper SAWDUST, ; } + + private static boolean isEBPresent = false; + + public static boolean isActive() + { + return isEBPresent; + } + + public static void preInit() + { + if (cpw.mods.fml.common.Loader.isModLoaded("ExtraBees")) + { + isEBPresent = true; + } + } + + public static void init() {} + public static void postInit() {} + + 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; + } } diff --git a/magicbees_src/magicbees/main/utils/compat/ForestryHelper.java b/magicbees_src/magicbees/main/utils/compat/ForestryHelper.java index a152416..73328d6 100644 --- a/magicbees_src/magicbees/main/utils/compat/ForestryHelper.java +++ b/magicbees_src/magicbees/main/utils/compat/ForestryHelper.java @@ -97,7 +97,17 @@ public class ForestryHelper public static final String Name = "Forestry"; - public static void getBlocks() + public static void preInit() {} + + public static void init() + { + getBlocks(); + getItems(); + } + + public static void postInit() {} + + private static void getBlocks() { try { @@ -110,7 +120,7 @@ public class ForestryHelper } } - public static void getItems() + private static void getItems() { Config.fBeeComb = ItemInterface.getItem("beeComb").getItem(); Config.fPollen = ItemInterface.getItem("pollen").getItem(); diff --git a/magicbees_src/magicbees/main/utils/compat/ThaumcraftHelper.java b/magicbees_src/magicbees/main/utils/compat/ThaumcraftHelper.java index c01dec1..0f58a4e 100644 --- a/magicbees_src/magicbees/main/utils/compat/ThaumcraftHelper.java +++ b/magicbees_src/magicbees/main/utils/compat/ThaumcraftHelper.java @@ -1,28 +1,16 @@ package magicbees.main.utils.compat; -import magicbees.bees.BeeGenomeManager; -import magicbees.bees.BeeSpecies; -import magicbees.item.types.CombType; -import magicbees.item.types.DropType; -import magicbees.item.types.FluidType; -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 thaumcraft.api.ItemApi; -import thaumcraft.api.ThaumcraftApi; +import net.minecraft.util.ResourceLocation; +import thaumcraft.api.aspects.AspectList; +import thaumcraft.api.research.ResearchCategories; import thaumcraft.api.research.ResearchItem; +import thaumcraft.api.research.ResearchPage; 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; +import cpw.mods.fml.common.registry.GameRegistry; public class ThaumcraftHelper { @@ -49,7 +37,8 @@ public class ThaumcraftHelper TIN, SILVER, LEAD, - QUICKSILVER, _6,_7,_8,_9,_10,_11,_12,_13,_14,_15, + QUICKSILVER, + THAUMIUM, _7,_8,_9,_10,_11,_12,_13,_14,_15, NATIVE_IRON, NATIVE_COPPER, NATIVE_TIN, @@ -65,8 +54,8 @@ public class ThaumcraftHelper FIRE, WATER, EARTH, - MAGIC, - DULL, + ORDER, + CHAOS, ; } @@ -111,64 +100,81 @@ public class ThaumcraftHelper } private static boolean isThaumcraftPresent = false; - public static final String Name = "Thaumcraft"; + public static final String Name = "Thaumcraft_"; public static boolean isActive() { return isThaumcraftPresent; } - public static void init() + public static void preInit() { if (cpw.mods.fml.common.Loader.isModLoaded(Name)) { - if (isThaumcraftPresent == true) - { - registerResearchXML(); - } + isThaumcraftPresent = true; + //registerResearchXML(); } else { // Switch off TC-dependant items. ResourceType.LORE_FRAGMENT.setHidden(); + ResourceType.TC_DUST_AIR.setHidden(); + ResourceType.TC_DUST_CHAOS.setHidden(); + ResourceType.TC_DUST_EARTH.setHidden(); + ResourceType.TC_DUST_FIRE.setHidden(); + ResourceType.TC_DUST_ORDER.setHidden(); + ResourceType.TC_DUST_WATER.setHidden(); + } + } + + public static void init() + { + if (isActive()) + { + getBlocks(); + getItems(); + + addItemsToBackpack(); + } + } + + public static void postInit() + { + if (isActive()) + { + setupResearch(); } } 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]; - } + Config.tcPlant = GameRegistry.findBlock(Name, "blockCustomPlant"); + Config.tcCandle = GameRegistry.findBlock(Name, "blockCandle"); + Config.tcCrystal = GameRegistry.findBlock(Name, "blockCrystal"); + Config.tcMarker = GameRegistry.findBlock(Name, "blockMarker"); + Config.tcJar = GameRegistry.findBlock(Name, "blockJar"); + Config.tcLog = GameRegistry.findBlock(Name, "blockMagicalLog"); + Config.tcLeaf = GameRegistry.findBlock(Name, "blockMagicalLeaves"); + Config.tcWarded = GameRegistry.findBlock(Name, "blockWarded"); } 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(); - } + Config.tcFilledJar = GameRegistry.findItem(Name, "BlockJarFilledItem"); + Config.tcMiscResource = GameRegistry.findItem(Name, "ItemResource"); + //Config.tcEssentiaBottle = GameRegistry.findItem(Name, "BlockJarFilledItem"); + Config.tcShard = GameRegistry.findItem(Name, "ItemShard"); + Config.tcGolem = GameRegistry.findItem(Name, "ItemGolemPlacer"); + //Config.tcWispEssence = ItemApi.getItem("itemWispEssence", 0).getItem(); + Config.tcNuggets = GameRegistry.findItem(Name, "ItemNugget"); + Config.tcNuggetChicken = GameRegistry.findItem(Name, "ItemNuggetChicken"); + Config.tcNuggetBeef = GameRegistry.findItem(Name, "itemNuggetBeef"); + Config.tcNuggetPork = GameRegistry.findItem(Name, "itemNuggetPork"); } public static void addItemsToBackpack() { - if (isActive() && MagicBees.getConfig().AddThaumcraftItemsToBackpacks) + if (MagicBees.getConfig().AddThaumcraftItemsToBackpacks) { // Add all shards and Thaumium to miner's backpack String ids = Config.tcShard.itemID + ":" + -1 + ";" @@ -191,8 +197,8 @@ public class ThaumcraftHelper 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(); + 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 @@ -203,550 +209,14 @@ public class ThaumcraftHelper } } - public static void setupItemAspects() - { - if (isActive()) - { - setupItemAspectsThaumicBees(); - setupItemAspectsForestry(); - if (ExtraBeesHelper.isActive()) - { - setupItemAspectsExtraBees(); - } - } - } - - private static void setupItemAspectsThaumicBees() - { - if (isActive()) - {/* - 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, FluidType.EMPTY.ordinal(), tags); - - tags = new ObjectTags(Config.magicCapsule.itemID, FluidType.EMPTY.ordinal()) - .add(EnumTag.WATER, 8); - ThaumcraftApi.registerObjectTag(Config.magicCapsule.itemID, FluidType.WATER.ordinal(), tags); - tags = new ObjectTags(Config.magicCapsule.itemID, FluidType.EMPTY.ordinal()) - .add(EnumTag.FIRE, 12).add(EnumTag.ROCK, 4); - ThaumcraftApi.registerObjectTag(Config.magicCapsule.itemID, FluidType.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; + ResearchCategories.registerCategory("MAGICBEES", new ResourceLocation("magicbees", CommonProxy.ITEM_TEXTURE + "beeInfusion.png"), new ResourceLocation("thaumcraft", "textures/gui/gui_researchback.png")); - 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(FluidType.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);*/ + ResearchItem startNode = new ResearchItem("MAGICBEES_ROOT", "MAGICBEES", new AspectList(), 0, 0, 0, + Config.miscResources.getStackForType(ResourceType.RESEARCH_BEEINFUSION)) + .setAutoUnlock() + .setPages(new ResearchPage[] { new ResearchPage("mb.researchPage.MBRoot.1") }) + .registerResearchItem(); } }