diff options
| author | GlodBlock <1356392126@qq.com> | 2021-12-07 23:02:17 +0800 |
|---|---|---|
| committer | GlodBlock <1356392126@qq.com> | 2021-12-07 23:02:17 +0800 |
| commit | 92238a0f3b06a80683f50dfd2d6e9164d2d0f1ab (patch) | |
| tree | 2d1118c74e43d5f4337266c3d64f1921c0526d42 /src/main/java/goodgenerator/crossmod | |
| parent | 06cac63657f40c489477abe923ea3f144fe6749c (diff) | |
| download | GT5-Unofficial-92238a0f3b06a80683f50dfd2d6e9164d2d0f1ab.tar.gz GT5-Unofficial-92238a0f3b06a80683f50dfd2d6e9164d2d0f1ab.tar.bz2 GT5-Unofficial-92238a0f3b06a80683f50dfd2d6e9164d2d0f1ab.zip | |
rename package
Diffstat (limited to 'src/main/java/goodgenerator/crossmod')
5 files changed, 849 insertions, 0 deletions
diff --git a/src/main/java/goodgenerator/crossmod/nei/IMCForNEI.java b/src/main/java/goodgenerator/crossmod/nei/IMCForNEI.java new file mode 100644 index 0000000000..f93fdfa6eb --- /dev/null +++ b/src/main/java/goodgenerator/crossmod/nei/IMCForNEI.java @@ -0,0 +1,24 @@ +package goodgenerator.crossmod.nei; + +import cpw.mods.fml.common.event.FMLInterModComms; +import net.minecraft.nbt.NBTTagCompound; + +public class IMCForNEI { + public static void IMCSender() { + NBTTagCompound info = new NBTTagCompound(); + setNBTInfo(info, "GoodGenerator.CrossMod.NEI.NeutronActivatorHandler", "gregtech:gt.blockmachines:32013"); + FMLInterModComms.sendMessage("NotEnoughItems", "registerHandlerInfo", info); + } + + private static void setNBTInfo(NBTTagCompound aNBT, String aName, String aBlock) { + aNBT.setString("handler", aName); + aNBT.setString("modName", "Good Generator"); + aNBT.setString("modId", "goodgenerator"); + aNBT.setBoolean("modRequired", true); + aNBT.setString("itemName", aBlock); + aNBT.setInteger("handlerHeight", 135); + aNBT.setInteger("handlerWidth", 166); + aNBT.setInteger("maxRecipesPerPage", 1); + aNBT.setInteger("yShift", 6); + } +} diff --git a/src/main/java/goodgenerator/crossmod/nei/NEI_Config.java b/src/main/java/goodgenerator/crossmod/nei/NEI_Config.java new file mode 100644 index 0000000000..d5c71bc197 --- /dev/null +++ b/src/main/java/goodgenerator/crossmod/nei/NEI_Config.java @@ -0,0 +1,38 @@ +package goodgenerator.crossmod.nei; + +import goodgenerator.main.GoodGenerator; +import goodgenerator.util.MyRecipeAdder; +import codechicken.nei.api.API; +import codechicken.nei.api.IConfigureNEI; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class NEI_Config implements IConfigureNEI { + public static boolean isAdded = true; + + @Override + public void loadConfig() { + NEI_Config.isAdded = false; + new NeutronActivatorHandler(MyRecipeAdder.instance.NA); + 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 "Good Generator NEI Plugin"; + } + + @Override + public String getVersion() { + return GoodGenerator.VERSION; + } +} diff --git a/src/main/java/goodgenerator/crossmod/nei/NeutronActivatorHandler.java b/src/main/java/goodgenerator/crossmod/nei/NeutronActivatorHandler.java new file mode 100644 index 0000000000..ea7cf56cf9 --- /dev/null +++ b/src/main/java/goodgenerator/crossmod/nei/NeutronActivatorHandler.java @@ -0,0 +1,43 @@ +package goodgenerator.crossmod.nei; + +import codechicken.nei.recipe.GuiCraftingRecipe; +import codechicken.nei.recipe.GuiUsageRecipe; +import codechicken.nei.recipe.TemplateRecipeHandler; +import cpw.mods.fml.common.event.FMLInterModComms; +import gregtech.api.enums.GT_Values; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import gregtech.nei.GT_NEI_DefaultHandler; +import net.minecraft.util.StatCollector; + +import java.awt.*; + +public class NeutronActivatorHandler extends GT_NEI_DefaultHandler { + + public NeutronActivatorHandler(GT_Recipe.GT_Recipe_Map aRecipeMap) { + super(aRecipeMap); + this.transferRects.add(new TemplateRecipeHandler.RecipeTransferRect(new Rectangle(65, 13, 36, 18), this.getOverlayIdentifier())); + if (!NEI_Config.isAdded) { + FMLInterModComms.sendRuntimeMessage(GT_Values.GT, "NEIPlugins", "register-crafting-handler", "gregtech@" + this.getRecipeName() + "@" + this.getOverlayIdentifier()); + GuiCraftingRecipe.craftinghandlers.add(this); + GuiUsageRecipe.usagehandlers.add(this); + } + } + + @Override + public TemplateRecipeHandler newInstance() { + return new NeutronActivatorHandler(this.mRecipeMap); + } + + @Override + public void drawExtras(int aRecipeIndex) { + int tDuration = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mDuration; + int minNKE = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mSpecialValue % 10000; + int maxNKE = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mSpecialValue / 10000; + drawText(10, 73, this.trans("158", "Time: ") + GT_Utility.formatNumbers((float)tDuration / 20.0) + this.trans("161", " secs"), -16777216); + drawText(10, 83, StatCollector.translateToLocal("value.neutron_activator.0"), -16777216); + drawText(10, 93, GT_Utility.formatNumbers(minNKE) + StatCollector.translateToLocal("value.neutron_activator.2"), -16777216); + drawText(10, 103, StatCollector.translateToLocal("value.neutron_activator.1"), -16777216); + drawText(10, 113, GT_Utility.formatNumbers(maxNKE) + StatCollector.translateToLocal("value.neutron_activator.2"), -16777216); + } +} diff --git a/src/main/java/goodgenerator/crossmod/thaumcraft/LargeEssentiaEnergyData.java b/src/main/java/goodgenerator/crossmod/thaumcraft/LargeEssentiaEnergyData.java new file mode 100644 index 0000000000..0328b5906d --- /dev/null +++ b/src/main/java/goodgenerator/crossmod/thaumcraft/LargeEssentiaEnergyData.java @@ -0,0 +1,124 @@ +package goodgenerator.crossmod.thaumcraft; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import thaumcraft.api.aspects.Aspect; + +import java.io.*; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; + +public class LargeEssentiaEnergyData { + + public static final HashMap<Aspect, FuelData> ASPECT_FUEL_DATA = new HashMap<>(); + + public static String readJsonFile() { + try { + URL url = Thread.currentThread().getContextClassLoader().getResource("assets/goodgenerator/data/essentia.json"); + assert url != null; + BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), StandardCharsets.UTF_8)); + String s; + StringBuilder sb = new StringBuilder(); + while ((s = in.readLine()) != null) { + sb.append(s); + } + in.close(); + return sb.toString(); + } catch (IOException e) { + e.printStackTrace(); + return null; + } + } + + public static void processEssentiaData() { + String data = readJsonFile(); + if (data == null) { + return; + } + JsonParser jsonParser = new JsonParser(); + JsonObject jsonObject = (JsonObject)jsonParser.parse(data); + JsonArray jsonArray = jsonObject.get("Essentia").getAsJsonArray(); + for (JsonElement elm : jsonArray) { + JsonObject essData = elm.getAsJsonObject(); + String aspectName = essData.get("name").getAsString(); + Aspect aspect = Aspect.getAspect(aspectName.toLowerCase()); + if (aspect != null) { + int fuel = essData.get("fuelValue").getAsInt(); + String cate = essData.get("category").getAsString(); + float ceo = essData.get("consumeCeo").getAsFloat(); + ASPECT_FUEL_DATA.put(aspect, new FuelData(fuel, cate, ceo)); + } + } + } + + public static int getAspectTypeIndex(Aspect aspect) { + if (ASPECT_FUEL_DATA.containsKey(aspect)) { + return ASPECT_FUEL_DATA.get(aspect).getCategoryIndex(); + } + else return -1; + } + + public static String getAspectType(Aspect aspect) { + if (ASPECT_FUEL_DATA.containsKey(aspect)) { + return ASPECT_FUEL_DATA.get(aspect).getCategory(); + } + else return null; + } + + public static int getAspectFuelValue(Aspect aspect) { + if (ASPECT_FUEL_DATA.containsKey(aspect)) { + return ASPECT_FUEL_DATA.get(aspect).getFuelValue(); + } + else return 0; + } + + public static float getAspectCeo(Aspect aspect) { + if (ASPECT_FUEL_DATA.containsKey(aspect)) { + return ASPECT_FUEL_DATA.get(aspect).getConsumeSpeed(); + } + else return 0; + } +} + +class FuelData { + private final int fuelValue; + private final String category; + private final float consumeSpeed; + + FuelData(int basicValue, String cate, float ceo) { + fuelValue = basicValue; + category = cate; + consumeSpeed = ceo; + } + + public int getFuelValue() { + return fuelValue; + } + + public float getConsumeSpeed() { + return consumeSpeed; + } + + public String getCategory() { + return category; + } + + public int getCategoryIndex() { + switch (category) { + case "NORMAL": return 0; + case "AIR": return 1; + case "THERMAL": return 2; + case "UNSTABLE": return 3; + case "VICTUS": return 4; + case "TAINTED": return 5; + case "MECHANICS": return 6; + case "SPRITE": return 7; + case "RADIATION": return 8; + case "ELECTRIC": return 9; + default: return -1; + } + } +}
\ No newline at end of file diff --git a/src/main/java/goodgenerator/crossmod/thaumcraft/Research.java b/src/main/java/goodgenerator/crossmod/thaumcraft/Research.java new file mode 100644 index 0000000000..2eb3a4dbc0 --- /dev/null +++ b/src/main/java/goodgenerator/crossmod/thaumcraft/Research.java @@ -0,0 +1,620 @@ +package goodgenerator.crossmod.thaumcraft; + +import goodgenerator.items.MyMaterial; +import goodgenerator.util.DescTextLocalization; +import goodgenerator.util.ItemRefer; +import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry; +import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; +import cpw.mods.fml.common.Loader; +import gregtech.api.GregTech_API; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TC_Aspects; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import ic2.core.Ic2Items; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; +import thaumcraft.common.config.ConfigBlocks; +import thaumcraft.common.config.ConfigItems; + +import java.util.Arrays; +import java.util.Collections; + +import static thaumcraft.api.ThaumcraftApi.addArcaneCraftingRecipe; + +public class Research{ + + public static void addResearch() { + DescTextLocalization.addText("research.ESSENTIA_GENERATOR.page",4); + DescTextLocalization.addText("research.ESSENTIA_CELL.page",1); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_BLANK.page",1); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_AIR.page",2); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_THERMAL.page",3); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_UNSTABLE.page",3); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_VICTUS.page",3); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_TAINTED.page",4); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_MECHANICS.page",3); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_SPRITE.page",3); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_RADIATION.page",3); + DescTextLocalization.addText("research.ESSENTIA_UPGRADE_ELECTRIC.page",2); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_GENERATOR", + "Combustion Engine in Magic World", + "Will it cause Flux pollution?", + new String[]{"INFUSION"}, + "ARTIFICE", + ItemRefer.Large_Essentia_Generator.get(1), + 3, 0, -9, 3, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L) + ), + null, + new Object[]{ + "research.ESSENTIA_GENERATOR.page.0", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_GENERATOR", + ItemList.Hull_HV.get(1), + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1L), + new ItemStack(ConfigBlocks.blockJar, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Thaumium, 1L), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Emerald, 1L), + new ItemStack(ConfigBlocks.blockWoodenDevice, 1), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Manyullyn, 1L), + Ic2Items.teslaCoil, + ItemList.Sensor_MV.get(1) + }, + ItemRefer.Large_Essentia_Generator.get(1), + 6, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 64L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 64L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTATIO, 32), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 32) + ) + ), + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_GENERATOR", + ItemList.Hatch_Input_HV.get(1), + new ItemStack[]{ + new ItemStack(ConfigBlocks.blockJar, 1), + ItemRefer.Magic_Casing.get(1), + new ItemStack(ConfigBlocks.blockTube, 1), + ItemList.Electric_Pump_MV.get(1L) + }, + ItemRefer.Essentia_Hatch.get(1), + 6, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 64), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 32), + new TC_Aspects.TC_AspectStack(TC_Aspects.COGNITIO, 32) + ) + ), + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_GENERATOR", + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Thaumium, 1), + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.StainlessSteel, 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.ElectricalSteel, 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.ElectricalSteel, 1), + ItemList.Electric_Pump_HV.get(1L), + new ItemStack(ConfigBlocks.blockTube, 1, 4), + new ItemStack(ConfigBlocks.blockCosmeticOpaque, 1, 2), + }, + ItemRefer.Essentia_Cell_T1.get(1), + 4, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 32), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 32), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 16) + ) + ), + addArcaneCraftingRecipe( + "ESSENTIA_GENERATOR", + ItemRefer.Magic_Casing.get(1), + new AspectList().add(Aspect.AIR, 50).add(Aspect.FIRE, 50).add(Aspect.ORDER, 50), + "SCS","GAG","SCS", + 'S', new ItemStack(ConfigItems.itemResource,1,14), + 'C', GT_OreDictUnificator.get(OrePrefixes.itemCasing, Materials.Thaumium, 1), + 'G', Ic2Items.reinforcedGlass, + 'A', Ic2Items.advancedMachine + ), + "research.ESSENTIA_GENERATOR.page.1", + "research.ESSENTIA_GENERATOR.page.2", + "research.ESSENTIA_GENERATOR.page.3" + } + ); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_CELL", + "Better Cells", + "And higher efficiency.", + new String[]{"ESSENTIA_GENERATOR"}, + "ARTIFICE", + ItemRefer.Essentia_Cell_T3.get(1), + 2, 0, -10, 3, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PRAECANTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L) + ), + null, + new Object[]{ + "research.ESSENTIA_CELL.page.0", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_CELL", + ItemRefer.Essentia_Cell_T1.get(1), + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.TungstenSteel, 1), + ItemList.FluidRegulator_EV.get(1L), + ItemList.QuantumStar.get(1L), + new ItemStack(ConfigBlocks.blockJar, 1, 0), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Platinum, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Desh, 1) + }, + ItemRefer.Essentia_Cell_T2.get(1), + 6, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 64), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 64), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 32) + ) + ), + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_CELL", + ItemRefer.Essentia_Cell_T2.get(1), + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.NiobiumTitanium, 1), + ItemList.Field_Generator_IV.get(1L), + ItemList.Reactor_Coolant_Sp_3.get(1L), + new ItemStack(ConfigItems.itemResource,1,14), + Ic2Items.fluidregulator, + new ItemStack(ConfigBlocks.blockCrystal, 1, 6), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Plutonium241, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Void, 1), + GT_OreDictUnificator.get(OrePrefixes.lens, Materials.EnderEye, 1), + new ItemStack(ConfigBlocks.blockMetalDevice, 1, 3) + }, + ItemRefer.Essentia_Cell_T3.get(1), + 8, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 64) + ) + ), + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_CELL", + ItemRefer.Essentia_Cell_T3.get(1), + new ItemStack[]{ + GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Europium, 1), + ItemList.Emitter_LuV.get(1L), + ItemList.FluidRegulator_LuV.get(1L), + new ItemStack(ConfigItems.itemEldritchObject,1,3), + new ItemStack(ItemRegistry.bw_realglas, 1, 3), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Indium, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Ichorium, 1), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.Quantium, 1), + GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.Sunnarium, 1), + MyMaterial.orundum.get(OrePrefixes.gemExquisite, 1) + }, + ItemRefer.Essentia_Cell_T4.get(1), + 10, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 256), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 256), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 128) + ) + ) + } + ); + ItemStack broad = new ItemStack(ConfigBlocks.blockCosmeticSolid, 1, 6); + if (Loader.isModLoaded("dreamcraft")) broad = GT_ModHandler.getModItem("dreamcraft", "item.ArcaneSlate", 1); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_UPGRADE_BLANK", + "Upgrade your generator", + "Let's try some more dangerous essentia.", + new String[]{"ESSENTIA_GENERATOR"}, + "ARTIFICE", + ItemRefer.Essentia_Upgrade_Empty.get(1), + 2, 0, -9, 4, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) + ), + null, + new Object[] { + "research.ESSENTIA_UPGRADE_BLANK.page.0", + addArcaneCraftingRecipe( + "ESSENTIA_UPGRADE_BLANK", + ItemRefer.Essentia_Upgrade_Empty.get(1), + new AspectList().add(Aspect.AIR, 80).add(Aspect.ENTROPY, 50).add(Aspect.ORDER, 50).add(Aspect.WATER, 80), + "AMB","CZD","EIF", + 'A', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedAir, 1), + 'B', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedEarth, 1), + 'C', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedFire, 1), + 'D', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedWater, 1), + 'E', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedOrder, 1), + 'F', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.InfusedEntropy, 1), + 'M', new ItemStack(ConfigItems.itemResource, 1, 10), + 'Z', broad, + 'I', GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.PulsatingIron, 1) + ), + } + ); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_UPGRADE_AIR", + "Essentia: AIR", + "I can feel it on the wind.", + new String[]{"ESSENTIA_UPGRADE_BLANK"}, + "ARTIFICE", + ItemRefer.Essentia_Upgrade_Air.get(1), + 1, 0, -9, 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.AER, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) + ), + null, + new Object[] { + "research.ESSENTIA_UPGRADE_AIR.page.0", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_UPGRADE_AIR", + ItemRefer.Essentia_Upgrade_Empty.get(1), + new ItemStack[] { + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.LiquidAir, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Hydrogen, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Helium, 1), + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Argon, 1), + WerkstoffLoader.Neon.get(OrePrefixes.cell, 1), + WerkstoffLoader.Krypton.get(OrePrefixes.cell, 1), + }, + ItemRefer.Essentia_Upgrade_Air.get(1), + 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.AER, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.VOLATUS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.MOTUS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.AURAM, 128) + ) + ), + "research.ESSENTIA_UPGRADE_AIR.page.1" + } + ); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_UPGRADE_THERMAL", + "Essentia: THERMAL", + "Melting down.", + new String[]{"ESSENTIA_UPGRADE_BLANK"}, + "ARTIFICE", + ItemRefer.Essentia_Upgrade_Thermal.get(1), + 1, 0, -10, 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) + ), + null, + new Object[] { + "research.ESSENTIA_UPGRADE_THERMAL.page.0", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_UPGRADE_THERMAL", + ItemRefer.Essentia_Upgrade_Empty.get(1), + new ItemStack[] { + GT_OreDictUnificator.get(OrePrefixes.lens, Materials.Firestone, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Netherrack, 1), + Ic2Items.reactorPlatingHeat, + ItemList.Casing_Coil_Nichrome.get(1), + new ItemStack(ConfigItems.itemResource, 1, 1), + new ItemStack(ConfigItems.itemResource, 1, 0), + }, + ItemRefer.Essentia_Upgrade_Thermal.get(1), + 5, + Collections.singletonList( + new TC_Aspects.TC_AspectStack(TC_Aspects.IGNIS, 1024) + ) + ), + "research.ESSENTIA_UPGRADE_THERMAL.page.1", + "research.ESSENTIA_UPGRADE_THERMAL.page.2" + } + ); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_UPGRADE_UNSTABLE", + "Essentia: UNSTABLE", + "Heart of chaos.", + new String[]{"ESSENTIA_UPGRADE_BLANK"}, + "ARTIFICE", + ItemRefer.Essentia_Upgrade_Unstable.get(1), + 1, 0, -11, 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) + ), + null, + new Object[] { + "research.ESSENTIA_UPGRADE_UNSTABLE.page.0", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_UPGRADE_UNSTABLE", + ItemRefer.Essentia_Upgrade_Empty.get(1), + new ItemStack[] { + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.GasolinePremium, 1), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Unstable, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.Void, 1), + GT_OreDictUnificator.get(OrePrefixes.gem, Materials.InfusedEntropy, 1), + Ic2Items.industrialTnt, + new ItemStack(ItemRegistry.DESTRUCTOPACK) + }, + ItemRefer.Essentia_Upgrade_Unstable.get(1), + 6, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.VENENUM, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.TELUM, 128) + ) + ), + "research.ESSENTIA_UPGRADE_UNSTABLE.page.1", + "research.ESSENTIA_UPGRADE_UNSTABLE.page.2" + } + ); + ItemStack meatDust = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatRaw, 1); + if (Loader.isModLoaded("dreamcraft")) meatDust = GT_ModHandler.getModItem("dreamcraft", "GTNHBioItems", 1, 2); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_UPGRADE_VICTUS", + "Essentia: VICTUS", + "Will it bleed?", + new String[]{"ESSENTIA_UPGRADE_BLANK"}, + "ARTIFICE", + ItemRefer.Essentia_Upgrade_Victus.get(1), + 1, 0, -12, 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.VICTUS, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) + ), + null, + new Object[] { + "research.ESSENTIA_UPGRADE_VICTUS.page.0", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_UPGRADE_VICTUS", + ItemRefer.Essentia_Upgrade_Empty.get(1), + new ItemStack[] { + meatDust, + ItemList.Food_Dough_Sugar.get(1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Calcium, 1), + new ItemStack(Item.getItemById(367), 1), + new ItemStack(ConfigItems.itemResource, 1, 4), + new ItemStack(ConfigBlocks.blockMetalDevice, 1, 8), + }, + ItemRefer.Essentia_Upgrade_Victus.get(1), + 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.VICTUS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.SPIRITUS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.SANO, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.CORPUS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.HUMANUS, 128) + ) + ), + "research.ESSENTIA_UPGRADE_VICTUS.page.1", + "research.ESSENTIA_UPGRADE_VICTUS.page.2" + } + ); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_UPGRADE_TAINTED", + "Essentia: TAINTED", + "Dirty Deeds Done Dirt Cheap", + new String[]{"ESSENTIA_UPGRADE_BLANK"}, + "ARTIFICE", + ItemRefer.Essentia_Upgrade_Tainted.get(1), + 1, 0, -13, 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.MORTUUS, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 10L) + ), + null, + new Object[] { + "research.ESSENTIA_UPGRADE_TAINTED.page.0", + "research.ESSENTIA_UPGRADE_TAINTED.page.1", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_UPGRADE_TAINTED", + ItemRefer.Essentia_Upgrade_Empty.get(1), + new ItemStack[] { + new ItemStack(ConfigBlocks.blockTaintFibres, 1, 0), + new ItemStack(ConfigBlocks.blockTaintFibres, 1, 2), + new ItemStack(ConfigItems.itemResource, 1, 11), + GT_OreDictUnificator.get(OrePrefixes.spring, Materials.NaquadahEnriched, 1), + GT_OreDictUnificator.get(OrePrefixes.gearGt, Materials.EndSteel, 1), + new ItemStack(Block.getBlockById(138), 1), + }, + ItemRefer.Essentia_Upgrade_Tainted.get(1), + 7, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.MORTUUS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.ALIENIS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.EXANIMIS, 128), + new TC_Aspects.TC_AspectStack(TC_Aspects.VITIUM, 128) + ) + ), + "research.ESSENTIA_UPGRADE_TAINTED.page.2", + "research.ESSENTIA_UPGRADE_TAINTED.page.3" + } + ); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_UPGRADE_MECHANICS", + "Essentia: MECHANICS", + "Driven by Ether.", + new String[]{"ESSENTIA_UPGRADE_BLANK"}, + "ARTIFICE", + ItemRefer.Essentia_Upgrade_Mechanics.get(1), + 1, 0, -14, 5, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 10L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PER |
