diff --git a/dependencies.gradle b/dependencies.gradle index badf250..6ca945a 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -2,11 +2,10 @@ dependencies { api('com.github.GTNewHorizons:Botania:1.9.16-GTNH:dev') api('com.github.GTNewHorizons:Botanic-horizons:1.0.15-GTNH:dev') api('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev') - api('com.github.GTNewHorizons:GT5-Unofficial:5.09.42.71:dev') api('com.github.GTNewHorizons:Baubles:1.0.1.16:dev') compileOnly("com.github.GTNewHorizons:CodeChickenLib:1.1.8:dev") compileOnly("com.github.GTNewHorizons:CodeChickenCore:1.1.11:dev") - compileOnly("com.github.GTNewHorizons:NotEnoughItems:2.3.45-GTNH:dev") + compileOnly("com.github.GTNewHorizons:NotEnoughItems:2.3.46-GTNH:dev") compileOnly("com.github.GTNewHorizons:CraftTweaker:3.2.11:dev") - //compileOnly("com.github.stanhebben:MineTweaker3:1.7.10-3.0.10B:dev") -} + +} \ No newline at end of file diff --git a/src/main/java/ab/common/core/proxy/CommonProxy.java b/src/main/java/ab/common/core/proxy/CommonProxy.java index 7991a1c..baeff8b 100644 --- a/src/main/java/ab/common/core/proxy/CommonProxy.java +++ b/src/main/java/ab/common/core/proxy/CommonProxy.java @@ -10,6 +10,7 @@ import ab.common.lib.register.FlowerRegister; import ab.common.lib.register.ItemListAB; import ab.common.minetweaker.MineTweakerConfig; +import ab.nei.IMCForNEI; import ab.utils.CraftingManager; import ab.utils.ModHelperManager; import cpw.mods.fml.common.Loader; @@ -34,6 +35,7 @@ public void preInit(FMLPreInitializationEvent event) { public void init(FMLInitializationEvent event) { NetworkRegistry.INSTANCE.registerGuiHandler(AdvancedBotany.instance, new GuiHandler()); NetworkHandler.registerPackets(); + IMCForNEI.IMCSender(); ModHelperManager.init(); } diff --git a/src/main/java/ab/common/lib/register/RecipeListAB.java b/src/main/java/ab/common/lib/register/RecipeListAB.java index d4c499e..24d3e7f 100644 --- a/src/main/java/ab/common/lib/register/RecipeListAB.java +++ b/src/main/java/ab/common/lib/register/RecipeListAB.java @@ -15,18 +15,15 @@ import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe; -import thaumcraft.*; import thaumcraft.api.ThaumcraftApi; import thaumcraft.api.aspects.Aspect; import thaumcraft.api.aspects.AspectList; import thaumcraft.api.crafting.InfusionRecipe; -import thaumcraft.api.research.*; import thaumcraft.api.research.ResearchCategories; import thaumcraft.api.research.ResearchItem; import thaumcraft.api.research.ResearchPage; import thaumcraft.common.config.ConfigBlocks; import thaumcraft.common.config.ConfigItems; -import vazkii.*; import vazkii.botania.api.BotaniaAPI; import vazkii.botania.api.lexicon.KnowledgeType; import vazkii.botania.api.lexicon.LexiconCategory; @@ -52,7 +49,7 @@ import ab.common.block.tile.TileLebethronCore; import ab.common.core.handler.ConfigABHandler; import ab.common.item.ItemCraftingPattern; -import ab.utils.*; +import ab.utils.IModHelper; import ab.utils.LocalizationManager; import ab.utils.OreDict; import cpw.mods.fml.common.registry.GameRegistry; @@ -126,6 +123,7 @@ public class RecipeListAB implements IModHelper { public static ResearchPage AquaSwordPages; public static ResearchPage ForgePages; public static ResearchPage ManaChargerPages; + public static ResearchPage NebulaPages; public static KnowledgeType forgotten; @@ -147,6 +145,11 @@ public void postInit() { public static InfusionRecipe MithrillSword; public static InfusionRecipe Forge; public static InfusionRecipe Destroyer; + public static InfusionRecipe Nebula; + public static InfusionRecipe NebulaHelm; + public static InfusionRecipe NebulaChest; + public static InfusionRecipe NebulaLegs; + public static InfusionRecipe NebulaBoots; public static void setupCrafting() { @@ -189,8 +192,8 @@ public static void setupCrafting() { mithrillRecipe = AdvancedBotanyAPI.registerAdvancedPlateRecipe( new ItemStack(ItemListAB.itemABResource, 1, 0), new ItemStack(ModItems.manaResource, 1, 14), - new ItemStack(ModBlocks.storage, 1, 0), - new ItemStack(ModBlocks.storage, 1, 1), + OreDictionary.getOres("blockManasteel").get(0), + OreDictionary.getOres("blockTerrasteel").get(0), 2500000, 0x25d6b7); terrasteelRecipe = AdvancedBotanyAPI.registerAdvancedPlateRecipe( @@ -210,15 +213,15 @@ public static void setupCrafting() { nebulaRecipe = AdvancedBotanyAPI.registerAdvancedPlateRecipe( new ItemStack(ItemListAB.itemABResource, 1, 5), new ItemStack(ModItems.rainbowRod), - new ItemStack(ModBlocks.storage, 1, 4), + OreDictionary.getOres("blockBotaniaDragonstone").get(0), new ItemStack(BlockListAB.blockABStorage, 1, 0), 25000000, 0x8d16e0); terrasteelBlockRecipe = AdvancedBotanyAPI.registerAdvancedPlateRecipe( - new ItemStack(ModBlocks.storage, 1, 1), + OreDictionary.getOres("blockTerrasteel").get(0), new ItemStack(ModItems.rune, 1, 8), - new ItemStack(ModBlocks.storage, 1, 0), - new ItemStack(ModBlocks.storage, 1, 3), + OreDictionary.getOres("blockManasteel").get(0), + OreDictionary.getOres("blockManaDiamond").get(0), 4500000, 0x29de21); FlawlessManaDiamondRecipe = AdvancedBotanyAPI.registerAdvancedPlateRecipe( @@ -308,12 +311,22 @@ public static void setupCrafting() { .setIcon(new ItemStack(BlockListAB.blockABPlate)); // Natural mana spreader recipe - GameRegistry.addShapedRecipe( - new ItemStack(BlockListAB.blockABSpreader), - new Object[] { "WMW", "PSP", "WMW", Character.valueOf('M'), - new ItemStack(ItemListAB.itemABResource, 1, 2), Character.valueOf('P'), - new ItemStack(ModBlocks.pylon), Character.valueOf('S'), new ItemStack(ModBlocks.spreader, 1, 3), - Character.valueOf('W'), new ItemStack(BlockListAB.blockLebethron, 1, 4) }); + + GameRegistry.addRecipe( + new ShapedOreRecipe( + new ItemStack(BlockListAB.blockABSpreader), + "WMW", + "PSP", + "WMW", + 'W', + new ItemStack(BlockListAB.blockLebethron, 1, 4), + 'M', + new ItemStack(ItemListAB.itemABResource, 1, 2), + 'P', + new ItemStack(ModBlocks.pylon), + 'S', + new ItemStack(ModBlocks.spreader, 1, 3))); + lebethronSpreader = new BLexiconEntry("lebethronSpreader", categoryForgotten); lebethronSpreader.setKnowledgeType(forgotten) .setLexiconPages( @@ -330,21 +343,41 @@ public static void setupCrafting() { new ItemStack(BlockListAB.blockLebethron, 1, 2), new Object[] { new ItemStack(BlockListAB.blockLebethron, 1, 1), new ItemStack(Items.wheat_seeds) }); IRecipe leb2 = getLastRecipe(); - GameRegistry.addShapedRecipe( - new ItemStack(BlockListAB.blockLebethron, 4, 3), - new Object[] { "SLS", "LEL", "SLS", Character.valueOf('S'), - OreDictionary.getOres("ingotSteeleaf").get(0), Character.valueOf('E'), - new ItemStack(ModBlocks.pylon), Character.valueOf('L'), - new ItemStack(BlockListAB.blockLebethron, 1, 0) }); + + GameRegistry.addRecipe( + new ShapedOreRecipe( + new ItemStack(BlockListAB.blockLebethron, 4, 3), + "SLS", + "LEL", + "SLS", + 'S', + "ingotSteeleaf", + 'L', + new ItemStack(BlockListAB.blockLebethron, 1, 0), + 'E', + new ItemStack(ModBlocks.pylon))); + IRecipe leb3 = getLastRecipe(); - GameRegistry.addShapedRecipe( - new ItemStack(BlockListAB.blockLebethron, 1, 4), - // Natural core recipe - new Object[] { "4W5", "WPW", "6W7", Character.valueOf('P'), new ItemStack(ModBlocks.pylon, 1, 1), - Character.valueOf('W'), new ItemStack(BlockListAB.blockLebethron, 1, 3), Character.valueOf('4'), - new ItemStack(ModItems.rune, 1, 4), Character.valueOf('5'), new ItemStack(ModItems.rune, 1, 5), - Character.valueOf('6'), new ItemStack(ModItems.rune, 1, 6), Character.valueOf('7'), - new ItemStack(ModItems.rune, 1, 7) }); + + GameRegistry.addRecipe( + new ShapedOreRecipe( + new ItemStack(BlockListAB.blockLebethron, 1, 4), + "4W5", + "WPW", + "6W7", + 'W', + new ItemStack(BlockListAB.blockLebethron, 1, 3), + 'P', + new ItemStack(ModBlocks.pylon, 1, 1), + '4', + new ItemStack(ModItems.rune, 1, 4), + '5', + new ItemStack(ModItems.rune, 1, 5), + '6', + new ItemStack(ModItems.rune, 1, 6), + '7', + new ItemStack(ModItems.rune, 1, 7))); + IRecipe leb4 = getLastRecipe(); lebethronWood = new BLexiconEntry("lebethronWood", categoryForgotten); lebethronWood.setKnowledgeType(forgotten) @@ -370,27 +403,63 @@ public static void setupCrafting() { .setIcon(new ItemStack(ItemListAB.itemMihrillMultiTool)); // Advanced mana containers recipe - GameRegistry.addShapedRecipe( - new ItemStack(BlockListAB.blockManaContainer), - new Object[] { "MGM", "LPL", "M3M", Character.valueOf('M'), new ItemStack(ItemListAB.itemABResource), - Character.valueOf('L'), new ItemStack(ModBlocks.pool), Character.valueOf('P'), - new ItemStack(ModBlocks.pylon), Character.valueOf('3'), new ItemStack(ModItems.rune, 1, 3), - Character.valueOf('G'), new ItemStack(ModItems.rune, 1, 15) }); + + GameRegistry.addRecipe( + new ShapedOreRecipe( + new ItemStack(BlockListAB.blockManaContainer), + "MGM", + "LPL", + "M3M", + 'M', + new ItemStack(ItemListAB.itemABResource), + 'G', + new ItemStack(ModItems.rune, 1, 15), + 'L', + new ItemStack(ModBlocks.pool), + 'P', + new ItemStack(ModBlocks.pylon), + '3', + new ItemStack(ModItems.rune, 1, 3) + + )); + IRecipe cont1 = getLastRecipe(); - GameRegistry.addShapedRecipe( - new ItemStack(BlockListAB.blockManaContainer, 1, 1), - new Object[] { "MGM", "LPL", "M3M", Character.valueOf('M'), - new ItemStack(ItemListAB.itemABResource, 1, 1), Character.valueOf('L'), - new ItemStack(ModBlocks.pool, 1, 2), Character.valueOf('P'), new ItemStack(ModBlocks.pylon), - Character.valueOf('3'), new ItemStack(ModItems.rune, 1, 3), Character.valueOf('G'), - new ItemStack(ModItems.rune, 1, 15) }); + + GameRegistry.addRecipe( + new ShapedOreRecipe( + new ItemStack(BlockListAB.blockManaContainer, 1, 1), + "MGM", + "LPL", + "M3M", + 'M', + new ItemStack(ItemListAB.itemABResource, 1, 1), + 'G', + new ItemStack(ModItems.rune, 1, 15), + 'L', + new ItemStack(ModBlocks.pool, 1, 2), + 'P', + new ItemStack(ModBlocks.pylon), + '3', + new ItemStack(ModItems.rune, 1, 3))); IRecipe cont2 = getLastRecipe(); - GameRegistry.addShapedRecipe( - new ItemStack(BlockListAB.blockManaContainer, 1, 2), - new Object[] { "MGM", "LPL", "M3M", Character.valueOf('M'), new ItemStack(ItemListAB.itemABResource), - Character.valueOf('L'), new ItemStack(ModBlocks.pool, 1, 3), Character.valueOf('P'), - new ItemStack(ModBlocks.pylon), Character.valueOf('3'), new ItemStack(ModItems.rune, 1, 3), - Character.valueOf('G'), new ItemStack(ModItems.rune, 1, 15) }); + + GameRegistry.addRecipe( + new ShapedOreRecipe( + new ItemStack(BlockListAB.blockManaContainer, 1, 2), + "MGM", + "LPL", + "M3M", + 'M', + new ItemStack(ItemListAB.itemABResource), + 'G', + new ItemStack(ModItems.rune, 1, 15), + 'L', + new ItemStack(ModBlocks.pool, 1, 3), + 'P', + new ItemStack(ModBlocks.pylon), + '3', + new ItemStack(ModItems.rune, 1, 3))); + IRecipe cont3 = getLastRecipe(); manaContainer = new BLexiconEntry("manaContainer", categoryForgotten); manaContainer.setKnowledgeType(forgotten).setLexiconPages( @@ -401,14 +470,28 @@ public static void setupCrafting() { .setIcon(new ItemStack(BlockListAB.blockManaContainer)); // Mana crystal cube recipe - GameRegistry.addShapedRecipe( - new ItemStack(BlockListAB.blockManaCrystalCube), - new Object[] { "TST", "GWG", "DMD", Character.valueOf('D'), new ItemStack(ModBlocks.dreamwood), - Character.valueOf('W'), new ItemStack(ModItems.twigWand, 1, 32767), Character.valueOf('G'), - new ItemStack(ModBlocks.manaGlass), Character.valueOf('M'), - new ItemStack(ModItems.manaResource), Character.valueOf('T'), - new ItemStack(ModItems.manaResource, 1, 18), Character.valueOf('S'), - new ItemStack(ModItems.spark) }); + + GameRegistry.addRecipe( + new ShapedOreRecipe( + new ItemStack(BlockListAB.blockManaCrystalCube), + "TST", + "GWG", + "DMD", + 'T', + new ItemStack(ModItems.manaResource, 1, 18), + 'S', + new ItemStack(ModItems.spark), + 'G', + new ItemStack(ModBlocks.manaGlass), + 'W', + new ItemStack(ModItems.twigWand, 1, 32767), + 'D', + new ItemStack(ModBlocks.dreamwood), + 'M', + "blockManasteel" + + )); + manaCrystalCube = new BLexiconEntry("manaCrystalCube", BotaniaAPI.categoryMana); manaCrystalCube.setKnowledgeType(BotaniaAPI.elvenKnowledge) .setLexiconPages( @@ -422,21 +505,42 @@ public static void setupCrafting() { terraHoe.setLexiconPages(new LexiconPage[] { new PageText("0"), }) .setIcon(new ItemStack(ItemListAB.itemTerraHoe)); - // Mithrill recipe - GameRegistry.addShapedRecipe( - new ItemStack(ItemListAB.itemMithrillRing), - new Object[] { "LML", "MRM", "LML", Character.valueOf('M'), new ItemStack(ItemListAB.itemABResource), - Character.valueOf('L'), new ItemStack(ItemListAB.itemABResource, 1, 1), Character.valueOf('R'), - new ItemStack(ModItems.manaRingGreater) }); + // Mithrill ring recipe + + GameRegistry.addRecipe( + new ShapedOreRecipe( + new ItemStack(ItemListAB.itemMithrillRing), + "LML", + "MRM", + "LML", + 'L', + new ItemStack(ItemListAB.itemABResource, 1, 1), + 'M', + new ItemStack(ItemListAB.itemABResource), + 'R', + new ItemStack(ModItems.manaRingGreater) + + )); + IRecipe ring1 = getLastRecipe(); // Nebula ring recipe - GameRegistry.addShapedRecipe( - new ItemStack(ItemListAB.itemNebulaRing), - new Object[] { "LML", "MRM", "LML", Character.valueOf('M'), - new ItemStack(ItemListAB.itemABResource, 1, 6), Character.valueOf('L'), - new ItemStack(ModItems.manaResource, 1, 5), Character.valueOf('R'), - new ItemStack(ItemListAB.itemMithrillRing) }); + + GameRegistry.addRecipe( + new ShapedOreRecipe( + new ItemStack(ItemListAB.itemNebulaRing), + "LML", + "MRM", + "LML", + 'L', + new ItemStack(ModItems.manaResource, 1, 5), + 'M', + new ItemStack(ItemListAB.itemABResource, 1, 6), + 'R', + new ItemStack(ItemListAB.itemMithrillRing) + + )); + IRecipe ring2 = getLastRecipe(); manaRings = new BLexiconEntry("manaRings", categoryForgotten); manaRings.setKnowledgeType(forgotten).setLexiconPages( @@ -473,23 +577,46 @@ public static void setupCrafting() { new AdvancedPlateCraftPage(nebula, nebulaRecipe.getOutput(), ".abCraft") }); // Black hole box recipe - GameRegistry.addShapedRecipe( - new ItemStack(ItemListAB.itemBlackHalo), - new Object[] { " E ", "DHD", " E ", Character.valueOf('E'), new ItemStack(ModItems.manaResource, 1, 7), - Character.valueOf('H'), new ItemStack(ModItems.autocraftingHalo), Character.valueOf('D'), - new ItemStack(ModItems.blackHoleTalisman) }); + + GameRegistry.addRecipe( + new ShapedOreRecipe( + new ItemStack(ItemListAB.itemBlackHalo), + " E ", + "DHD", + " E ", + 'E', + "plateElvenElementium", + 'D', + new ItemStack(ModItems.blackHoleTalisman), + 'H', + new ItemStack(ModItems.autocraftingHalo) + + )); + blackHalo = new BLexiconEntry("blackHalo", BotaniaAPI.categoryTools); blackHalo.setKnowledgeType(BotaniaAPI.elvenKnowledge).setLexiconPages( new LexiconPage[] { new PageText("0"), BotaniaAPI.internalHandler.craftingRecipePage(".craft", getLastRecipe()) }); // Sphere of Attraction recipe - GameRegistry.addShapedRecipe( - new ItemStack(ItemListAB.itemAntigravityCharm), - new Object[] { " G ", "GDG", "ERE", Character.valueOf('E'), new ItemStack(ModItems.manaResource, 1, 7), - Character.valueOf('G'), new ItemStack(ModBlocks.elfGlass), Character.valueOf('D'), - new ItemStack(ModBlocks.floatingFlower, 1, 32767), Character.valueOf('R'), - new ItemStack(ModItems.rune, 1, 3) }); + + GameRegistry.addRecipe( + new ShapedOreRecipe( + new ItemStack(ItemListAB.itemAntigravityCharm), + " G ", + "GDG", + "ERE", + 'G', + new ItemStack(ModBlocks.elfGlass), + 'D', + new ItemStack(ModBlocks.floatingFlower, 1, 32767), + 'E', + "plateElvenElementium", + 'R', + new ItemStack(ModItems.rune, 1, 3) + + )); + antigravityCharm = new BLexiconEntry("antigravityCharm", BotaniaAPI.categoryTools); antigravityCharm.setKnowledgeType(BotaniaAPI.elvenKnowledge) .setLexiconPages( @@ -498,12 +625,22 @@ public static void setupCrafting() { .setIcon(new ItemStack(ItemListAB.itemAntigravityCharm)); // Nebula blaze recipe - GameRegistry.addShapedRecipe( - new ItemStack(ItemListAB.itemNebulaBlaze), - new Object[] { " N ", "MMN", "AMN", Character.valueOf('N'), - new ItemStack(ItemListAB.itemABResource, 1, 6), Character.valueOf('A'), - new ItemStack(ItemListAB.itemABResource, 1, 3), Character.valueOf('M'), - new ItemStack(ModBlocks.storage) }); + + GameRegistry.addRecipe( + new ShapedOreRecipe( + new ItemStack(ItemListAB.itemNebulaBlaze), + " N ", + "MMN", + "AMN", + 'N', + new ItemStack(ItemListAB.itemABResource, 1, 6), + 'M', + "blockManasteel", + 'A', + new ItemStack(ItemListAB.itemABResource, 1, 3) + + )); + nebulaBlaze = new BLexiconEntry("nebulaBlaze", categoryForgotten); nebulaBlaze.setKnowledgeType(forgotten).setLexiconPages( new LexiconPage[] { new PageText("0"), @@ -518,48 +655,9 @@ public static void setupCrafting() { ///////////////////////////////////////////////////////////////////////////////////////// Nebula set recipes - GameRegistry.addShapedRecipe( - new ItemStack(ItemListAB.itemNebulaHelm), - new Object[] { "RNR", "NHN", " E ", Character.valueOf('N'), - new ItemStack(ItemListAB.itemABResource, 1, 5), Character.valueOf('R'), - new ItemStack(ModItems.manaResource, 1, 7), Character.valueOf('H'), - new ItemStack(ModItems.elementiumHelm), Character.valueOf('E'), - new ItemStack(ModItems.manaResource, 1, 8) }); - IRecipe nHelm = getLastRecipe(); - GameRegistry.addShapedRecipe( - new ItemStack(ItemListAB.itemNebulaChest), - new Object[] { "RTR", "NHN", "ENE", Character.valueOf('N'), - new ItemStack(ItemListAB.itemABResource, 1, 5), Character.valueOf('R'), - new ItemStack(ModItems.manaResource, 1, 7), Character.valueOf('H'), - new ItemStack(ModItems.elementiumChest), Character.valueOf('E'), - new ItemStack(ModItems.manaResource, 1, 8), Character.valueOf('T'), - new ItemStack(ModItems.flightTiara, 1, 32767) }); - IRecipe nChest = getLastRecipe(); - GameRegistry.addShapedRecipe( - new ItemStack(ItemListAB.itemNebulaLegs), - new Object[] { "ENE", "RHR", "NAN", Character.valueOf('N'), - new ItemStack(ItemListAB.itemABResource, 1, 5), Character.valueOf('R'), - new ItemStack(ModItems.manaResource, 1, 7), Character.valueOf('H'), - new ItemStack(ModItems.elementiumLegs), Character.valueOf('E'), - new ItemStack(ModItems.manaResource, 1, 8), Character.valueOf('A'), - new ItemStack(ItemListAB.itemABResource, 1, 3) }); - IRecipe nLegs = getLastRecipe(); - GameRegistry.addShapedRecipe( - new ItemStack(ItemListAB.itemNebulaBoots), - new Object[] { "RBR", "NHN", " E ", Character.valueOf('N'), - new ItemStack(ItemListAB.itemABResource, 1, 5), Character.valueOf('R'), - new ItemStack(ModItems.manaResource, 1, 7), Character.valueOf('H'), - new ItemStack(ModItems.elementiumBoots), Character.valueOf('E'), - new ItemStack(ModItems.manaResource, 1, 8), Character.valueOf('B'), - new ItemStack(ModItems.speedUpBelt) }); - IRecipe nBoots = getLastRecipe(); nebulaArmor = new BLexiconEntry("nebulaArmor", categoryForgotten); - nebulaArmor.setKnowledgeType(forgotten).setLexiconPages( - new LexiconPage[] { new PageText("0"), new PageText("1"), - BotaniaAPI.internalHandler.craftingRecipePage(".craft0", nHelm), - BotaniaAPI.internalHandler.craftingRecipePage(".craft1", nChest), - BotaniaAPI.internalHandler.craftingRecipePage(".craft2", nLegs), - BotaniaAPI.internalHandler.craftingRecipePage(".craft3", nBoots) }); + nebulaArmor.setKnowledgeType(forgotten) + .setLexiconPages(new LexiconPage[] { new PageText("0"), new PageText("1"), }); // Enginerr hopper recipe engineerHopper = new BLexiconEntry("engineerHopper", categoryForgotten); @@ -569,23 +667,50 @@ public static void setupCrafting() { new AlphirineCraftPage(engineerHopper, hopperRecipe.getOutput(), ".alphirineCraft") }); // Rod of nebula recipe - GameRegistry.addShapedRecipe( - new ItemStack(ItemListAB.itemNebulaRod), - new Object[] { " WN", " RW", "W ", Character.valueOf('W'), new ItemStack(ModItems.manaResource, 1, 13), - Character.valueOf('R'), new ItemStack(ModItems.rune, 1, 8), Character.valueOf('N'), - new ItemStack(ItemListAB.itemABResource, 1, 6) }); + + GameRegistry.addRecipe( + new ShapedOreRecipe( + new ItemStack(ItemListAB.itemNebulaRod), + " WN", + " RW", + "E ", + 'W', + new ItemStack(ModItems.manaResource, 1, 13), + 'N', + new ItemStack(ItemListAB.itemABResource, 1, 6), + 'R', + new ItemStack(ModItems.rune, 1, 8), + 'E', + "itemEnderCrystal" + + )); + nebulaRod = new BLexiconEntry("nebulaRod", categoryForgotten); nebulaRod.setKnowledgeType(forgotten).setLexiconPages( new LexiconPage[] { new PageText("0"), BotaniaAPI.internalHandler.craftingRecipePage(".craft", getLastRecipe()) }); // Playing board recipe - GameRegistry.addShapedRecipe( - new ItemStack(BlockListAB.blockBoardFate), - new Object[] { " ", "QDQ", "MPM", Character.valueOf('Q'), new ItemStack(ModFluffBlocks.manaQuartz), - Character.valueOf('D'), new ItemStack(ModItems.manaResource, 1, 2), Character.valueOf('M'), - new ItemStack(ModItems.manaResource), Character.valueOf('P'), - new ItemStack(ModItems.manaResource, 1, 23) }); + + GameRegistry.addRecipe( + new ShapedOreRecipe( + new ItemStack(BlockListAB.blockBoardFate), + "G G", + "QDQ", + "MPM", + 'G', + "gearGtSmallInfusedGold", + 'Q', + new ItemStack(ModFluffBlocks.manaQuartz), + 'D', + new ItemStack(ModItems.manaResource, 1, 2), + 'M', + "plateTerrasteel", + 'P', + new ItemStack(ModItems.manaResource, 1, 23) + + )); + gameBoard = new BLexiconEntry("gameBoard", BotaniaAPI.categoryMisc); gameBoard.setLexiconPages( new LexiconPage[] { new PageText("0"), @@ -621,12 +746,22 @@ public static void setupCrafting() { hornPlenty.setLexiconPages(new LexiconPage[] { new PageText("0") }); // Rod of sprawl recipe - GameRegistry.addShapedRecipe( - new ItemStack(ItemListAB.itemSprawlRod), - new Object[] { " SC", " WS", "W ", Character.valueOf('S'), - new ItemStack(ModItems.grassSeeds, 1, 32767), Character.valueOf('C'), - new ItemStack(BlockListAB.blockLebethron, 1, 4), Character.valueOf('W'), - new ItemStack(ModItems.manaResource, 1, 3) }); + + GameRegistry.addRecipe( + new ShapedOreRecipe( + new ItemStack(ItemListAB.itemSprawlRod), + " SC", + " WS", + "W ", + 'S', + new ItemStack(ModItems.grassSeeds, 1, 32767), + 'C', + new ItemStack(BlockListAB.blockLebethron, 1, 4), + 'W', + new ItemStack(ModItems.manaResource, 1, 3) + + )); + sprawlRod = new BLexiconEntry("sprawlRod", categoryForgotten); sprawlRod.setKnowledgeType(forgotten).setLexiconPages( new LexiconPage[] { new PageText("0"), @@ -760,16 +895,16 @@ public static void setupCrafting() { .add(Aspect.CRAFT, 32).add(Aspect.CRYSTAL, 20).add(Aspect.METAL, 20), new ItemStack((Item) Item.itemRegistry.getObject("thaumicbases:voidAnvil")), new ItemStack[] { new ItemStack(ModBlocks.terraPlate), new ItemStack(ModItems.rune, 1, 2), - new ItemStack(ModBlocks.storage, 1, 1), + OreDictionary.getOres("blockTerrasteel").get(0), new ItemStack((Item) Item.itemRegistry.getObject("dreamcraft:item.DiamondCoreChip")), new ItemStack(ModBlocks.terraPlate), new ItemStack(ModItems.rune, 1, 3), - new ItemStack(ModBlocks.storage, 1, 0), + OreDictionary.getOres("blockManasteel").get(0), new ItemStack((Item) Item.itemRegistry.getObject("dreamcraft:item.EssentiaCircuit")), new ItemStack(ModBlocks.terraPlate), new ItemStack(ModItems.rune, 1, 2), - new ItemStack(ModBlocks.storage, 1, 1), + OreDictionary.getOres("blockTerrasteel").get(0), new ItemStack((Item) Item.itemRegistry.getObject("dreamcraft:item.DiamondCoreChip")), new ItemStack(ModBlocks.terraPlate), new ItemStack(ModItems.rune, 1, 3), - new ItemStack(ModBlocks.storage, 1, 0), + OreDictionary.getOres("blockManasteel").get(0), new ItemStack((Item) Item.itemRegistry.getObject("dreamcraft:item.EssentiaCircuit")), }); Destroyer = ThaumcraftApi.addInfusionCraftingRecipe( @@ -791,6 +926,91 @@ public static void setupCrafting() { OreDictionary.getOres("gemExquisiteManaDiamond").get(0), new ItemStack(BlockListAB.blockABStorage, 1, 0) }); + NebulaHelm = ThaumcraftApi.addInfusionCraftingRecipe( + "Nebula", + + new ItemStack(ItemListAB.itemNebulaHelm), + 12, + new AspectList().add(Aspect.EARTH, 128).add(Aspect.MAGIC, 64).add(Aspect.CRYSTAL, 20) + .add(Aspect.METAL, 20).add(Aspect.SENSES, 20).add(Aspect.ELDRITCH, 20), + new ItemStack(ModItems.gaiaHead), + new ItemStack[] { new ItemStack(ModItems.elementiumHelm), new ItemStack(ModItems.laputaShard, 1, 15), + OreDictionary.getOres("gemExquisiteBotaniaDragonstone").get(0), + new ItemStack(ItemListAB.itemABResource, 1, 5), new ItemStack(ItemListAB.itemNebulaRing), + new ItemStack(ItemListAB.itemABResource, 1, 5), new ItemStack(ItemListAB.itemABResource, 1, 3), + new ItemStack((Item) Item.itemRegistry.getObject("Thaumcraft:ItemAmuletRunic"), 1, 1), + new ItemStack(ModItems.terrasteelHelm), + new ItemStack((Item) Item.itemRegistry.getObject("Thaumcraft:ItemAmuletRunic"), 1, 1), + new ItemStack(ItemListAB.itemABResource, 1, 3), new ItemStack(ItemListAB.itemABResource, 1, 5), + new ItemStack(ItemListAB.itemNebulaRing), new ItemStack(ItemListAB.itemABResource, 1, 5), + OreDictionary.getOres("gemExquisiteBotaniaDragonstone").get(0), + new ItemStack(ModItems.laputaShard, 1, 15), }); + + NebulaChest = ThaumcraftApi.addInfusionCraftingRecipe( + "Nebula", + + new ItemStack(ItemListAB.itemNebulaChest), + 12, + new AspectList().add(Aspect.EARTH, 128).add(Aspect.MAGIC, 64).add(Aspect.CRYSTAL, 20) + .add(Aspect.METAL, 20).add(Aspect.SENSES, 20).add(Aspect.FLIGHT, 20), + new ItemStack(ModItems.flightTiara), + new ItemStack[] { new ItemStack(ModItems.elementiumChest), new ItemStack(ModItems.laputaShard, 1, 15), + OreDictionary.getOres("blockElvenElementium").get(0), + new ItemStack(ItemListAB.itemABResource, 1, 5), new ItemStack(ItemListAB.itemNebulaRing), + new ItemStack(ItemListAB.itemABResource, 1, 5), new ItemStack(BlockListAB.blockABStorage, 1, 0), + new ItemStack((Item) Item.itemRegistry.getObject("Thaumcraft:ItemAmuletRunic"), 1, 1), + new ItemStack(ModItems.terrasteelChest), + new ItemStack((Item) Item.itemRegistry.getObject("Thaumcraft:ItemAmuletRunic"), 1, 1), + new ItemStack(BlockListAB.blockABStorage, 1, 0), new ItemStack(ItemListAB.itemABResource, 1, 5), + new ItemStack(ItemListAB.itemNebulaRing), new ItemStack(ItemListAB.itemABResource, 1, 5), + OreDictionary.getOres("blockElvenElementium").get(0), + new ItemStack(ModItems.laputaShard, 1, 15), + + }); + + NebulaLegs = ThaumcraftApi.addInfusionCraftingRecipe( + "Nebula", + + new ItemStack(ItemListAB.itemNebulaLegs), + 12, + new AspectList().add(Aspect.EARTH, 128).add(Aspect.MAGIC, 64).add(Aspect.CRYSTAL, 20) + .add(Aspect.METAL, 20).add(Aspect.SENSES, 20).add(Aspect.BEAST, 20), + new ItemStack((Item) Item.itemRegistry.getObject("Thaumcraft:ItemGirdleRunic"), 1, 1), + new ItemStack[] { new ItemStack(ModItems.elementiumLegs), new ItemStack(ModItems.laputaShard, 1, 15), + OreDictionary.getOres("gemExquisiteBotaniaDragonstone").get(0), + new ItemStack(ItemListAB.itemABResource, 1, 5), new ItemStack(ItemListAB.itemNebulaRing), + new ItemStack(ItemListAB.itemABResource, 1, 5), new ItemStack(ModBlocks.manaBeacon, 1, 5), + new ItemStack((Item) Item.itemRegistry.getObject("Thaumcraft:ItemAmuletRunic"), 1, 1), + new ItemStack(ModItems.terrasteelLegs), + new ItemStack((Item) Item.itemRegistry.getObject("Thaumcraft:ItemAmuletRunic"), 1, 1), + new ItemStack(ModBlocks.manaBeacon, 1, 5), new ItemStack(ItemListAB.itemABResource, 1, 5), + new ItemStack(ItemListAB.itemNebulaRing), new ItemStack(ItemListAB.itemABResource, 1, 5), + OreDictionary.getOres("gemExquisiteBotaniaDragonstone").get(0), + new ItemStack(ModItems.laputaShard, 1, 15), + + }); + + NebulaBoots = ThaumcraftApi.addInfusionCraftingRecipe( + "Nebula", + + new ItemStack(ItemListAB.itemNebulaBoots), + 12, + new AspectList().add(Aspect.EARTH, 128).add(Aspect.MAGIC, 64).add(Aspect.CRYSTAL, 20) + .add(Aspect.METAL, 20).add(Aspect.SENSES, 20).add(Aspect.SLIME, 20), + new ItemStack(ModItems.speedUpBelt), + new ItemStack[] { new ItemStack(ModItems.elementiumBoots), new ItemStack(ModItems.laputaShard, 1, 15), + new ItemStack(ItemListAB.itemABResource, 1, 2), new ItemStack(ItemListAB.itemABResource, 1, 5), + new ItemStack(ItemListAB.itemNebulaRing), new ItemStack(ItemListAB.itemABResource, 1, 3), + new ItemStack(ModBlocks.starfield), + new ItemStack((Item) Item.itemRegistry.getObject("Thaumcraft:ItemAmuletRunic"), 1, 1), + new ItemStack(ModItems.terrasteelBoots), + new ItemStack((Item) Item.itemRegistry.getObject("Thaumcraft:ItemAmuletRunic"), 1, 1), + new ItemStack(ModBlocks.starfield), new ItemStack(ItemListAB.itemABResource, 1, 3), + new ItemStack(ItemListAB.itemNebulaRing), new ItemStack(ItemListAB.itemABResource, 1, 5), + new ItemStack(ItemListAB.itemABResource, 1, 2), new ItemStack(ModItems.laputaShard, 1, 15), + + }); + } // Aspecolus recipe @@ -803,7 +1023,7 @@ public static void thaumcraft() { new ItemStack(ModItems.rune, 1, 1), new ItemStack(ModItems.rune), new ItemStack(ItemListAB.itemABResource, 1, 2), - new ItemStack(ModItems.petal, 1, 10), + new ItemStack(ItemListAB.itemManaFlower), new ItemStack(ModItems.petal, 1, 13)); aspecolus.setKnowledgeType(forgotten) .setLexiconPages( @@ -824,24 +1044,38 @@ public static void thaumcraft() { for (int k = 0; k < patterns[j].length; k++) str1 += patterns[j][k] ? "T" : "H"; str.add(str1); } - GameRegistry.addShapedRecipe( - new ItemStack(ItemListAB.itemCraftingPattern, 1, i), - new Object[] { str.get(0), str.get(1), str.get(2), Character.valueOf('T'), - new ItemStack(ItemListAB.itemCraftingPattern), Character.valueOf('H'), - new ItemStack(ConfigItems.itemNugget, 1, 6) }); + GameRegistry.addRecipe( + new ShapedOreRecipe( + new ItemStack(ItemListAB.itemCraftingPattern, 1, i), + str.get(0), + str.get(1), + str.get(2), + 'T', + new ItemStack(ItemListAB.itemCraftingPattern), + 'H', + new ItemStack(ConfigItems.itemNugget, 1, 6))); + recipes.add(getLastRecipe()); } // Thaumic crafty crate recipe - IRecipe crate = GameRegistry.addShapedRecipe( - new ItemStack(BlockListAB.blockMagicCraftCrate), - new Object[] { "TST", "WCW", "W W", Character.valueOf('W'), - new ItemStack(ConfigBlocks.blockMagicalLog), Character.valueOf('S'), - new ItemStack(ConfigItems.itemResource, 1, 14), Character.valueOf('T'), - new ItemStack(ConfigItems.itemResource, 1, 7), Character.valueOf('C'), - new ItemStack(ModBlocks.openCrate, 1, 1) - // ,Character.valueOf('G'), (ToolDictNames.craftingToolScrewdriver.name()) - }); + + GameRegistry.addRecipe( + new ShapedOreRecipe( + new ItemStack(BlockListAB.blockMagicCraftCrate), + "TST", + "WCW", + "WEW", + 'T', + new ItemStack(ConfigItems.itemResource, 1, 7), + 'S', + new ItemStack(ConfigItems.itemResource, 1, 14), + 'W', + new ItemStack(ConfigBlocks.blockMagicalLog), + 'C', + new ItemStack(ModBlocks.openCrate, 1, 1), + 'E', + new ItemStack(ModBlocks.openCrate))); addShapelessOreDictRecipe( new ItemStack(ItemListAB.itemCraftingPattern, 48), @@ -850,20 +1084,28 @@ public static void thaumcraft() { thaumAutoCraft = new BLexiconEntry("thaumAutoCraft", BotaniaAPI.categoryDevices); thaumAutoCraft.setKnowledgeType(BotaniaAPI.elvenKnowledge).setLexiconPages( new LexiconPage[] { new PageText("0"), - BotaniaAPI.internalHandler.craftingRecipePage(".craft", crate), BotaniaAPI.internalHandler.craftingRecipePage(".craft0", getLastRecipe()), BotaniaAPI.internalHandler.craftingRecipesPage(".craft1", recipes) }); // Mana flower recipe - GameRegistry.addShapedRecipe( - new ItemStack(ItemListAB.itemManaFlower), - new Object[] { "NFN", "PMP", "NRN", Character.valueOf('T'), - new ItemStack(BlockListAB.blockABStorage, 1, 6), Character.valueOf('F'), - new ItemStack(ItemListAB.itemABResource, 1, 4), Character.valueOf('P'), - new ItemStack(ConfigItems.itemEldritchObject, 1, 3), Character.valueOf('M'), - new ItemStack(ModItems.manaBottle), Character.valueOf('R'), - new ItemStack(ModItems.rune, 1, 8), Character.valueOf('N'), - new ItemStack(ItemListAB.itemABResource, 1, 1) }); + + GameRegistry.addRecipe( + new ShapedOreRecipe( + new ItemStack(ItemListAB.itemManaFlower), + "NFN", + "PMP", + "NRN", + 'N', + new ItemStack(ItemListAB.itemABResource, 1, 1), + 'F', + new ItemStack(ItemListAB.itemABResource, 1, 4), + 'P', + new ItemStack(ConfigItems.itemEldritchObject, 1, 3), + 'M', + new ItemStack(ModItems.manaBottle), + 'R', + new ItemStack(ModItems.rune, 1, 8))); + manaFlower = new BLexiconEntry("manaFlower", categoryForgotten); manaFlower.setKnowledgeType(forgotten) .setLexiconPages( @@ -876,7 +1118,7 @@ public static void thaumcraft() { // Pure Gladiolus recipe pureGladRecipe = BotaniaAPI.registerPetalRecipe( ItemBlockSpecialFlower.ofType("pureGladiolus"), - new ItemStack(ItemListAB.itemABResource, 1, 4), + new ItemStack(ItemListAB.itemManaFlower), new ItemStack(ModItems.rune, 1, 8), new ItemStack(ModItems.petal, 1, 8), new ItemStack(ModItems.petal, 1, 4), @@ -952,6 +1194,13 @@ public static void setupResearch() { ResearchPage DestroyerPages; ResearchPage infDestroyerPages; + ResearchItem NebulaPage; + ResearchPage NebulaPages; + ResearchPage infNebulaHelm; + ResearchPage infNebulaChest; + ResearchPage infNebulaLegs; + ResearchPage infNebulaBoots; + TerraHoePage = new ResearchItem( "TerraHoe", category, @@ -1030,19 +1279,39 @@ public static void setupResearch() { DestroyerPages = new ResearchPage("DestroyerPages"); infDestroyerPages = new ResearchPage(Destroyer); + NebulaPage = new ResearchItem( + "Nebula", + category, + new AspectList().add(Aspect.MAGIC, 18).add(Aspect.ELDRITCH, 10).add(Aspect.EARTH, 10) + .add(Aspect.CRYSTAL, 8).add(Aspect.SENSES, 4).add(Aspect.EXCHANGE, 2), + 8, + 8, + 0, + new ItemStack(ItemListAB.itemABResource, 1, 5)); + + NebulaPages = new ResearchPage("NebulaPages"); + infNebulaHelm = new ResearchPage(NebulaHelm); + infNebulaChest = new ResearchPage(NebulaChest); + infNebulaLegs = new ResearchPage(NebulaLegs); + infNebulaBoots = new ResearchPage(NebulaBoots); + TerraHoePage.setPages(TerraHoePages, infTerraHoePages); AquaSwordPage.setPages(AquaSwordPages, infAquaSwordPages); ManaChargerPage.setPages(ManaChargerPages, infManaChargerPages); MithrillSwordPage.setPages(MithrillSwordPages, infMithrillSwordPages); ForgePage.setPages(ForgePages, infForgePages); DestroyerPage.setPages(DestroyerPages, infDestroyerPages); + NebulaPage.setPages(NebulaPages, infNebulaHelm, infNebulaChest, infNebulaLegs, infNebulaBoots); TerraHoePage.setParents("ELEMENTALHOE"); - AquaSwordPage.setParents("Forge"); + AquaSwordPage.setParents("Nebula"); ManaChargerPage.setParents("MIRROR"); - MithrillSwordPage.setParents("AquaSword", "Forge"); + MithrillSwordPage.setParents("AquaSword"); ForgePage.setParents("ManaCharger"); - DestroyerPage.setParents("TerraHoe", "Forge"); + DestroyerPage.setParents("TerraHoe", "Nebula"); + NebulaPage.setParents("Forge"); + + ThaumcraftApi.addWarpToResearch("Nebula", 8); ResearchCategories.addResearch(TerraHoePage); ResearchCategories.addResearch(AquaSwordPage); @@ -1050,6 +1319,7 @@ public static void setupResearch() { ResearchCategories.addResearch(MithrillSwordPage); ResearchCategories.addResearch(ForgePage); ResearchCategories.addResearch(DestroyerPage); + ResearchCategories.addResearch(NebulaPage); } public static ResearchPage getResearchPage(String ident) { diff --git a/src/main/java/ab/nei/IMCForNEI.java b/src/main/java/ab/nei/IMCForNEI.java new file mode 100644 index 0000000..016db2f --- /dev/null +++ b/src/main/java/ab/nei/IMCForNEI.java @@ -0,0 +1,47 @@ +package ab.nei; + +import net.minecraft.nbt.NBTTagCompound; + +import cpw.mods.fml.common.event.FMLInterModComms; + +public class IMCForNEI { + + public static void IMCSender() { + sendHandler("ab.client.nei.RecipeHandlerAlphirine", "Botania:lexicon"); + sendCatalyst("ab.client.nei.RecipeHandlerAlphirine", "Botania:lexicon"); + + sendHandler("ab.client.nei.RecipeHandlerAdvancedPlate", "AdvancedBotany:blockABPlate"); + sendCatalyst("ab.client.nei.RecipeHandlerAdvancedPlate", "AdvancedBotany:blockABPlate"); + + } + + private static void sendHandler(String aName, String aBlock) { + sendHandler(aName, aBlock, 1); + } + + private static void sendHandler(String aName, String aBlock, int maxRecipesPerPage) { + NBTTagCompound aNBT = new NBTTagCompound(); + aNBT.setString("handler", aName); + aNBT.setString("modName", "Advanced Botany"); + aNBT.setString("modId", "AdvancedBotany"); + aNBT.setBoolean("modRequired", true); + aNBT.setString("itemName", aBlock); + aNBT.setInteger("handlerHeight", 135); + aNBT.setInteger("handlerWidth", 166); + aNBT.setInteger("maxRecipesPerPage", maxRecipesPerPage); + aNBT.setInteger("yShift", 6); + FMLInterModComms.sendMessage("NotEnoughItems", "registerHandlerInfo", aNBT); + } + + private static void sendCatalyst(String aName, String aStack, int aPriority) { + NBTTagCompound aNBT = new NBTTagCompound(); + aNBT.setString("handlerID", aName); + aNBT.setString("itemName", aStack); + aNBT.setInteger("priority", aPriority); + FMLInterModComms.sendMessage("NotEnoughItems", "registerCatalystInfo", aNBT); + } + + private static void sendCatalyst(String aName, String aStack) { + sendCatalyst(aName, aStack, 0); + } +} diff --git a/src/main/java/ab/nei/NEI_Config.java b/src/main/java/ab/nei/NEI_Config.java new file mode 100644 index 0000000..2321c8b --- /dev/null +++ b/src/main/java/ab/nei/NEI_Config.java @@ -0,0 +1,38 @@ +package ab.nei; + +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import ab.AdvancedBotany; +import codechicken.nei.api.API; +import codechicken.nei.api.IConfigureNEI; + +public class NEI_Config implements IConfigureNEI { + + public static boolean isAdded = true; + + @Override + public void loadConfig() { + NEI_Config.isAdded = false; + NEI_Config.isAdded = true; + } + + public static void hide(Block aBlock) { + API.hideItem(new ItemStack(aBlock, 1)); + } + + public static void hide(Item aItem) { + API.hideItem(new ItemStack(aItem, 1)); + } + + @Override + public String getName() { + return "Advanced Botany NEI Plugin"; + } + + @Override + public String getVersion() { + return AdvancedBotany.version; + } +} diff --git a/src/main/java/ab/utils/Constants.java b/src/main/java/ab/utils/Constants.java new file mode 100644 index 0000000..beccf25 --- /dev/null +++ b/src/main/java/ab/utils/Constants.java @@ -0,0 +1,129 @@ +package ab.utils; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; + +public final class Constants { + + private Constants() {} + + public static final int POOL_META_DILUTE = 2; + public static final int POOL_META_REGULAR = 0; + public static final int POOL_META_REGULAR_FABULOUS = 3; + public static final int POOL_META_CREATIVE = 1; + + public static final int SPREADER_META_REGULAR = 0; + public static final int SPREADER_META_ALFHEIM = 2; + public static final int SPREADER_META_GAIA = 3; + public static final int SPREADER_META_PULSE = 1; + + public static final int MANARESOURCE_META_MANASTEEL = 0; + public static final int MANARESOURCE_META_DIAMOND = 2; + public static final int MANARESOURCE_META_PEARL = 1; + public static final int MANARESOURCE_META_TWIG_WOOD = 3; + public static final int MANARESOURCE_META_TERRASTEEL = 4; + public static final int MANARESOURCE_META_GAIA_SPIRIT = 5; + public static final int MANARESOURCE_META_ROOT = 6; + public static final int MANARESOURCE_META_ELEMENTIUM = 7; + public static final int MANARESOURCE_META_PIXIE_DUST = 8; + public static final int MANARESOURCE_META_DRAGONSTONE = 9; + public static final int MANARESOURCE_META_PRISMARINE = 10; + public static final int MANARESOURCE_META_CRAFT = 11; + public static final int MANARESOURCE_META_TWIG_DREAM = 13; + public static final int MANARESOURCE_META_GAIA_INGOT = 14; + public static final int MANARESOURCE_META_STRING = 16; + public static final int MANARESOURCE_META_CLOTH = 22; + public static final int MANARESOURCE_META_MANAPOWDER = 23; + + public static final int STORAGE_META_MANASTEELBLOCK = 0; + public static final int STORAGE_META_TERRASTEELBLOCK = 1; + public static final int STORAGE_META_ELEMENTIUMBLOCK = 2; + public static final int STORAGE_META_DIAMONDBLOCK = 3; + public static final int STORAGE_META_DRAGONSTONEBLOCK = 4; + + public static final int STORAGE_META_MITHRILL = 0; + + public static final int SEEDS_META_GRASS = 0; + public static final int SEEDS_META_PODZOL = 1; + public static final int SEEDS_META_MYCELIUM = 2; + public static final int SEEDS_META_DRY = 3; + public static final int SEEDS_META_GOLD = 4; + public static final int SEEDS_META_VIVID = 5; + public static final int SEEDS_META_SCORCHED = 6; + public static final int SEEDS_META_INFUSED = 7; + public static final int SEEDS_META_MUTATED = 8; + + public static final int LIVINGWOOD_META_BLOCK = 0; + public static final int LIVINGWOOD_META_PLANK = 1; + public static final int LIVINGWOOD_META_MOSSY = 2; + public static final int LIVINGWOOD_META_FRAMED = 3; + public static final int LIVINGWOOD_META_PATTERNED = 4; + public static final int LIVINGWOOD_META_GLIMMERING = 5; + + public static final int LIVINGSTONE_META_BLOCK = 0; + public static final int LIVINGSTONE_META_BRICK = 1; + public static final int LIVINGSTONE_META_MOSSY = 2; + public static final int LIVINGSTONE_META_CRACKED = 3; + public static final int LIVINGSTONE_META_CHISELED = 4; + + public static final int PYLON_META_MANA = 0; + public static final int PYLON_META_NATURA = 1; + public static final int PYLON_META_GAIA = 2; + + public static final int VIAL_META_MANAGLASS = 0; + public static final int VIAL_META_ALFGLASS = 1; + + public static final int QUARTZ_META_DARK = 0; + public static final int QUARTZ_META_MANA = 1; + public static final int QUARTZ_META_BLAZE = 2; + public static final int QUARTZ_META_LAVENDER = 3; + public static final int QUARTZ_META_RED = 4; + public static final int QUARTZ_META_ELVEN = 5; + public static final int QUARTZ_META_SUNNY = 6; + + public static final int VIRUS_METADATA_NECRO = 0; + public static final int VIRUS_METADATA_NULL = 1; + + public static final int PRISMARINE_META_BLOCK = 0; + public static final int PRISMARINE_META_BRICK = 1; + public static final int PRISMARINE_META_DARK = 2; + + public static final int BRICK_META_HELL = 0; + public static final int BRICK_META_SOUL = 1; + public static final int BRICK_META_FROST = 2; + public static final int BRICK_META_ROOF = 3; + + public static final int ENDSTONE_META_BRICK_YELLOW = 0; + public static final int ENDSTONE_META_BRICK_PURPLE = 2; + + public static final String THAUMCRAFT_METAL_DEVICE = "Thaumcraft:blockMetalDevice"; + public static final String THAUMCRAFT_STONE_DEVICE = "Thaumcraft:blockStoneDevice"; + public static final int THAUMCRAFT_METAL_META_CRUCIBLE = 0; + public static final int THAUMCRAFT_METAL_META_CONSTRUCT = 9; + public static final int THAUMCRAFT_STONE_META_PEDESTAL = 1; + public static final int THAUMCRAFT_STONE_META_RUNIC_MATRIX = 2; + + public static final String GT_CASING_ID = "gregtech:gt.blockcasings4"; + public static final int GT_CASING_META = 1; + + public static final int POOL_MAX_MANA_DILUTED = 10000; + public static final int POOL_MAX_MANA_REGULAR = 1000000; + + public static final int MANA_TABLET_MAGIC_META = 10000; + + public static ItemStack thaumcraftCrucible() { + return new ItemStack(Block.getBlockFromName(THAUMCRAFT_METAL_DEVICE), 1, THAUMCRAFT_METAL_META_CRUCIBLE); + } + + public static ItemStack thaumcraftMatrix() { + return new ItemStack(Block.getBlockFromName(THAUMCRAFT_STONE_DEVICE), 1, THAUMCRAFT_STONE_META_RUNIC_MATRIX); + } + + public static ItemStack thaumcraftConstruct() { + return new ItemStack(Block.getBlockFromName(THAUMCRAFT_METAL_DEVICE), 1, THAUMCRAFT_METAL_META_CONSTRUCT); + } + + public static ItemStack gtTradeCasing() { + return new ItemStack(Block.getBlockFromName(GT_CASING_ID), 1, GT_CASING_META); + } +} diff --git a/src/main/java/ab/utils/ResearchBuilder.java b/src/main/java/ab/utils/ResearchBuilder.java deleted file mode 100644 index 11d109c..0000000 --- a/src/main/java/ab/utils/ResearchBuilder.java +++ /dev/null @@ -1,161 +0,0 @@ -package ab.utils; - -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; -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.ShapedArcaneRecipe; -import thaumcraft.api.crafting.ShapelessArcaneRecipe; -import thaumcraft.api.research.ResearchCategories; -import thaumcraft.api.research.ResearchItem; -import thaumcraft.api.research.ResearchPage; -import ab.AdvancedBotany; - -public class ResearchBuilder { - - public static final String category = AdvancedBotany.modid; - public static final String prefix = "AB"; - - public final String key; - public int row = 0; - public int col = 0; - public int researchDifficulty = 1; - public int warp = 0; - public boolean mainline = false; - public String[] dependencies = new String[0]; - public String[] hiddenDependencies = new String[0]; - public AspectList researchAspects; - public LinkedList content = new LinkedList<>(); - public ResourceLocation researchIcon = new ResourceLocation("botania", "textures/gui/categories/forgotten.png"); - public ItemStack researchItemIcon = null; - - public ResearchBuilder(String key) { - this.key = prefix + key; - } - - public ResearchBuilder setResearchAspects(Aspect... aspects) { - AspectList list = new AspectList(); - for (Aspect aspect : aspects) { - list.add(aspect, 1); - } - this.researchAspects = list; - return this; - } - - // goes in units of whole tiles - have >= 2 difference to see lines - public ResearchBuilder setBookLocation(int x, int y) { - this.row = y; - this.col = x; - return this; - } - - public ResearchBuilder setDifficulty(int difficulty) { - this.researchDifficulty = difficulty; - return this; - } - - public ResearchBuilder setResearchIconItem(String mod, String filename) { - this.researchIcon = new ResourceLocation(mod, "textures/items/" + filename); - return this; - } - - public ResearchBuilder setResearchIconBlock(String mod, String filename) { - this.researchIcon = new ResourceLocation(mod, "textures/blocks/" + filename); - return this; - } - - public ResearchBuilder setResearchIconItemStack(ItemStack render) { - this.researchItemIcon = render; - return this; - } - - public ResearchBuilder addSingleTextPage() { - content.add(new ResearchPage(this.key, category + "." + key + ".body")); - return this; - } - - public ResearchBuilder addTextPages(int i18n_start, int count) { - for (int i = i18n_start; i < i18n_start + count; i++) { - content.add(new ResearchPage(this.key, category + "." + key + ".body_" + i)); - } - return this; - } - - public ResearchBuilder addCraftingRecipe(ItemStack out, AspectList aspects, Object... craftingRecipe) { - ShapedArcaneRecipe recipe = ThaumcraftApi.addArcaneCraftingRecipe(key, out, aspects, craftingRecipe); - content.add(new ResearchPage(recipe)); - return this; - } - - public ResearchBuilder addShapelessCraftingRecipe(ItemStack out, AspectList aspects, Object... craftingRecipe) { - ShapelessArcaneRecipe recipe = ThaumcraftApi - .addShapelessArcaneCraftingRecipe(key, out, aspects, craftingRecipe); - content.add(new ResearchPage(recipe)); - return this; - } - - public ResearchBuilder addCrucibleRecipe(AspectList aspects, ItemStack out, ItemStack in) { - CrucibleRecipe recipe = ThaumcraftApi.addCrucibleRecipe(key, out, in, aspects); - content.add(new ResearchPage(recipe)); - return this; - } - - public ResearchBuilder setWarp(int warp) { - this.warp = warp; - return this; - } - - public ResearchBuilder setMainlineResearch() { - this.mainline = true; - return this; - } - - public ResearchBuilder setDependencies(String... dependencies) { - this.dependencies = dependencies; - for (int i = 0; i < this.dependencies.length; i++) { - this.dependencies[i] = prefix + this.dependencies[i]; - } - return this; - } - - public ResearchBuilder setExternalDependencies(String... dependencies) { - this.hiddenDependencies = dependencies; - return this; - } - - public ResearchBuilder apply(WithResearchBuilder lambda) { - lambda.apply(this); - return this; - } - - public void commit() { - ResearchItem research; - if (researchItemIcon != null) { - research = new ResearchItem(key, category, researchAspects, col, row, researchDifficulty, researchItemIcon); - } else { - research = new ResearchItem(key, category, researchAspects, col, row, researchDifficulty, researchIcon); - } - research.setPages(content.toArray(new ResearchPage[0])); - research.parents = dependencies; - research.parentsHidden = hiddenDependencies; - research.setConcealed(); - if (mainline) { - research.setSpecial(); - } - - ResearchCategories.addResearch(research); - if (warp > 0) { - ThaumcraftApi.addWarpToResearch(key, warp); - } - } - - public interface WithResearchBuilder { - - void apply(ResearchBuilder builder); - } -} diff --git a/src/main/resources/assets/ab/lang/en_US.lang b/src/main/resources/assets/ab/lang/en_US.lang index df95d54..e92c338 100644 --- a/src/main/resources/assets/ab/lang/en_US.lang +++ b/src/main/resources/assets/ab/lang/en_US.lang @@ -130,6 +130,16 @@ tc.research_name.ManaCharger=Mana Charger tc.research_name.MithrillSword=Blade of Space tc.research_name.Forge=Forge of Nidavellir tc.research_name.Destroyer=Material Destroyer +tc.research_name.Nebula=Nebula Fragments + +TerraHoePages=The standard way of harvesting is getting boring over time. Terrahoe, or rather its unique ability to transform the soil into a more fertile and automated soil, can help with this very problem.
The harvest in the new soil gathers itself after a certain period of time! +DestroyerPages=A harsh tool based on a global catastrophe in the past.
He is perfectly capable of breaking any block almost instantly. His speed is so high that it was necessary to create a *Fuse* in him - that is, to turn him off/on. +MithrillSwordPages=A melee weapon that uses mana to communicate with the cosmic forces, the more mana in the blade, the stronger the connection.
The power of connection to cosmic forces is divided into Ranks, like Terra Shatterer. Each rank unlocks a new magical property for the Space Blade +AquaSwordPages=A mystical melee weapon imbued with the powers of the seas!
An attack with Blade of the Sea is resisted by a water splash, and pushes everyone around in the direction the player is looking
The block, on the other hand, is resisted by a water shield, which prevents enemies from approaching to you. +ForgePages=A really powerful Dwarf invention for fusing different materials into one whole, the main thing is to know the proportions!
This forge was given to the Elves, that is, it came to our land at the time of "Destruction," but... Not for long - it was soon destroyed. +ManaChargerPages=The mana charger is a device that allows you to charge up to 4 portable mana sources at once, as well as to discharge one of them.
To start the charger, you must bind a mana source to it, such as a Mana Pool or Mana Container +NebulaPages=A nebula fragment is a material filled with part of the power of space. It allows you to create instruments and weapons that are unearthly in power. +