diff --git a/magicbees_res/assets/magicbees/lang/en_US.xml b/magicbees_res/assets/magicbees/lang/en_US.xml index 1b45537..3e56714 100644 --- a/magicbees_res/assets/magicbees/lang/en_US.xml +++ b/magicbees_res/assets/magicbees/lang/en_US.xml @@ -293,6 +293,9 @@ "I could've sworn this was made out of stone yesterday!"|Sengir, Mad Apiarist Crumbling They have a corrosive effect on their surroundings, rapidly aging them.|Apinomicon + + Invisible + Easy to miss, their glassy body is difficult to spot in the countryside.|Apinomicon Aer "They work so fast it's breathtaking."|Sengir, Mad Apiarist @@ -379,6 +382,7 @@ Withering Transmuting Crumbling + Invisibility Aura Attract Purify Aura Aura Flux diff --git a/magicbees_res/build.xml b/magicbees_res/build.xml index ed48646..8a61ad4 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 c553eb4..c28e4a1 100644 --- a/magicbees_res/changelog.txt +++ b/magicbees_res/changelog.txt @@ -1,5 +1,10 @@ +2.1.6 +How about not crashing because I forgot a colour tuple? >.> +Presenting a new bee species: You can't see it though, because it's invisible. >_> + 2.1.5 Behold! The Mysterious Magnet! It attracts items to it, and thus, you, from great distances! (well, greater than your arms anyhow.) +Updating TC4 API for when it releases. 2.1.4 Some cleanup of Helper code diff --git a/magicbees_src/magicbees/bees/Allele.java b/magicbees_src/magicbees/bees/Allele.java index 753830d..6c7add2 100644 --- a/magicbees_src/magicbees/bees/Allele.java +++ b/magicbees_src/magicbees/bees/Allele.java @@ -30,6 +30,7 @@ public class Allele implements IAllele public static IAlleleEffect effectWithering; public static IAlleleEffect effectTransmuting; public static IAlleleEffect effectCrumbling; + public static IAlleleEffect effectInvisibility; public static IAlleleEffect spawnBrainyZombie; public static IAlleleEffect spawnWisp; @@ -103,6 +104,8 @@ public class Allele implements IAllele Allele.effectTransmuting = new AlleleEffectTransmuting("Transmuting", true); Allele.effectCrumbling = new AlleleEffectCrumbling("Crumbling", true); + + Allele.effectInvisibility = new AlleleEffectPotion("Invisibility", Potion.invisibility, 10, false); Allele.spawnGhast = new AlleleEffectSpawnMob("Ghastly", false, "Ghast", "mob.ghast.moan") .setThrottle(2060).setChanceToSpawn(10).setMaxMobsInSpawnZone(1); diff --git a/magicbees_src/magicbees/bees/BeeGenomeManager.java b/magicbees_src/magicbees/bees/BeeGenomeManager.java index bac4ac1..337d9cd 100644 --- a/magicbees_src/magicbees/bees/BeeGenomeManager.java +++ b/magicbees_src/magicbees/bees/BeeGenomeManager.java @@ -758,6 +758,16 @@ public class BeeGenomeManager return genome; } + public static IAllele[] getTemplateInvisible() + { + IAllele[] genome = getTemplateMutableBase(); + + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.INVISIBLE; + genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.effectInvisibility; + + return genome; + } + private static IAllele[] getTemplateTCBase() { IAllele[] genome = getTemplateModBase(); diff --git a/magicbees_src/magicbees/bees/BeeMutation.java b/magicbees_src/magicbees/bees/BeeMutation.java index 7cb4533..573b700 100644 --- a/magicbees_src/magicbees/bees/BeeMutation.java +++ b/magicbees_src/magicbees/bees/BeeMutation.java @@ -117,6 +117,8 @@ public class BeeMutation implements IBeeMutation new BeeMutation(BeeSpecies.UNUSUAL, BeeSpecies.MUTABLE, BeeSpecies.TRANSMUTING, 9); new BeeMutation(BeeSpecies.UNUSUAL, BeeSpecies.MUTABLE, BeeSpecies.CRUMBLING, 9); + new BeeMutation(BeeSpecies.MYSTICAL, BeeSpecies.MUTABLE, BeeSpecies.INVISIBLE, 15); + if (BeeSpecies.COPPER.isActive()) { new BeeMutation(Allele.getBaseSpecies("Industrious"), Allele.getBaseSpecies("Meadows"), BeeSpecies.COPPER, 12) diff --git a/magicbees_src/magicbees/bees/BeeSpecies.java b/magicbees_src/magicbees/bees/BeeSpecies.java index 54b477a..6a23923 100644 --- a/magicbees_src/magicbees/bees/BeeSpecies.java +++ b/magicbees_src/magicbees/bees/BeeSpecies.java @@ -166,6 +166,9 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider BeeClassification.TRANSMUTING, 0xDBB24C, 0xA2D2D8, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false), CRUMBLING("Crumbling", "crumbling", BeeClassification.TRANSMUTING, 0xDBB24C, 0xDBA4A4, EnumTemperature.HOT, EnumHumidity.ARID, false, false), + + INVISIBLE("Invisible", "invisible", + BeeClassification.VEILED, 0xffccff, 0xffffff, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false), // --------- Thaumcraft Bees --------------------------------------------------------------------------------------- TC_AIR("TCAir", "aether", @@ -597,6 +600,9 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider .setGenome(BeeGenomeManager.getTemplateCrumbling()) .register(); + INVISIBLE.addProduct(Config.combs.getStackForType(CombType.MUNDANE), 35) + .setGenome(BeeGenomeManager.getTemplateInvisible()) + .register(); TC_AIR.addProduct(Config.combs.getStackForType(CombType.AIRY), 20) .setGenome(BeeGenomeManager.getTemplateTCAir()) diff --git a/magicbees_src/magicbees/block/BlockHive.java b/magicbees_src/magicbees/block/BlockHive.java index e828ad4..1c42e7b 100644 --- a/magicbees_src/magicbees/block/BlockHive.java +++ b/magicbees_src/magicbees/block/BlockHive.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import magicbees.block.types.HiveType; +import magicbees.main.MagicBees; import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; @@ -57,7 +58,7 @@ public class BlockHive extends Block { for (HiveType type : HiveType.values()) { - if (type.show) + if (type.show || MagicBees.getConfig().ForestryDebugEnabled) { itemsList.add(new ItemStack(this, 1, type.ordinal())); } diff --git a/magicbees_src/magicbees/item/ItemComb.java b/magicbees_src/magicbees/item/ItemComb.java index 69377e4..1b45c47 100644 --- a/magicbees_src/magicbees/item/ItemComb.java +++ b/magicbees_src/magicbees/item/ItemComb.java @@ -8,6 +8,7 @@ import cpw.mods.fml.relauncher.SideOnly; import forestry.api.core.Tabs; import magicbees.item.types.CombType; import magicbees.main.CommonProxy; +import magicbees.main.Config; import magicbees.main.MagicBees; import magicbees.main.utils.VersionInfo; import magicbees.main.utils.compat.ForestryHelper; @@ -44,7 +45,7 @@ public class ItemComb extends Item { for (CombType type : CombType.values()) { - if (type.showInList) + if (type.showInList || MagicBees.getConfig().ForestryDebugEnabled) { list.add(this.getStackForType(type)); } diff --git a/magicbees_src/magicbees/item/ItemMysteriousMagnet.java b/magicbees_src/magicbees/item/ItemMysteriousMagnet.java index e82cd01..4825231 100644 --- a/magicbees_src/magicbees/item/ItemMysteriousMagnet.java +++ b/magicbees_src/magicbees/item/ItemMysteriousMagnet.java @@ -5,6 +5,7 @@ import java.util.List; import magicbees.main.CommonProxy; import magicbees.main.utils.LocalizationManager; +import magicbees.main.utils.TabMagicBees; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; @@ -27,7 +28,8 @@ public class ItemMysteriousMagnet extends Item private float rangeBase; private float multiplier; - private HashMap special = new HashMap(); + private int maxLevel; + private final float fudgeFactor = 0.2f; public ItemMysteriousMagnet(int par1) { @@ -36,10 +38,9 @@ public class ItemMysteriousMagnet extends Item this.setHasSubtypes(true); this.rangeBase = 3f; this.multiplier = 0.75f; - this.special.put(792499080, 6f); - this.special.put(-1813233790, 0.4f); - this.special.put(902599041, 5.5f); + this.maxLevel = 8; this.setUnlocalizedName(CommonProxy.DOMAIN + ":mysteriousMagnet"); + this.setCreativeTab(TabMagicBees.tabMagicBees); } public void setBaseRange(float value) @@ -51,6 +52,16 @@ public class ItemMysteriousMagnet extends Item { this.multiplier = value; } + + public void setMaximumLevel(int value) + { + this.maxLevel = value; + } + + public int getMaximumLevel() + { + return this.maxLevel; + } @Override @SideOnly(Side.CLIENT) @@ -69,9 +80,12 @@ public class ItemMysteriousMagnet extends Item @Override @SideOnly(Side.CLIENT) - public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List list) + public void getSubItems(int id, CreativeTabs tabs, List list) { - super.getSubItems(par1, par2CreativeTabs, list); + for (int i = 0; i <= this.maxLevel; i++) + { + list.add(new ItemStack(this, 1, i * 2)); + } } @Override @@ -89,6 +103,13 @@ public class ItemMysteriousMagnet extends Item return isMagnetActive(damage) ? this.activeIcon : this.itemIcon; } + @Override + @SideOnly(Side.CLIENT) + public boolean hasEffect(ItemStack itemStack, int pass) + { + return isMagnetActive(itemStack); + } + @Override public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) { @@ -106,8 +127,29 @@ public class ItemMysteriousMagnet extends Item { EntityPlayer player = (EntityPlayer)entity; int dragCount = player.username.hashCode(); - float radius = getRadius(itemStack.getItemDamage()); + float radius = getRadius(itemStack.getItemDamage()) - fudgeFactor; AxisAlignedBB bounds = player.boundingBox.expand(radius, radius, radius); + + if (FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER) + { + bounds.expand(fudgeFactor, fudgeFactor, fudgeFactor); + + if ((itemStack.getItemDamage() >> 1) >= 7) + { + List arrows = world.getEntitiesWithinAABB(EntityArrow.class, bounds); + + for (EntityArrow arrow : arrows) + { + if (arrow.canBePickedUp == 1 && world.rand.nextInt(6) == 0) + { + EntityItem replacement = new EntityItem(world, arrow.posX, arrow.posY, arrow.posZ, new ItemStack(Item.arrow)); + world.spawnEntityInWorld(replacement); + } + world.removeEntity(arrow); + } + } + } + List list = world.getEntitiesWithinAABB(EntityItem.class, bounds); for (EntityItem e : list) @@ -136,29 +178,10 @@ public class ItemMysteriousMagnet extends Item if (world.rand.nextInt(20) == 0) { - float pitch = 0.9f - world.rand.nextFloat() / 10f; + float pitch = 0.85f - world.rand.nextFloat() * 3f / 10f; world.playSoundEffect(e.posX, e.posY, e.posZ, "mob.endermen.portal", 0.6f, pitch); } } - if (this.special.containsKey(dragCount) && world.rand.nextInt(15) == 0) - { - world.playSoundEffect(entity.posX, entity.posY, entity.posZ, "mob.endermen.portal", 1.5f, this.special.get(dragCount)); - } - } - - if ((itemStack.getItemDamage() >> 1) >= 7 && FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER) - { - List arrows = world.getEntitiesWithinAABB(EntityArrow.class, bounds); - - for (EntityArrow arrow : arrows) - { - if (world.rand.nextInt(10) == 0) - { - EntityItem replacement = new EntityItem(world, arrow.posX, arrow.posY, arrow.posZ, new ItemStack(Item.arrow)); - world.spawnEntityInWorld(replacement); - } - world.removeEntity(arrow); - } } } } diff --git a/magicbees_src/magicbees/item/types/CombType.java b/magicbees_src/magicbees/item/types/CombType.java index 13f96ac..a72aa77 100644 --- a/magicbees_src/magicbees/item/types/CombType.java +++ b/magicbees_src/magicbees/item/types/CombType.java @@ -10,9 +10,10 @@ public enum CombType OCCULT("occult", true), OTHERWORLDLY("otherworldly", true), TRANSMUTED("transmuted", true), + PAPERY("paper", true), SOUL("soul", true), - FURTIVE("furtive", true), + FURTIVE("furtive", false), INTELLECT("aware", false), TEMPORAL("time", false), FORGOTTEN("forgotten", false), @@ -22,12 +23,12 @@ public enum CombType WATERY("water", false), EARTHY("earth", false), - TC_AIR("TCair", true), - TC_FIRE("TCfire", true), - TC_WATER("TCwater", true), - TC_EARTH("TCearth", true), - TC_ORDER("TCorder", true), - TC_CHAOS("TCchaos", true), + TC_AIR("TCair", false), + TC_FIRE("TCfire", false), + TC_WATER("TCwater", false), + TC_EARTH("TCearth", false), + TC_ORDER("TCorder", false), + TC_CHAOS("TCchaos", false), AM_ESSENCE("essence", false), AM_POTENT("potent", false), @@ -42,9 +43,10 @@ public enum CombType {0xBCA664, 0x35332E}, {0x7F7171, 0x876D53}, - {0xcda6cd, 0x545454}, + {0xB7ACB7, 0x636363}, {0x0092e9, 0x618fff}, {0x2F9381, 0x773C31}, + {0xB191D8, 0x35443B}, {0xffff7e, 0x606308}, {0xff3C01, 0x5B0D10}, diff --git a/magicbees_src/magicbees/main/Config.java b/magicbees_src/magicbees/main/Config.java index 1ab5b70..4a70073 100644 --- a/magicbees_src/magicbees/main/Config.java +++ b/magicbees_src/magicbees/main/Config.java @@ -70,7 +70,9 @@ public class Config public float MagnetBaseRange; public float MagnetLevelMultiplier; + public int MagnetMaxLevel; + public boolean ForestryDebugEnabled; public static BlockPlanks planksWood; public static BlockWoodSlab slabWoodHalf; @@ -162,6 +164,8 @@ public class Config this.configuration = new Configuration(configFile); this.configuration.load(); this.doMiscConfig(); + + this.ForestryDebugEnabled = (new File("./config/forestry/DEBUG.ON")).exists(); } public void saveConfigs() @@ -330,6 +334,7 @@ public class Config magnet = new ItemMysteriousMagnet(configuration.getItem("magicMagnet", itemIDBase++).getInt() - 256); magnet.setBaseRange(3f); // magnet.setBaseRange(MagnetBaseRange); magnet.setLevelMultiplier(0.75f); // magnet.setLevelMultiplier(MagnetLevelMultiplier); + magnet.setMaximumLevel(8); // magnet.setMaxiumumLevel(MagnetMaxLevel); for (int level = 0; level <= 8; level++) { @@ -423,7 +428,11 @@ public class Config p = configuration.get("general", "magnetRangeMultiplier", 0.75); p.comment = "Range multiplier per level of the Mysterious Magnet. Total range = base range + level * multiplier"; - this.MagnetLevelMultiplier = (float)p.getDouble(0.75);*/ + this.MagnetLevelMultiplier = (float)p.getDouble(0.75); + + p = configuration.get("general", "magnetMaximumLevel", 8); + p.comment = "Maximum level of the magnets."; + this.MagnetMaxLevel = p.getInt();*/ } } diff --git a/magicbees_src/magicbees/main/utils/CraftingManager.java b/magicbees_src/magicbees/main/utils/CraftingManager.java index 6739b2d..d637c42 100644 --- a/magicbees_src/magicbees/main/utils/CraftingManager.java +++ b/magicbees_src/magicbees/main/utils/CraftingManager.java @@ -333,10 +333,10 @@ public class CraftingManager output = new ItemStack(Config.magnet); GameRegistry.addRecipe(output, new Object[] { - " i ", "cSc", " B ", + " i ", "cSc", " d ", 'i', Item.ingotIron, 'c', Item.compass, - 'B', Block.blockDiamond, + 'd', Item.diamond, 'S', Config.miscResources.getStackForType(ResourceType.DIMENSIONAL_SINGULARITY) }); @@ -344,9 +344,10 @@ public class CraftingManager { output = new ItemStack(Config.magnet, 1, level * 2); GameRegistry.addRecipe(new ShapedOreRecipe(output, new Object[] { - " m ", "mSm", " B ", + " d ", "mSm", " B ", + 'd', Item.diamond, 'm', "mb.magnet.level" + (level - 1), - 'B', Item.diamond, + 'B', Block.blockRedstone, 'S', Config.miscResources.getStackForType(ResourceType.DIMENSIONAL_SINGULARITY) })); } diff --git a/magicbees_src/magicbees/main/utils/compat/ThaumcraftHelper.java b/magicbees_src/magicbees/main/utils/compat/ThaumcraftHelper.java index 09a81d9..c1d0732 100644 --- a/magicbees_src/magicbees/main/utils/compat/ThaumcraftHelper.java +++ b/magicbees_src/magicbees/main/utils/compat/ThaumcraftHelper.java @@ -19,8 +19,9 @@ import net.minecraft.util.ResourceLocation; import thaumcraft.api.ThaumcraftApi; import thaumcraft.api.aspects.Aspect; import thaumcraft.api.aspects.AspectList; +import thaumcraft.api.crafting.CrucibleRecipe; import thaumcraft.api.crafting.IArcaneRecipe; -import thaumcraft.api.crafting.RecipeCrucible; +import thaumcraft.api.crafting.InfusionRecipe; import thaumcraft.api.research.ResearchCategories; import thaumcraft.api.research.ResearchItem; import thaumcraft.api.research.ResearchPage; @@ -155,6 +156,9 @@ public class ThaumcraftHelper getBlocks(); getItems(); + aspectTime = new Aspect("tempus", 0xB68CFF, new Aspect[] { Aspect.VOID, Aspect.ORDER }, + new ResourceLocation(CommonProxy.DOMAIN, CommonProxy.TEXTURE + "aspects/tempus.png"), 1); + //addItemsToBackpack(); setupItemAspects(); setupCrafting(); @@ -162,6 +166,8 @@ public class ThaumcraftHelper } } + private static Object aspectTime; + private static void getBlocks() { Config.tcPlant = GameRegistry.findBlock(Name, "blockCustomPlant"); @@ -301,8 +307,17 @@ public class ThaumcraftHelper essenceTime = ThaumcraftApi.addCrucibleRecipe("MB_EssenceTime", Config.miscResources.getStackForType(ResourceType.ESSENCE_LOST_TIME), new ItemStack(Item.pocketSundial), new AspectList().add(Aspect.ORDER, 10).add(Aspect.VOID, 10).add(Aspect.TRAP, 4)); - singularity = ThaumcraftApi.addCrucibleRecipe("MB_DimensionalSingularity", Config.miscResources.getStackForType(ResourceType.DIMENSIONAL_SINGULARITY, 3), - new ItemStack(Block.blockDiamond), new AspectList().add(Aspect.ELDRITCH, 10).add(Aspect.EXCHANGE, 20)); + input = new ItemStack(Item.enderPearl); + singularityA = ThaumcraftApi.addInfusionCraftingRecipe("MB_DimensionalSingularity", Config.miscResources.getStackForType(ResourceType.DIMENSIONAL_SINGULARITY, 3), + 5, new AspectList().add(Aspect.ELDRITCH, 10).add(Aspect.EXCHANGE, 20), + new ItemStack(Block.blockDiamond), + new ItemStack[] { input, input}); + + ItemStack in2 = new ItemStack(Item.diamond); + singularityB = ThaumcraftApi.addInfusionCraftingRecipe("MB_DimensionalSingularity", Config.miscResources.getStackForType(ResourceType.DIMENSIONAL_SINGULARITY, 3), + 6, new AspectList().add(Aspect.ELDRITCH, 10).add(Aspect.EXCHANGE, 20).add(Aspect.VOID, 15), + Config.propolis.getStackForType(PropolisType.UNSTABLE), + new ItemStack[] { input, input, in2, in2 }); essenceOblivion = ThaumcraftApi.addShapelessArcaneCraftingRecipe("MB_EssenceOblivion", Config.miscResources.getStackForType(ResourceType.ESSENCE_SCORNFUL_OBLIVION), new AspectList().add(Aspect.ENTROPY, 25).add(Aspect.AIR, 40).add(Aspect.ORDER, 15), new Object[] { @@ -315,7 +330,8 @@ public class ThaumcraftHelper private static Object frameOblivion; private static Object thaumScoop; private static Object thaumGrafter; - private static Object singularity; + private static Object singularityA; + private static Object singularityB; private static Object essenceLife; private static Object essenceDeath; private static Object essenceArmor; @@ -385,7 +401,7 @@ public class ThaumcraftHelper ResearchItem essenceFalseLifeR = new ResearchItem("MB_EssenceLife", category, new AspectList().add(Aspect.LIFE, 2).add(Aspect.MAGIC, 1), 2, -1, 2, Config.miscResources.getStackForType(ResourceType.ESSENCE_FALSE_LIFE)) - .setPages(getResearchPage("MB_EssenceLife.1"), new ResearchPage((RecipeCrucible)essenceLife), new ResearchPage(recipe) ) + .setPages(getResearchPage("MB_EssenceLife.1"), new ResearchPage((CrucibleRecipe)essenceLife), new ResearchPage(recipe) ) .setParentsHidden("CRUCIBLE") .registerResearchItem(); @@ -397,7 +413,7 @@ public class ThaumcraftHelper ResearchItem essenceDurabilityR = new ResearchItem("MB_EssenceArmor", category, new AspectList().add(Aspect.ARMOR, 1), 5, 0, 3, Config.miscResources.getStackForType(ResourceType.ESSENCE_EVERLASTING_DURABILITY)) - .setPages(getResearchPage("MB_EssenceArmor.1"), new ResearchPage((RecipeCrucible)essenceArmor), new ResearchPage(recipe) ) + .setPages(getResearchPage("MB_EssenceArmor.1"), new ResearchPage((CrucibleRecipe)essenceArmor), new ResearchPage(recipe) ) .setParents("MB_EssenceLife") .registerResearchItem(); @@ -409,8 +425,8 @@ public class ThaumcraftHelper ResearchItem essenceUnstableR = new ResearchItem("MB_EssenceUnstable", category, new AspectList().add(Aspect.ENTROPY, 2).add(Aspect.ORDER, 1), 3, 1, 4, Config.miscResources.getStackForType(ResourceType.ESSENCE_FICKLE_PERMANENCE)) - .setPages(getResearchPage("MB_EssenceUnstable.1"), new ResearchPage((RecipeCrucible)essenceUnstableA), - new ResearchPage((RecipeCrucible)essenceUnstableB), new ResearchPage(recipe) ) + .setPages(getResearchPage("MB_EssenceUnstable.1"), new ResearchPage((CrucibleRecipe)essenceUnstableA), + new ResearchPage((CrucibleRecipe)essenceUnstableB), new ResearchPage(recipe) ) .setParents("MB_EssenceLife") .setConcealed() .registerResearchItem(); @@ -423,7 +439,7 @@ public class ThaumcraftHelper ResearchItem essenceShallowGraveR = new ResearchItem("MB_EssenceDeath", category, new AspectList().add(Aspect.DEATH, 2).add(Aspect.MAGIC, 1), 2, 3, 2, Config.miscResources.getStackForType(ResourceType.ESSENCE_SHALLOW_GRAVE)) - .setPages(getResearchPage("MB_EssenceDeath.1"), new ResearchPage((RecipeCrucible)essenceDeath), new ResearchPage(recipe) ) + .setPages(getResearchPage("MB_EssenceDeath.1"), new ResearchPage((CrucibleRecipe)essenceDeath), new ResearchPage(recipe) ) .setParents("MB_EssenceUnstable") .setConcealed() .registerResearchItem(); @@ -433,18 +449,18 @@ public class ThaumcraftHelper list.add(input); recipe = new ShapelessRecipes(new ItemStack(Config.hiveFrameTemporal), list); - ResearchItem essenceTimeR = new ResearchItem("MB_EssenceTime", category, new AspectList().add(Aspect.TRAP, 2).add(Aspect.VOID, 1), + ResearchItem essenceTimeR = new ResearchItem("MB_EssenceTime", category, new AspectList().add((Aspect)aspectTime, 2), 0, 2, 5, Config.miscResources.getStackForType(ResourceType.ESSENCE_LOST_TIME)) - .setPages(getResearchPage("MB_EssenceTime.1"), new ResearchPage((RecipeCrucible)essenceTime), new ResearchPage(recipe) ) + .setPages(getResearchPage("MB_EssenceTime.1"), new ResearchPage((CrucibleRecipe)essenceTime), new ResearchPage(recipe) ) .setParents("MB_EssenceUnstable") .setConcealed() .registerResearchItem(); - ResearchItem singularityR = new ResearchItem("MB_DimensionalSingularity", category, new AspectList().add(Aspect.ELDRITCH, 2).add(Aspect.VOID, 1), + ResearchItem singularityR = new ResearchItem("MB_DimensionalSingularity", category, new AspectList().add(Aspect.ELDRITCH, 2).add((Aspect)aspectTime, 1).add(Aspect.VOID, 1), -1, 4, 5, Config.miscResources.getStackForType(ResourceType.DIMENSIONAL_SINGULARITY)) - .setPages(getResearchPage("MB_DimensionalSingularity.1"), new ResearchPage((RecipeCrucible)singularity) ) + .setPages(getResearchPage("MB_DimensionalSingularity.1"), new ResearchPage((InfusionRecipe)singularityA) , new ResearchPage((InfusionRecipe)singularityB)) .setParents("MB_FrameMagic", "MB_EssenceTime", "MB_EssenceDeath") .setConcealed() .setSpecial() @@ -455,7 +471,7 @@ public class ThaumcraftHelper list.add(forestry.api.core.ItemInterface.getItem("frameProven")); recipe = new ShapelessRecipes(new ItemStack(Config.hiveFrameOblivion), list); - ResearchItem essenceOblivionR = new ResearchItem("MB_EssenceOblivion", category, new AspectList().add(Aspect.VOID, 2).add(Aspect.HUNGER, 1), + ResearchItem essenceOblivionR = new ResearchItem("MB_EssenceOblivion", category, new AspectList().add(Aspect.VOID, 2).add(Aspect.HUNGER, 1).add((Aspect)aspectTime, 1), -3, 3, 5, Config.miscResources.getStackForType(ResourceType.ESSENCE_SCORNFUL_OBLIVION)) .setPages(getResearchPage("MB_EssenceOblivion.1"), new ResearchPage((IArcaneRecipe)essenceOblivion), new ResearchPage(recipe) ) @@ -479,6 +495,9 @@ public class ThaumcraftHelper ItemStack item; AspectList list; + ThaumcraftApi.registerObjectTag(Item.pocketSundial.itemID, 0, new AspectList(Item.pocketSundial.itemID, 0).add((Aspect)aspectTime, 4)); + ThaumcraftApi.registerObjectTag(Item.redstoneRepeater.itemID, 0, new AspectList(Item.redstoneRepeater.itemID, 0).add((Aspect)aspectTime, 2)); + list = new AspectList(Block.wood.blockID, 0); for (int i = 1; i <= 8; i++) { @@ -582,16 +601,16 @@ public class ThaumcraftHelper list = new AspectList().add(Aspect.PLANT, 2); item = forestry.api.core.ItemInterface.getItem("pollen"); ThaumcraftApi.registerObjectTag(item.itemID, ForestryHelper.Pollen.NORMAL.ordinal(), list); - ThaumcraftApi.registerObjectTag(item.itemID, ForestryHelper.Pollen.CRYSTALLINE.ordinal(), list.copy().add(Aspect.ICE, 1)); - ThaumcraftApi.registerObjectTag(Config.pollen.itemID, PollenType.UNUSUAL.ordinal(), list.copy().add(Aspect.MAGIC, 1)); - ThaumcraftApi.registerObjectTag(Config.pollen.itemID, PollenType.PHASED.ordinal(), list.copy().add(Aspect.ELDRITCH, 1)); + ThaumcraftApi.registerObjectTag(item.itemID, ForestryHelper.Pollen.CRYSTALLINE.ordinal(), list.copy().add(Aspect.ICE, 2)); + ThaumcraftApi.registerObjectTag(Config.pollen.itemID, PollenType.UNUSUAL.ordinal(), list.copy().add(Aspect.MAGIC, 2)); + ThaumcraftApi.registerObjectTag(Config.pollen.itemID, PollenType.PHASED.ordinal(), list.copy().add((Aspect)aspectTime, 2)); list = new AspectList().add(Aspect.ORDER, 1); item = forestry.api.core.ItemInterface.getItem("beeswax"); - ThaumcraftApi.registerObjectTag(item.itemID, item.getItemDamage(), list); - ThaumcraftApi.registerObjectTag(Config.wax.itemID, WaxType.MAGIC.ordinal(), list.copy().add(Aspect.MAGIC, 1)); - ThaumcraftApi.registerObjectTag(Config.wax.itemID, WaxType.SOUL.ordinal(), list.copy().add(Aspect.SOUL, 1)); - ThaumcraftApi.registerObjectTag(Config.wax.itemID, WaxType.AMNESIC.ordinal(), list.copy().add(Aspect.MIND, 1)); + ThaumcraftApi.registerObjectTag(item.itemID, item.getItemDamage(), list.copy().add(Aspect.ORDER, 2)); + ThaumcraftApi.registerObjectTag(Config.wax.itemID, WaxType.MAGIC.ordinal(), list.copy().add(Aspect.MAGIC, 2)); + ThaumcraftApi.registerObjectTag(Config.wax.itemID, WaxType.SOUL.ordinal(), list.copy().add(Aspect.SOUL, 2)); + ThaumcraftApi.registerObjectTag(Config.wax.itemID, WaxType.AMNESIC.ordinal(), list.copy().add(Aspect.MIND, 2)); list = new AspectList().add(Aspect.EXCHANGE, 2).add(Aspect.LIFE, 2); item = forestry.api.core.ItemInterface.getItem("honeyDrop"); @@ -619,6 +638,6 @@ public class ThaumcraftHelper ThaumcraftApi.registerObjectTag(item.itemID, item.getItemDamage(), new AspectList().add(Aspect.ARMOR, 6)); item = Config.miscResources.getStackForType(ResourceType.ESSENCE_LOST_TIME); - ThaumcraftApi.registerObjectTag(item.itemID, item.getItemDamage(), new AspectList().add(Aspect.VOID, 6)); + ThaumcraftApi.registerObjectTag(item.itemID, item.getItemDamage(), new AspectList().add(Aspect.VOID, 6).add((Aspect)aspectTime, 8 )); } }