From e8e5a3377caa2ed7ff87d3c5da262318ab8ffc01 Mon Sep 17 00:00:00 2001 From: Jeremy Diamond Date: Sun, 19 Oct 2014 01:39:50 -0700 Subject: [PATCH] More Configs --- .../java/fox/spiteful/forbidden/Config.java | 16 +++ .../spiteful/forbidden/compat/BloodMagic.java | 18 ++-- .../fox/spiteful/forbidden/compat/Compat.java | 79 ++------------- .../forbidden/compat/ForbiddenBotany.java | 97 +++++++++++++++++++ .../forbidden/items/ForbiddenItems.java | 14 ++- .../items/wands/BloodStaffUpdate.java | 3 +- .../items/wands/BloodWandUpdate.java | 3 +- .../forbidden/items/wands/ItemWandCores.java | 7 +- .../items/wands/ManaStaffUpdate.java | 3 +- .../forbidden/items/wands/ManaWandUpdate.java | 3 +- .../items/wands/YandereWandUpdate.java | 3 +- 11 files changed, 153 insertions(+), 93 deletions(-) create mode 100644 src/main/java/fox/spiteful/forbidden/compat/ForbiddenBotany.java diff --git a/src/main/java/fox/spiteful/forbidden/Config.java b/src/main/java/fox/spiteful/forbidden/Config.java index ed9ed82..e850352 100644 --- a/src/main/java/fox/spiteful/forbidden/Config.java +++ b/src/main/java/fox/spiteful/forbidden/Config.java @@ -41,6 +41,14 @@ public class Config { public static boolean emeraldTrans = true; public static boolean wrathCrazy = false; + public static boolean crossMod = true; + public static boolean crossWand = true; + public static boolean botan = true; + public static boolean bloodMagic = true; + public static boolean am2 = true; + public static boolean tt = true; + public static boolean tc = true; + public static int wrathCost = 5; public static int wrathEff = 4; @@ -75,6 +83,14 @@ public class Config { wrathCrazy = conf.get("general", "Wrath Cage Cries Havoc", wrathCrazy, "Enable to let the Wrath Cage imprint on ANY non-boss mob. May break your game or make your game Awesome.").getBoolean(false); spork = conf.get("silly", "Spork of Doom", spork, "What is this? I don't even...").getBoolean(false); bloodSealPotionID = conf.get("potions", "Blood Seal", bloodSealPotionID).getInt(bloodSealPotionID); + + crossMod = conf.get("compatibility", "Cross-Mod Interaction", crossMod, "Disable to keep mods segregated.").getBoolean(true); + crossWand = conf.get("compatibility", "Conversion Wands", crossWand, "Disable to remove all conversion wands.").getBoolean(true); + botan = conf.get("compatibility", "Botania Interaction", botan).getBoolean(true); + bloodMagic = conf.get("compatibility", "Blood Magic Interaction", bloodMagic).getBoolean(true); + am2 = conf.get("compatibility", "Ars Magica 2 Interaction", am2).getBoolean(true); + tt = conf.get("compatibility", "Thaumic Tinkerer Interaction", tt).getBoolean(true); + tc = conf.get("compatibility", "Tinkers Construct Interaction", tc).getBoolean(true); } catch (Exception e) { LogHandler.log(Level.ERROR, e, "Had a problem loading its configuration."); } finally { diff --git a/src/main/java/fox/spiteful/forbidden/compat/BloodMagic.java b/src/main/java/fox/spiteful/forbidden/compat/BloodMagic.java index bd3441d..1416611 100644 --- a/src/main/java/fox/spiteful/forbidden/compat/BloodMagic.java +++ b/src/main/java/fox/spiteful/forbidden/compat/BloodMagic.java @@ -1,6 +1,7 @@ package fox.spiteful.forbidden.compat; import WayofTime.alchemicalWizardry.api.alchemy.AlchemicalPotionCreationHandler; +import fox.spiteful.forbidden.Config; import fox.spiteful.forbidden.DarkAspects; import fox.spiteful.forbidden.LogHandler; import fox.spiteful.forbidden.potions.DarkPotions; @@ -50,12 +51,18 @@ public class BloodMagic { Item demonShard = GameRegistry.findItem("AWWayofTime", "demonBloodShard"); Item bloodBucket = GameRegistry.findItem("AWWayofTime", "bucketLife"); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ForbiddenItems.wandCore, 1, 3), new ItemStack(ForbiddenItems.wandCore, 1, 6), 4, 20000, 15, 20, false); + if(Config.crossWand) { + AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ForbiddenItems.wandCore, 1, 3), new ItemStack(ForbiddenItems.wandCore, 1, 6), 4, 20000, 15, 20, false); - InfusionRecipe blood_recipe = ThaumcraftApi.addInfusionCraftingRecipe("ROD_blood", new ItemStack(ForbiddenItems.wandCore, 1, 6), 2, (new AspectList()).add(Aspect.LIFE, 32).add(Aspect.MAGIC, 12).add(Aspect.WATER, 16), new ItemStack(masterOrb), new ItemStack[] { new ItemStack(magicales), new ItemStack(imbuedSlate), new ItemStack(imbuedSlate), new ItemStack(tennebrae), new ItemStack(sanctus), new ItemStack(aquasalus), new ItemStack(incendium), new ItemStack(terrae), new ItemStack(aether) }); - (new DarkResearchItem("ROD_blood", "FORBIDDEN", "[BM]", (new AspectList()).add(Aspect.LIFE, 5).add(Aspect.WATER, 4).add(Aspect.WEAPON, 3), -5, -3, 2, new ItemStack(ForbiddenItems.wandCore, 1, 3))).setPages(new ResearchPage[] { new ResearchPage("forbidden.research_page.ROD_blood.1"), new ResearchPage(blood_recipe), new ResearchPage("forbidden.research_page.ROD_blood.2") }).setParents(new String[] { "ROD_silverwood", "INFAUXSION" }).setAspectTriggers(new Aspect[] { Aspect.LIFE }).setConcealed().registerResearchItem(); - ThaumcraftApi.addWarpToResearch("ROD_blood", 2); + InfusionRecipe blood_recipe = ThaumcraftApi.addInfusionCraftingRecipe("ROD_blood", new ItemStack(ForbiddenItems.wandCore, 1, 6), 2, (new AspectList()).add(Aspect.LIFE, 32).add(Aspect.MAGIC, 12).add(Aspect.WATER, 16), new ItemStack(masterOrb), new ItemStack[]{new ItemStack(magicales), new ItemStack(imbuedSlate), new ItemStack(imbuedSlate), new ItemStack(tennebrae), new ItemStack(sanctus), new ItemStack(aquasalus), new ItemStack(incendium), new ItemStack(terrae), new ItemStack(aether)}); + (new DarkResearchItem("ROD_blood", "FORBIDDEN", "[BM]", (new AspectList()).add(Aspect.LIFE, 5).add(Aspect.WATER, 4).add(Aspect.WEAPON, 3), -5, -3, 2, new ItemStack(ForbiddenItems.wandCore, 1, 3))).setPages(new ResearchPage[]{new ResearchPage("forbidden.research_page.ROD_blood.1"), new ResearchPage(blood_recipe), new ResearchPage("forbidden.research_page.ROD_blood.2")}).setParents(new String[]{"ROD_silverwood", "INFAUXSION"}).setAspectTriggers(new Aspect[]{Aspect.LIFE}).setConcealed().registerResearchItem(); + ThaumcraftApi.addWarpToResearch("ROD_blood", 2); + + IArcaneRecipe blood_staff = ThaumcraftApi.addArcaneCraftingRecipe("ROD_blood_staff", new ItemStack(ForbiddenItems.wandCore, 1, 9), (new AspectList()).add(Aspect.ENTROPY, 26).add(Aspect.FIRE, 26).add(Aspect.WATER, 26).add(Aspect.AIR, 26).add(Aspect.EARTH, 26).add(Aspect.ORDER, 26), new Object[]{"__D", "_B_", "B__", Character.valueOf('B'), new ItemStack(ForbiddenItems.wandCore, 1, 3), Character.valueOf('D'), new ItemStack(demonShard)}); + (new DarkResearchItem("ROD_blood_staff", "FORBIDDEN", "[BM]", (new AspectList()).add(Aspect.LIFE, 8).add(Aspect.WATER, 7).add(Aspect.WEAPON, 6), -5, -7, 5, new ItemStack(ForbiddenItems.wandCore, 1, 9))).setPages(new ResearchPage[]{new ResearchPage("forbidden.research_page.ROD_blood_staff.1"), new ResearchPage(blood_staff)}).setParents(new String[]{"ROD_silverwood_staff", "ROD_blood"}).setSpecial().setConcealed().registerResearchItem(); + + } InfusionRecipe alchemical_recipe = ThaumcraftApi.addInfusionCraftingRecipe("CAP_alchemical", new ItemStack(ForbiddenItems.wandCap, 1, 0), 3, (new AspectList()).add(Aspect.LIFE, 12).add(Aspect.WATER, 6), ItemApi.getItem("itemWandCap", 1), new ItemStack[] { new ItemStack(magicales), new ItemStack(magicales), new ItemStack(magicales) }); (new DarkResearchItem("CAP_alchemical", "FORBIDDEN", "[BM]", (new AspectList()).add(Aspect.LIFE, 4).add(Aspect.TOOL, 1).add(Aspect.WATER, 3), -5, -5, 2, new ItemStack(ForbiddenItems.wandCap, 1, 0))).setPages(new ResearchPage[] { new ResearchPage("forbidden.research_page.CAP_alchemical.1"), new ResearchPage(alchemical_recipe) }).setParents(new String[] { "ROD_blood", "CAP_gold" }).setSecondary().setConcealed().registerResearchItem(); @@ -64,9 +71,6 @@ public class BloodMagic { (new DarkResearchItem("BLOODWELL", "FORBIDDEN", "[BM]", (new AspectList()).add(Aspect.LIFE, 5).add(Aspect.MIND, 4).add(Aspect.SENSES, 3), -10, 4, 1, new ItemStack(ForbiddenItems.bloodwell, 1, 0))).setPages(new ResearchPage[] { new ResearchPage("forbidden.research_page.BLOODWELL.1"), new ResearchPage(bloodwell_recipe) }).setParents(new String[] { "RESEARCH" }).setAspectTriggers(new Aspect[] { Aspect.LIFE }).setConcealed().registerResearchItem(); ThaumcraftApi.addWarpToResearch("BLOODWELL", 1); - IArcaneRecipe blood_staff = ThaumcraftApi.addArcaneCraftingRecipe("ROD_blood_staff", new ItemStack(ForbiddenItems.wandCore, 1, 9), (new AspectList()).add(Aspect.ENTROPY, 26).add(Aspect.FIRE, 26).add(Aspect.WATER, 26).add(Aspect.AIR, 26).add(Aspect.EARTH, 26).add(Aspect.ORDER, 26), new Object[] { "__D", "_B_", "B__", Character.valueOf('B'), new ItemStack(ForbiddenItems.wandCore, 1, 3), Character.valueOf('D'), new ItemStack(demonShard) }); - (new DarkResearchItem("ROD_blood_staff", "FORBIDDEN", "[BM]", (new AspectList()).add(Aspect.LIFE, 8).add(Aspect.WATER, 7).add(Aspect.WEAPON, 6), -5, -7, 5, new ItemStack(ForbiddenItems.wandCore, 1, 9))).setPages(new ResearchPage[] { new ResearchPage("forbidden.research_page.ROD_blood_staff.1"), new ResearchPage(blood_staff) }).setParents(new String[] { "ROD_silverwood_staff", "ROD_blood" }).setSpecial().setConcealed().registerResearchItem(); - InfusionRecipe blood_rapier = ThaumcraftApi.addInfusionCraftingRecipe("BLOODRAPIER", new ItemStack(ForbiddenItems.bloodRapier, 1, 0), 8, (new AspectList()).add(Aspect.LIFE, 18).add(Aspect.HUNGER, 32).add(Aspect.WEAPON, 8), ItemApi.getItem("itemSwordVoid", 0), new ItemStack[] { ItemApi.getItem("itemResource", 12), new ItemStack(ForbiddenItems.deadlyShards, 1, 0), new ItemStack(ForbiddenItems.gluttonyShard, 1, 0), new ItemStack(Items.feather), ItemApi.getItem("itemResource", 6) }); (new DarkResearchItem("BLOODRAPIER", "FORBIDDEN", "[BM]", (new AspectList()).add(Aspect.LIFE, 16).add(Aspect.HUNGER, 12).add(Aspect.WEAPON, 12).add(Aspect.MAGIC, 12), -9, 8, 4, new ItemStack(ForbiddenItems.bloodRapier, 1, 0))).setPages(new ResearchPage[] { new ResearchPage("forbidden.research_page.BLOODRAPIER.1"), new ResearchPage(blood_rapier) }).setParents(new String[] { "INFAUXSION", "VOIDMETAL" }).setConcealed().registerResearchItem(); diff --git a/src/main/java/fox/spiteful/forbidden/compat/Compat.java b/src/main/java/fox/spiteful/forbidden/compat/Compat.java index b9aaf0b..74469c3 100644 --- a/src/main/java/fox/spiteful/forbidden/compat/Compat.java +++ b/src/main/java/fox/spiteful/forbidden/compat/Compat.java @@ -41,7 +41,6 @@ import java.util.List; public class Compat { public static boolean tt = false; public static boolean kami = false; - public static boolean tx = false; public static boolean natura = false; public static boolean pb = false; public static boolean bm = false; @@ -50,23 +49,23 @@ public class Compat { public static boolean tc = false; public static void initiate() { - if (Loader.isModLoaded("ThaumicTinkerer")) + if(!Config.crossMod) + return; + if (Config.tt && Loader.isModLoaded("ThaumicTinkerer")) tt = true; if (tt && Loader.isModLoaded("ThaumicTinkererKami")) kami = true; - if (Loader.isModLoaded("ThaumicExploration")) - tx = true; if (Loader.isModLoaded("Natura")) natura = true; if (Loader.isModLoaded("PlayerBeacons")) pb = true; - if (Loader.isModLoaded("AWWayofTime")) + if (Config.bloodMagic && Loader.isModLoaded("AWWayofTime")) bm = true; - if (Loader.isModLoaded("arsmagica2")) + if (Config.am2 && Loader.isModLoaded("arsmagica2")) am2 = true; - if (Loader.isModLoaded("Botania")) + if (Config.botan && Loader.isModLoaded("Botania")) botan = true; - if (Loader.isModLoaded("TConstruct")) + if (Config.tc && Loader.isModLoaded("TConstruct")) tc = true; } @@ -206,7 +205,7 @@ public class Compat { BloodMagic.stab(); } - if (am2) { + if (Config.crossWand && am2) { try { Class amItems = Class.forName("am2.items.ItemsCommonProxy"); Class amBlocks = Class.forName("am2.blocks.BlocksCommonProxy"); @@ -229,67 +228,7 @@ public class Compat { } if (botan) { - try { - Item rune = GameRegistry.findItem("Botania", "rune"); - Item resource = GameRegistry.findItem("Botania", "manaResource"); - Item livingLog = GameRegistry.findItem("Botania", "livingwood"); - Item flower = GameRegistry.findItem("Botania", "flower"); - Item specialFlower = GameRegistry.findItem("Botania", "specialFlower"); - Item manaPetal = GameRegistry.findItem("Botania", "manaPetal"); - - CraftingManager.getInstance().addRecipe(new ItemStack(resource, 1, 0), new Object[] { "###", "###", "###", Character.valueOf('#'), new ItemStack(ForbiddenItems.resource, 1, 2) }); - CraftingManager.getInstance().addRecipe(new ItemStack(ForbiddenItems.resource, 9, 2), new Object[] { "#", Character.valueOf('#'), new ItemStack(resource, 1, 0) }); - - InfusionRecipe livingwood_rod = ThaumcraftApi.addInfusionCraftingRecipe("ROD_livingwood", new ItemStack(ForbiddenItems.wandCore, 1, 8), 3, (new AspectList()).add(Aspect.MAGIC, 16).add(Aspect.TREE, 32).add(Aspect.LIFE, 16).add(Aspect.SENSES, 8).add(Aspect.PLANT, 8), new ItemStack(livingLog), new ItemStack[] { new ItemStack(resource, 1, 2), new ItemStack(rune, 1, 8), new ItemStack(rune, 1, 0), new ItemStack(rune, 1, 1), new ItemStack(rune, 1, 2), new ItemStack(rune, 1, 3), new ItemStack(rune, 1, 4), new ItemStack(rune, 1, 5), new ItemStack(rune, 1, 6), new ItemStack(rune, 1, 7) }); - (new DarkResearchItem("ROD_livingwood", "FORBIDDEN", "[B]", (new AspectList()).add(Aspect.TREE, 8).add(Aspect.MAGIC, 4).add(Aspect.PLANT, 6), -1, -3, 3, new ItemStack(ForbiddenItems.wandCore, 1, 7))).setPages(new ResearchPage[] { new ResearchPage("forbidden.research_page.ROD_livingwood.1"), new ResearchPage(livingwood_rod) }).setParents(new String[] { "ROD_silverwood", "INFAUXSION" }).setConcealed().registerResearchItem(); - ThaumcraftApi.addWarpToResearch("ROD_livingwood", 2); - BotaniaAPI.registerManaInfusionRecipe(new ItemStack(ForbiddenItems.wandCore, 1, 7), new ItemStack(ForbiddenItems.wandCore, 1, 8), 10000); - - IArcaneRecipe manasteel_cap = ThaumcraftApi.addArcaneCraftingRecipe("CAP_manasteel", new ItemStack(ForbiddenItems.wandCap, 1, 4), (new AspectList()).add(Aspect.ENTROPY, 6).add(Aspect.FIRE, 6).add(Aspect.WATER, 6).add(Aspect.AIR, 6).add(Aspect.EARTH, 6).add(Aspect.ORDER, 6), new Object[] { "NNN", "N N", Character.valueOf('N'), new ItemStack(ForbiddenItems.resource, 1, 2) }); - (new DarkResearchItem("CAP_manasteel", "FORBIDDEN", "[B]", (new AspectList()).add(Aspect.ELDRITCH, 3).add(Aspect.MAGIC, 2).add(Aspect.ENTROPY, 4), -1, -5, 2, new ItemStack(ForbiddenItems.wandCap, 1, 3))).setPages(new ResearchPage[] { new ResearchPage("forbidden.research_page.CAP_manasteel.1"), new ResearchPage(manasteel_cap) }).setParents(new String[] { "ROD_livingwood" }).setSecondary().setConcealed().registerResearchItem(); - BotaniaAPI.registerManaInfusionRecipe(new ItemStack(ForbiddenItems.wandCap, 1, 3), new ItemStack(ForbiddenItems.wandCap, 1, 4), 1000); - - BotaniaAPI.registerSubTile("euclidaisy", SubTileEuclidaisy.class); - BotaniaAPI.registerSubTileSignature(SubTileEuclidaisy.class, new DarkSignature("euclidaisy")); - BotaniaAPI.addSubTileToCreativeMenu("euclidaisy"); - - List cats = BotaniaAPI.getAllCategories(); - LexiconCategory functional = null; - for(LexiconCategory cat : cats){ - if(cat.getUnlocalizedName().equals("botania.category.functionalFlowers")) - functional = cat; - } - SubTileEuclidaisy.lexicon = new ForbiddenLexicon("euclidaisy", functional); - - SubTileEuclidaisy.lexicon.addPage(BotaniaAPI.internalHandler.textPage("forbidden.lexicon.euclidaisy.0")); - - ItemStack euclidaisy = new ItemStack(specialFlower, 1, 0); - NBTTagCompound tag = new NBTTagCompound(); - tag.setString("type", "euclidaisy"); - euclidaisy.setTagCompound(tag); - - InfusionRecipe euclid = ThaumcraftApi.addInfusionCraftingRecipe("EUCLIDAISY", euclidaisy, 8, (new AspectList()).add(Aspect.AURA, 8).add(Aspect.ELDRITCH, 10).add(Aspect.MAGIC, 8), new ItemStack(flower, 1, 6), new ItemStack[] { new ItemStack(ConfigItems.itemResource, 1, 14), new ItemStack(resource, 1, 1), new ItemStack(resource, 1, 6), new ItemStack(manaPetal, 1, 6), new ItemStack(manaPetal, 1, 6), new ItemStack(rune, 1, 12), new ItemStack(rune, 1, 11) }); - (new DarkResearchItem("EUCLIDAISY", "FORBIDDEN", "[B]", (new AspectList()).add(Aspect.PLANT, 8).add(Aspect.MAGIC, 4).add(Aspect.AURA, 12), -7, 5, 3, euclidaisy)).setPages(new ResearchPage[] { new ResearchPage("forbidden.research_page.EUCLIDAISY.1"), new ResearchPage(euclid) }).setParents(new String[] { "INFAUXSION" }).setConcealed().registerResearchItem(); - - BotaniaAPI.registerSubTile("whisperweed", SubTileWhisperweed.class); - BotaniaAPI.registerSubTileSignature(SubTileWhisperweed.class, new DarkSignature("whisperweed")); - BotaniaAPI.addSubTileToCreativeMenu("whisperweed"); - - SubTileWhisperweed.lexicon = new ForbiddenLexicon("whisperweed", functional); - - SubTileWhisperweed.lexicon.addPage(BotaniaAPI.internalHandler.textPage("forbidden.lexicon.whisperweed.0")); - - ItemStack whisperweed = new ItemStack(specialFlower, 1, 0); - NBTTagCompound wtag = new NBTTagCompound(); - wtag.setString("type", "whisperweed"); - whisperweed.setTagCompound(wtag); - RecipePetals whispercraft = BotaniaAPI.registerPetalRecipe(whisperweed, new ItemStack(resource, 1, 2), new ItemStack(resource, 1, 6), new ItemStack(ConfigItems.itemResource, 1, 9), new ItemStack(manaPetal, 1, 7), new ItemStack(manaPetal, 1, 10), new ItemStack(rune, 1, 14), new ItemStack(ConfigItems.itemResource, 1, 6)); - SubTileWhisperweed.lexicon.addPage(BotaniaAPI.internalHandler.petalRecipePage("forbidden.lexicon.whisperweed.1", whispercraft)); - - } catch (Throwable e) { - LogHandler.log(Level.INFO, e, "Forbidden Magic: Botania? Do you wanna build a snowman?"); - botan = false; - } + ForbiddenBotany.flowerPowerHippymancy(); } } } \ No newline at end of file diff --git a/src/main/java/fox/spiteful/forbidden/compat/ForbiddenBotany.java b/src/main/java/fox/spiteful/forbidden/compat/ForbiddenBotany.java new file mode 100644 index 0000000..d079e64 --- /dev/null +++ b/src/main/java/fox/spiteful/forbidden/compat/ForbiddenBotany.java @@ -0,0 +1,97 @@ +package fox.spiteful.forbidden.compat; + +import cpw.mods.fml.common.registry.GameRegistry; +import fox.spiteful.forbidden.Config; +import fox.spiteful.forbidden.DarkResearchItem; +import fox.spiteful.forbidden.LogHandler; +import fox.spiteful.forbidden.items.ForbiddenItems; +import fox.spiteful.forbidden.tiles.SubTileEuclidaisy; +import fox.spiteful.forbidden.tiles.SubTileWhisperweed; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.CraftingManager; +import net.minecraft.nbt.NBTTagCompound; +import org.apache.logging.log4j.Level; +import thaumcraft.api.ThaumcraftApi; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; +import thaumcraft.api.crafting.IArcaneRecipe; +import thaumcraft.api.crafting.InfusionRecipe; +import thaumcraft.api.research.ResearchPage; +import thaumcraft.common.config.ConfigItems; +import vazkii.botania.api.BotaniaAPI; +import vazkii.botania.api.lexicon.LexiconCategory; +import vazkii.botania.api.recipe.RecipePetals; + +import java.util.List; + +public class ForbiddenBotany { + public static void flowerPowerHippymancy(){ + try { + Item rune = GameRegistry.findItem("Botania", "rune"); + Item resource = GameRegistry.findItem("Botania", "manaResource"); + Item livingLog = GameRegistry.findItem("Botania", "livingwood"); + Item flower = GameRegistry.findItem("Botania", "flower"); + Item manaPetal = GameRegistry.findItem("Botania", "manaPetal"); + + CraftingManager.getInstance().addRecipe(new ItemStack(resource, 1, 0), new Object[] { "###", "###", "###", Character.valueOf('#'), new ItemStack(ForbiddenItems.resource, 1, 2) }); + CraftingManager.getInstance().addRecipe(new ItemStack(ForbiddenItems.resource, 9, 2), new Object[] { "#", Character.valueOf('#'), new ItemStack(resource, 1, 0) }); + + if(Config.crossWand) { + + InfusionRecipe livingwood_rod = ThaumcraftApi.addInfusionCraftingRecipe("ROD_livingwood", new ItemStack(ForbiddenItems.wandCore, 1, 8), 3, (new AspectList()).add(Aspect.MAGIC, 16).add(Aspect.TREE, 32).add(Aspect.LIFE, 16).add(Aspect.SENSES, 8).add(Aspect.PLANT, 8), new ItemStack(livingLog), new ItemStack[]{new ItemStack(resource, 1, 2), new ItemStack(rune, 1, 8), new ItemStack(rune, 1, 0), new ItemStack(rune, 1, 1), new ItemStack(rune, 1, 2), new ItemStack(rune, 1, 3), new ItemStack(rune, 1, 4), new ItemStack(rune, 1, 5), new ItemStack(rune, 1, 6), new ItemStack(rune, 1, 7)}); + (new DarkResearchItem("ROD_livingwood", "FORBIDDEN", "[B]", (new AspectList()).add(Aspect.TREE, 8).add(Aspect.MAGIC, 4).add(Aspect.PLANT, 6), -1, -3, 3, new ItemStack(ForbiddenItems.wandCore, 1, 7))).setPages(new ResearchPage[]{new ResearchPage("forbidden.research_page.ROD_livingwood.1"), new ResearchPage(livingwood_rod)}).setParents(new String[]{"ROD_silverwood", "INFAUXSION"}).setConcealed().registerResearchItem(); + ThaumcraftApi.addWarpToResearch("ROD_livingwood", 2); + BotaniaAPI.registerManaInfusionRecipe(new ItemStack(ForbiddenItems.wandCore, 1, 7), new ItemStack(ForbiddenItems.wandCore, 1, 8), 10000); + + IArcaneRecipe manasteel_cap = ThaumcraftApi.addArcaneCraftingRecipe("CAP_manasteel", new ItemStack(ForbiddenItems.wandCap, 1, 4), (new AspectList()).add(Aspect.ENTROPY, 6).add(Aspect.FIRE, 6).add(Aspect.WATER, 6).add(Aspect.AIR, 6).add(Aspect.EARTH, 6).add(Aspect.ORDER, 6), new Object[]{"NNN", "N N", Character.valueOf('N'), new ItemStack(ForbiddenItems.resource, 1, 2)}); + (new DarkResearchItem("CAP_manasteel", "FORBIDDEN", "[B]", (new AspectList()).add(Aspect.ELDRITCH, 3).add(Aspect.MAGIC, 2).add(Aspect.ENTROPY, 4), -1, -5, 2, new ItemStack(ForbiddenItems.wandCap, 1, 3))).setPages(new ResearchPage[]{new ResearchPage("forbidden.research_page.CAP_manasteel.1"), new ResearchPage(manasteel_cap)}).setParents(new String[]{"ROD_livingwood"}).setSecondary().setConcealed().registerResearchItem(); + BotaniaAPI.registerManaInfusionRecipe(new ItemStack(ForbiddenItems.wandCap, 1, 3), new ItemStack(ForbiddenItems.wandCap, 1, 4), 1000); + } + + BotaniaAPI.registerSubTile("euclidaisy", SubTileEuclidaisy.class); + BotaniaAPI.registerSubTileSignature(SubTileEuclidaisy.class, new DarkSignature("euclidaisy")); + BotaniaAPI.addSubTileToCreativeMenu("euclidaisy"); + + List cats = BotaniaAPI.getAllCategories(); + LexiconCategory functional = null; + for(LexiconCategory cat : cats){ + if(cat.getUnlocalizedName().equals("botania.category.functionalFlowers")) + functional = cat; + } + SubTileEuclidaisy.lexicon = new ForbiddenLexicon("euclidaisy", functional); + + SubTileEuclidaisy.lexicon.addPage(BotaniaAPI.internalHandler.textPage("forbidden.lexicon.euclidaisy.0")); + + ItemStack euclidaisy = getFlower("euclidaisy"); + + InfusionRecipe euclid = ThaumcraftApi.addInfusionCraftingRecipe("EUCLIDAISY", euclidaisy, 8, (new AspectList()).add(Aspect.AURA, 8).add(Aspect.ELDRITCH, 10).add(Aspect.MAGIC, 8), new ItemStack(flower, 1, 6), new ItemStack[] { new ItemStack(ConfigItems.itemResource, 1, 14), new ItemStack(resource, 1, 1), new ItemStack(resource, 1, 6), new ItemStack(manaPetal, 1, 6), new ItemStack(manaPetal, 1, 6), new ItemStack(rune, 1, 12), new ItemStack(rune, 1, 11) }); + (new DarkResearchItem("EUCLIDAISY", "FORBIDDEN", "[B]", (new AspectList()).add(Aspect.PLANT, 8).add(Aspect.MAGIC, 4).add(Aspect.AURA, 12), -7, 5, 3, euclidaisy)).setPages(new ResearchPage[] { new ResearchPage("forbidden.research_page.EUCLIDAISY.1"), new ResearchPage(euclid) }).setParents(new String[] { "INFAUXSION" }).setConcealed().registerResearchItem(); + + BotaniaAPI.registerSubTile("whisperweed", SubTileWhisperweed.class); + BotaniaAPI.registerSubTileSignature(SubTileWhisperweed.class, new DarkSignature("whisperweed")); + BotaniaAPI.addSubTileToCreativeMenu("whisperweed"); + + SubTileWhisperweed.lexicon = new ForbiddenLexicon("whisperweed", functional); + + SubTileWhisperweed.lexicon.addPage(BotaniaAPI.internalHandler.textPage("forbidden.lexicon.whisperweed.0")); + + ItemStack whisperweed = getFlower("whisperweed"); + RecipePetals whispercraft = BotaniaAPI.registerPetalRecipe(whisperweed, new ItemStack(resource, 1, 2), new ItemStack(resource, 1, 6), new ItemStack(ConfigItems.itemResource, 1, 9), new ItemStack(manaPetal, 1, 7), new ItemStack(manaPetal, 1, 10), new ItemStack(rune, 1, 14), new ItemStack(ConfigItems.itemResource, 1, 6)); + SubTileWhisperweed.lexicon.addPage(BotaniaAPI.internalHandler.petalRecipePage("forbidden.lexicon.whisperweed.1", whispercraft)); + + } catch (Throwable e) { + LogHandler.log(Level.INFO, e, "Forbidden Magic: Botania? Do you wanna build a snowman?"); + Compat.botan = false; + } + } + + public static ItemStack getFlower(String type){ + Item specialFlower = GameRegistry.findItem("Botania", "specialFlower"); + ItemStack flower = new ItemStack(specialFlower, 1, 0); + NBTTagCompound tag = new NBTTagCompound(); + tag.setString("type", type); + flower.setTagCompound(tag); + return flower; + } +} diff --git a/src/main/java/fox/spiteful/forbidden/items/ForbiddenItems.java b/src/main/java/fox/spiteful/forbidden/items/ForbiddenItems.java index f768578..1055b8c 100644 --- a/src/main/java/fox/spiteful/forbidden/items/ForbiddenItems.java +++ b/src/main/java/fox/spiteful/forbidden/items/ForbiddenItems.java @@ -49,7 +49,6 @@ public class ForbiddenItems { public static Item morphAxe; public static Item crystalwell; public static Item ridingCrop; - public static Item divinewell; public static Item boundShears; public static Item bloodRapier; @@ -59,10 +58,9 @@ public class ForbiddenItems { public static WandRod WAND_ROD_TAINTED; public static WandRod WAND_ROD_INFERNAL; public static WandRod WAND_ROD_NEUTRONIUM; - public static WandRod WAND_ROD_SOUL; + //public static WandRod WAND_ROD_SOUL; public static WandRod WAND_ROD_BLOOD; public static WandRod WAND_ROD_WITCHWOOD; - public static WandRod WAND_ROD_TOTEM; public static WandRod WAND_ROD_LIVINGWOOD; public static StaffRod STAFF_ROD_BLOOD; public static StaffRod STAFF_ROD_NEUTRONIUM; @@ -70,7 +68,7 @@ public class ForbiddenItems { public static WandCap WAND_CAP_ORICHALCUM; public static WandCap WAND_CAP_ALCHEMICAL; public static WandCap WAND_CAP_VINTEUM; - public static WandCap WAND_CAP_SOUL; + //public static WandCap WAND_CAP_SOUL; public static WandCap WAND_CAP_MANASTEEL; public static void addItems() { @@ -130,11 +128,11 @@ public class ForbiddenItems { WAND_ROD_INFERNAL = new WandRod("infernal", 150, new ItemStack(wandCore, 1, 1), 12, new InfernalWandUpdate(), new ResourceLocation("forbidden", "textures/models/wand_rod_infernal.png")); WAND_ROD_NEUTRONIUM = new WandRod("neutronium", 9001, new ItemStack(Blocks.bedrock, 1), 1000, new CreativeWandUpdate(), new ResourceLocation("forbidden", "textures/models/wand_rod_neutronium.png")); WAND_ROD_NEUTRONIUM.setGlowing(true); - WAND_ROD_SOUL = new WandRod("soul", 100, new ItemStack(wandCore, 1, 2), 12, new SoulWandUpdate(), new ResourceLocation("forbidden", "textures/models/wand_rod_soul.png")); - WAND_ROD_SOUL.setGlowing(true); + //WAND_ROD_SOUL = new WandRod("soul", 100, new ItemStack(wandCore, 1, 2), 12, new SoulWandUpdate(), new ResourceLocation("forbidden", "textures/models/wand_rod_soul.png")); + //WAND_ROD_SOUL.setGlowing(true); WAND_ROD_BLOOD = new WandRod("blood", 100, new ItemStack(wandCore, 1, 3), 12, new BloodWandUpdate(), new ResourceLocation("forbidden", "textures/models/wand_rod_blood.png")); WAND_ROD_WITCHWOOD = new WandRod("witchwood", 100, new ItemStack(wandCore, 1, 4), 12, new ManaWandUpdate(), new ResourceLocation("forbidden", "textures/models/wand_rod_witchwood.png")); - WAND_ROD_TOTEM = new WandRod("totem", 50, new ItemStack(wandCore, 1, 5), 4, new ResourceLocation("forbidden", "textures/models/wand_rod_totem.png")); + //WAND_ROD_TOTEM = new WandRod("totem", 50, new ItemStack(wandCore, 1, 5), 4, new ResourceLocation("forbidden", "textures/models/wand_rod_totem.png")); WAND_ROD_LIVINGWOOD = new WandRod("livingwood", 100, new ItemStack(wandCore, 1, 7), 12, new YandereWandUpdate(), new ResourceLocation("forbidden", "textures/models/wand_rod_livingwood.png")); STAFF_ROD_BLOOD = new StaffRod("blood", 50, new ItemStack(wandCore, 1, 9), 24, new BloodStaffUpdate(), new ResourceLocation("forbidden", "textures/models/wand_rod_blood.png")); STAFF_ROD_NEUTRONIUM = new StaffRod("neutronium", 9002, new ItemStack(Blocks.bedrock, 1), 1000, new CreativeWandUpdate(), new ResourceLocation("forbidden", "textures/models/wand_rod_neutronium.png")); @@ -143,7 +141,7 @@ public class ForbiddenItems { WAND_CAP_ORICHALCUM = new DarkWandCap("orichalcum", 0.0F, new ItemStack(Blocks.command_block, 1), 1000, new ResourceLocation("forbidden", "textures/models/wand_cap_orichalcum.png")); WAND_CAP_ALCHEMICAL = new DarkWandCap("alchemical", 0.9F, Arrays.asList(new Aspect[] { Aspect.WATER }), 0.8F, new ItemStack(wandCap, 1, 0), 7, new ResourceLocation("forbidden", "textures/models/wand_cap_alchemical.png")); WAND_CAP_VINTEUM = new DarkWandCap("vinteum", 0.9F, new ItemStack(wandCap, 1, 1), 6, new ResourceLocation("forbidden", "textures/models/wand_cap_vinteum.png")); - WAND_CAP_SOUL = new DarkWandCap("soul", 0.9F, Arrays.asList(new Aspect[] { Aspect.ENTROPY }), 0.8F, new ItemStack(wandCap, 1, 2), 7, new ResourceLocation("forbidden", "textures/models/wand_cap_soul.png")); + //WAND_CAP_SOUL = new DarkWandCap("soul", 0.9F, Arrays.asList(new Aspect[] { Aspect.ENTROPY }), 0.8F, new ItemStack(wandCap, 1, 2), 7, new ResourceLocation("forbidden", "textures/models/wand_cap_soul.png")); WAND_CAP_MANASTEEL = new DarkWandCap("manasteel", 0.9F, new ItemStack(wandCap, 1, 3), 6, new ResourceLocation("forbidden", "textures/models/wand_cap_manasteel.png")); resource = new ItemResource().setUnlocalizedName("FMResource"); diff --git a/src/main/java/fox/spiteful/forbidden/items/wands/BloodStaffUpdate.java b/src/main/java/fox/spiteful/forbidden/items/wands/BloodStaffUpdate.java index cbebd79..41864d7 100644 --- a/src/main/java/fox/spiteful/forbidden/items/wands/BloodStaffUpdate.java +++ b/src/main/java/fox/spiteful/forbidden/items/wands/BloodStaffUpdate.java @@ -1,5 +1,6 @@ package fox.spiteful.forbidden.items.wands; +import fox.spiteful.forbidden.Config; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import thaumcraft.api.aspects.Aspect; @@ -15,7 +16,7 @@ public class BloodStaffUpdate implements IWandRodOnUpdate { public void onUpdate(ItemStack itemstack, EntityPlayer player) { - if(Compat.bm && player.ticksExisted % 25 == 0) + if(Compat.bm && Config.crossWand && player.ticksExisted % 25 == 0) { try { diff --git a/src/main/java/fox/spiteful/forbidden/items/wands/BloodWandUpdate.java b/src/main/java/fox/spiteful/forbidden/items/wands/BloodWandUpdate.java index 5eb93a4..cf227b7 100644 --- a/src/main/java/fox/spiteful/forbidden/items/wands/BloodWandUpdate.java +++ b/src/main/java/fox/spiteful/forbidden/items/wands/BloodWandUpdate.java @@ -1,5 +1,6 @@ package fox.spiteful.forbidden.items.wands; +import fox.spiteful.forbidden.Config; import fox.spiteful.forbidden.compat.Compat; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -14,7 +15,7 @@ public class BloodWandUpdate implements IWandRodOnUpdate { public void onUpdate(ItemStack itemstack, EntityPlayer player) { - if(Compat.bm && player.ticksExisted % 100 == 0) + if(Compat.bm && Config.crossWand && player.ticksExisted % 100 == 0) { try { diff --git a/src/main/java/fox/spiteful/forbidden/items/wands/ItemWandCores.java b/src/main/java/fox/spiteful/forbidden/items/wands/ItemWandCores.java index 8a1a9c1..0b264b2 100644 --- a/src/main/java/fox/spiteful/forbidden/items/wands/ItemWandCores.java +++ b/src/main/java/fox/spiteful/forbidden/items/wands/ItemWandCores.java @@ -2,6 +2,7 @@ package fox.spiteful.forbidden.items.wands; import java.util.List; +import fox.spiteful.forbidden.Config; import fox.spiteful.forbidden.Forbidden; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; @@ -73,7 +74,7 @@ public class ItemWandCores extends Item { ((ItemWandCasting) wand.getItem()).setRod(wand, (WandRod) WandRod.rods.get("soul")); list.add(wand); }*/ - if (Compat.bm) { + if (Compat.bm && Config.crossWand) { wand = ItemApi.getItem("itemWandCasting", 84); ((ItemWandCasting) wand.getItem()).setCap(wand, (WandCap) WandCap.caps.get("alchemical")); ((ItemWandCasting) wand.getItem()).setRod(wand, (WandRod) WandRod.rods.get("blood")); @@ -83,7 +84,7 @@ public class ItemWandCores extends Item { ((ItemWandCasting) wand.getItem()).setRod(wand, (WandRod) WandRod.rods.get("blood_staff")); list.add(wand); } - if (Compat.am2) { + if (Compat.am2 && Config.crossWand) { wand = ItemApi.getItem("itemWandCasting", 72); ((ItemWandCasting) wand.getItem()).setCap(wand, (WandCap) WandCap.caps.get("vinteum")); ((ItemWandCasting) wand.getItem()).setRod(wand, (WandRod) WandRod.rods.get("witchwood")); @@ -93,7 +94,7 @@ public class ItemWandCores extends Item { ((ItemWandCasting) wand.getItem()).setRod(wand, (WandRod) WandRod.rods.get("witchwood_staff")); list.add(wand); } - if (Compat.botan) { + if (Compat.botan && Config.crossWand) { wand = ItemApi.getItem("itemWandCasting", 84); ((ItemWandCasting) wand.getItem()).setCap(wand, (WandCap) WandCap.caps.get("manasteel")); ((ItemWandCasting) wand.getItem()).setRod(wand, (WandRod) WandRod.rods.get("livingwood")); diff --git a/src/main/java/fox/spiteful/forbidden/items/wands/ManaStaffUpdate.java b/src/main/java/fox/spiteful/forbidden/items/wands/ManaStaffUpdate.java index cb903e9..d67976b 100644 --- a/src/main/java/fox/spiteful/forbidden/items/wands/ManaStaffUpdate.java +++ b/src/main/java/fox/spiteful/forbidden/items/wands/ManaStaffUpdate.java @@ -1,5 +1,6 @@ package fox.spiteful.forbidden.items.wands; +import fox.spiteful.forbidden.Config; import fox.spiteful.forbidden.compat.Compat; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -11,7 +12,7 @@ public class ManaStaffUpdate implements IWandRodOnUpdate { Aspect primals[] = Aspect.getPrimalAspects().toArray(new Aspect[0]); public void onUpdate(ItemStack itemstack, EntityPlayer player) { - if(Compat.am2) + if(Compat.am2 && Config.crossWand) { if(player.ticksExisted % 40 == 0){ diff --git a/src/main/java/fox/spiteful/forbidden/items/wands/ManaWandUpdate.java b/src/main/java/fox/spiteful/forbidden/items/wands/ManaWandUpdate.java index daf452a..cb06891 100644 --- a/src/main/java/fox/spiteful/forbidden/items/wands/ManaWandUpdate.java +++ b/src/main/java/fox/spiteful/forbidden/items/wands/ManaWandUpdate.java @@ -2,6 +2,7 @@ package fox.spiteful.forbidden.items.wands; import am2.api.ArsMagicaApi; import am2.api.IExtendedProperties; +import fox.spiteful.forbidden.Config; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import thaumcraft.api.aspects.Aspect; @@ -15,7 +16,7 @@ public class ManaWandUpdate implements IWandRodOnUpdate { Aspect primals[] = Aspect.getPrimalAspects().toArray(new Aspect[0]); public void onUpdate(ItemStack itemstack, EntityPlayer player) { - if(Compat.am2) + if(Compat.am2 && Config.crossWand) { if(player.ticksExisted % 100 == 0){ diff --git a/src/main/java/fox/spiteful/forbidden/items/wands/YandereWandUpdate.java b/src/main/java/fox/spiteful/forbidden/items/wands/YandereWandUpdate.java index a960d78..40a01bf 100644 --- a/src/main/java/fox/spiteful/forbidden/items/wands/YandereWandUpdate.java +++ b/src/main/java/fox/spiteful/forbidden/items/wands/YandereWandUpdate.java @@ -1,5 +1,6 @@ package fox.spiteful.forbidden.items.wands; +import fox.spiteful.forbidden.Config; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import thaumcraft.api.aspects.Aspect; @@ -15,7 +16,7 @@ public class YandereWandUpdate implements IWandRodOnUpdate { public void onUpdate(ItemStack itemstack, EntityPlayer player) { - if(Compat.botan && player.ticksExisted % 40 == 0 && checkHotbar(itemstack, player)) + if(Compat.botan && Config.crossWand && player.ticksExisted % 40 == 0 && checkHotbar(itemstack, player)) { try {