aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/goodgenerator/crossmod
diff options
context:
space:
mode:
authorGlodBlock <1356392126@qq.com>2021-12-07 23:02:17 +0800
committerGlodBlock <1356392126@qq.com>2021-12-07 23:02:17 +0800
commit92238a0f3b06a80683f50dfd2d6e9164d2d0f1ab (patch)
tree2d1118c74e43d5f4337266c3d64f1921c0526d42 /src/main/java/goodgenerator/crossmod
parent06cac63657f40c489477abe923ea3f144fe6749c (diff)
downloadGT5-Unofficial-92238a0f3b06a80683f50dfd2d6e9164d2d0f1ab.tar.gz
GT5-Unofficial-92238a0f3b06a80683f50dfd2d6e9164d2d0f1ab.tar.bz2
GT5-Unofficial-92238a0f3b06a80683f50dfd2d6e9164d2d0f1ab.zip
rename package
Diffstat (limited to 'src/main/java/goodgenerator/crossmod')
-rw-r--r--src/main/java/goodgenerator/crossmod/nei/IMCForNEI.java24
-rw-r--r--src/main/java/goodgenerator/crossmod/nei/NEI_Config.java38
-rw-r--r--src/main/java/goodgenerator/crossmod/nei/NeutronActivatorHandler.java43
-rw-r--r--src/main/java/goodgenerator/crossmod/thaumcraft/LargeEssentiaEnergyData.java124
-rw-r--r--src/main/java/goodgenerator/crossmod/thaumcraft/Research.java620
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