aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/goodgenerator/loader/NaquadahReworkRecipeLoader.java
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/loader/NaquadahReworkRecipeLoader.java
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/loader/NaquadahReworkRecipeLoader.java')
-rw-r--r--src/main/java/goodgenerator/loader/NaquadahReworkRecipeLoader.java1125
1 files changed, 1125 insertions, 0 deletions
diff --git a/src/main/java/goodgenerator/loader/NaquadahReworkRecipeLoader.java b/src/main/java/goodgenerator/loader/NaquadahReworkRecipeLoader.java
new file mode 100644
index 0000000000..7c3361eac4
--- /dev/null
+++ b/src/main/java/goodgenerator/loader/NaquadahReworkRecipeLoader.java
@@ -0,0 +1,1125 @@
+package goodgenerator.loader;
+
+import goodgenerator.main.GoodGenerator;
+import goodgenerator.util.ItemRefer;
+import goodgenerator.util.MyRecipeAdder;
+import com.github.bartimaeusnek.bartworks.system.material.GT_Enhancement.PlatinumSludgeOverHaul;
+import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader;
+import cpw.mods.fml.common.Loader;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.util.*;
+import gregtech.common.items.CombType;
+import gregtech.loaders.misc.GT_Bees;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_MultisUsingFluidInsteadOfCells;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.crafting.CraftingManager;
+import net.minecraft.item.crafting.IRecipe;
+import net.minecraft.item.crafting.ShapedRecipes;
+import net.minecraft.item.crafting.ShapelessRecipes;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.oredict.OreDictionary;
+import net.minecraftforge.oredict.ShapedOreRecipe;
+import net.minecraftforge.oredict.ShapelessOreRecipe;
+import org.apache.commons.lang3.reflect.FieldUtils;
+
+import java.lang.reflect.*;
+import java.util.HashSet;
+
+import static goodgenerator.items.MyMaterial.*;
+import static goodgenerator.main.GG_Config_Loader.EnableNaquadahRework;
+import static gregtech.common.items.GT_MetaGenerated_Item_01.registerCauldronCleaningFor;
+
+public class NaquadahReworkRecipeLoader {
+
+ public static void RecipeLoad(){
+
+ if (!EnableNaquadahRework) return;
+
+ //Naquadah Rework Line
+ GT_Values.RA.addBlastRecipe(
+ naquadahEarth.get(OrePrefixes.dust, 2),
+ GT_Utility.getIntegratedCircuit(1),
+ fluoroantimonicAcid.getFluidOrGas(3000),
+ lowQualityNaquadahEmulsion.getFluidOrGas(2000),
+ titaniumTrifluoride.get(OrePrefixes.dust, 1),
+ null,
+ 100,
+ 480,
+ 3000
+ );
+
+ GT_Values.RA.addBlastRecipe(
+ titaniumTrifluoride.get(OrePrefixes.dust, 1),
+ GT_Utility.getIntegratedCircuit(1),
+ Materials.Hydrogen.getGas(3000),
+ Materials.HydrofluoricAcid.getFluid(3000),
+ GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Titanium, 1),
+ null,
+ 120,
+ 1920,
+ 2000
+ );
+
+ GT_Values.RA.addMultiblockChemicalRecipe(
+ new ItemStack[]{
+ GT_Utility.copyAmount(0, GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Copper, 1))
+ },
+ new FluidStack[]{
+ Materials.Hydrogen.getGas(8000),
+ FluidRegistry.getFluidStack("seedoil", 3000)
+ },
+ new FluidStack[]{
+ towEthyl1Hexanol.getFluidOrGas(1000)
+ },
+ null,
+ 400,
+ 480
+ );
+
+ GT_Values.RA.addMultiblockChemicalRecipe(
+ new ItemStack[]{
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 16)
+ },
+ new FluidStack[]{
+ towEthyl1Hexanol.getFluidOrGas(2000),
+ Materials.PhosphoricAcid.getFluid(1000),
+ Materials.Ethanol.getFluid(4000)
+ },
+ new FluidStack[]{
+ P507.getFluidOrGas(1000)
+ },
+ null,
+ 1200,
+ 1920
+ );
+
+ GT_Values.RA.addMultiblockChemicalRecipe(
+ null,
+ new FluidStack[]{
+ P507.getFluidOrGas(4000),
+ lowQualityNaquadahSolution.getFluidOrGas(36000),
+ },
+ new FluidStack[]{
+ fluorineRichWasteLiquid.getFluidOrGas(6000),
+ naquadahAdamantiumSolution.getFluidOrGas(30000)
+ },
+ null,
+ 4000,
+ 1920
+ );
+
+ GT_Values.RA.addMultiblockChemicalRecipe(
+ new ItemStack[]{
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Quicklime, 60),
+ },
+ new FluidStack[]{
+ fluorineRichWasteLiquid.getFluidOrGas(1500)
+ },
+ new FluidStack[]{
+ wasteLiquid.getFluidOrGas(1000)
+ },
+ new ItemStack[]{
+ WerkstoffLoader.Fluorspar.get(OrePrefixes.dust, 60)
+ },
+ 1000,
+ 120
+ );
+
+ GT_Values.RA.addUniversalDistillationRecipe(
+ wasteLiquid.getFluidOrGas(10000),
+ new FluidStack[]{
+ Materials.SaltWater.getFluid(3000),
+ FluidRegistry.getFluidStack("phenol", 2000),
+ Materials.HydrochloricAcid.getFluid(5000)
+ },
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chrome, 3),
+ 300,
+ 480
+ );
+
+ MyRecipeAdder.instance.addNeutronActivatorRecipe(
+ new FluidStack[]{
+ naquadahAdamantiumSolution.getFluidOrGas(3000)
+ },
+ null,
+ new FluidStack[]{
+ naquadahRichSolution.getFluidOrGas(2000)
+ },
+ new ItemStack[]{
+ adamantine.get(OrePrefixes.dust, 4),
+ naquadahEarth.get(OrePrefixes.dust, 2),
+ concentratedEnrichedNaquadahSludge.get(OrePrefixes.dust, 1)
+ },
+ 100,
+ 230,
+ 200
+ );
+
+ GT_Values.RA.addAutoclaveRecipe(
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SodiumHydroxide, 27),
+ null,
+ naquadahRichSolution.getFluidOrGas(5000),
+ P507.getFluidOrGas(1000),
+ naquadahine.get(OrePrefixes.dust, 10),
+ 10000,
+ 1000,
+ 120,
+ false
+ );
+
+ GT_Values.RA.addBlastRecipe(
+ naquadahine.get(OrePrefixes.dust, 1),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1),
+ null,
+ Materials.CarbonDioxide.getGas(1000),
+ GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Naquadah, 1),
+ null,
+ 20,
+ 7680,
+ 5000
+ );
+
+ GT_Values.RA.addCentrifugeRecipe(
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SodiumHydroxide, 27),
+ GT_Utility.getIntegratedCircuit(1),
+ lowQualityNaquadahEmulsion.getFluidOrGas(10000),
+ lowQualityNaquadahSolution.getFluidOrGas(9000),
+ galliumHydroxide.get(OrePrefixes.dust, 16),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.AntimonyTrioxide, 10),
+ null,null,null, null,
+ new int[]{6250, 10000},
+ 1000,
+ 1920
+ );
+
+ GT_Values.RA.addMultiblockChemicalRecipe(
+ new ItemStack[]{
+ enrichedNaquadahEarth.get(OrePrefixes.dust, 4),
+ },
+ new FluidStack[]{
+ P507.getFluidOrGas(1000),
+ Materials.SulfuricAcid.getFluid(32000)
+ },
+ new FluidStack[]{
+ enrichedNaquadahRichSolution.getFluidOrGas(4000),
+ wasteLiquid.getFluidOrGas(1000)
+ },
+ new ItemStack[]{
+ naquadahEarth.get(OrePrefixes.dust, 1),
+ triniumSulphate.get(OrePrefixes.dust, 1)
+ },
+ 400,
+ 1920
+ );
+
+ GT_Values.RA.addAutoclaveRecipe(
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.SodiumHydroxide, 27),
+ null,
+ enrichedNaquadahRichSolution.getFluidOrGas(10000),
+ P507.getFluidOrGas(2500),
+ concentratedEnrichedNaquadahSludge.get(OrePrefixes.dust, 8),
+ 10000,
+ 1000,
+ 480,
+ false
+ );
+
+ MyRecipeAdder.instance.addNeutronActivatorRecipe(
+ null,
+ new ItemStack[]{
+ concentratedEnrichedNaquadahSludge.get(OrePrefixes.dust, 16),
+ },
+ null,
+ new ItemStack[]{
+ enrichedNaquadahSulphate.get(OrePrefixes.dust, 15),
+ WerkstoffLoader.Sodiumsulfate.get(OrePrefixes.dust, 20),
+ lowQualityNaquadriaSulphate.get(OrePrefixes.dust, 2)
+ },
+ 120,
+ 480,
+ 460
+ );
+
+ GT_Values.RA.addBlastRecipe(
+ enrichedNaquadahSulphate.get(OrePrefixes.dust, 1),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Zinc, 2),
+ null,
+ null,
+ GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.NaquadahEnriched, 1),
+ WerkstoffLoader.ZincSulfate.get(OrePrefixes.dust, 2),
+ 100,
+ 7680,
+ 7500
+ );
+
+ GT_Values.RA.addMultiblockChemicalRecipe(
+ new ItemStack[]{
+ triniumSulphate.get(OrePrefixes.dust, 1),
+ },
+ new FluidStack[]{
+ Materials.Hydrogen.getGas(1000)
+ },
+ new FluidStack[]{
+ Materials.SulfuricAcid.getFluid(1000)
+ },
+ new ItemStack[]{
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Trinium, 1),
+ },
+ 120,
+ 480
+ );
+
+ GT_Values.RA.addCentrifugeRecipe(
+ naquadriaEarth.get(OrePrefixes.dust, 4),
+ null,
+ Materials.PhosphoricAcid.getFluid(4000),
+ null,
+ indiumPhosphate.get(OrePrefixes.dust, 1),
+ lowQualityNaquadriaPhosphate.get(OrePrefixes.dust, 4),
+ null, null, null, null,
+ new int[]{2000, 10000},
+ 400,
+ 7680
+ );
+
+ GT_Values.RA.addChemicalRecipe(
+ galliumHydroxide.get(OrePrefixes.dust, 1),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sodium, 1),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gallium, 1),
+ 40,
+ 30
+ );
+
+ GT_Values.RA.addChemicalRecipe(
+ indiumPhosphate.get(OrePrefixes.dust, 1),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcium, 1),
+ null, null,
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Indium, 1),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.TricalciumPhosphate, 1),
+ 20,
+ 30
+ );
+
+ GT_Values.RA.addMultiblockChemicalRecipe(
+ new ItemStack[]{
+ lowQualityNaquadriaPhosphate.get(OrePrefixes.dust, 10),
+ },
+ new FluidStack[]{
+ Materials.SulfuricAcid.getFluid(30000)
+ },
+ new FluidStack[]{
+ naquadriaRichSolution.getFluidOrGas(9000)
+ },
+ new ItemStack[]{
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Barite, 1),
+ },
+ 1000,
+ 7680
+ );
+
+ MyRecipeAdder.instance.addNeutronActivatorRecipe(
+ new FluidStack[]{
+ naquadriaRichSolution.getFluidOrGas(9000)
+ },
+ null,
+ null,
+ new ItemStack[]{
+ naquadriaSulphate.get(OrePrefixes.dust, 4),
+ lowQualityNaquadriaSulphate.get(OrePrefixes.dust, 6)
+ },
+ 100,
+ 1100,
+ 1050
+ );
+
+ GT_Values.RA.addMultiblockChemicalRecipe(
+ new ItemStack[]{
+ lowQualityNaquadriaSulphate.get(OrePrefixes.dust, 3),
+ },
+ new FluidStack[]{
+ Materials.Water.getFluid(3000),
+ P507.getFluidOrGas(500)
+ },
+ new FluidStack[]{
+ lowQualityNaquadriaSolution.getFluidOrGas(3500)
+ },
+ null,
+ 500,
+ 1920
+ );
+
+ GT_Values.RA.addUniversalDistillationRecipe(
+ lowQualityNaquadriaSolution.getFluidOrGas(7000),
+ new FluidStack[]{
+ P507.getFluidOrGas(1000),
+ naquadriaRichSolution.getFluidOrGas(5400),
+ Materials.DilutedSulfuricAcid.getFluid(12000)
+ },
+ enrichedNaquadahEarth.get(OrePrefixes.dust, 2),
+ 500,
+ 7680
+ );
+
+ GT_Values.RA.addBlastRecipe(
+ naquadriaSulphate.get(OrePrefixes.dust, 1),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Magnesium, 1),
+ null,
+ Materials.HydricSulfide.getGas(1000),
+ GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Naquadria, 1),
+ null,
+ 100,
+ 122880,
+ 9100
+ );
+
+ GT_Values.RA.addMixerRecipe(
+ indiumPhosphate.get(OrePrefixes.dust, 1),
+ galliumHydroxide.get(OrePrefixes.dust, 1),
+ GT_Utility.getIntegratedCircuit(2),
+ null,
+ null,
+ null,
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.IndiumGalliumPhosphide, 2),
+ 15,
+ 7
+ );
+
+ GT_Values.RA.addFluidSolidifierRecipe(
+ ItemList.Shape_Mold_Ball.get(0),
+ naquadahGoo.getFluidOrGas(72),
+ ItemRefer.Naquadah_Mass.get(1),
+ 100,
+ 30
+ );
+
+ GT_Values.RA.addFluidSolidifierRecipe(
+ ItemList.Shape_Mold_Ball.get(0),
+ enrichedNaquadahGoo.getFluidOrGas(72),
+ ItemRefer.Enriched_Naquadah_Mass.get(1),
+ 100,
+ 30
+ );
+
+ GT_Values.RA.addFluidSolidifierRecipe(
+ ItemList.Shape_Mold_Ball.get(0),
+ naquadriaGoo.getFluidOrGas(72),
+ ItemRefer.Naquadria_Mass.get(1),
+ 100,
+ 30
+ );
+
+ GT_Values.RA.addPulveriserRecipe(
+ ItemRefer.Naquadah_Mass.get(1),
+ new ItemStack[]{
+ naquadahEarth.get(OrePrefixes.dust, 1),
+ enrichedNaquadahEarth.get(OrePrefixes.dust, 1)
+ },
+ new int[]{10000, 100},
+ 100,
+ 2
+ );
+
+ GT_Values.RA.addPulveriserRecipe(
+ ItemRefer.Enriched_Naquadah_Mass.get(1),
+ new ItemStack[]{
+ enrichedNaquadahEarth.get(OrePrefixes.dust, 1),
+ naquadriaEarth.get(OrePrefixes.dust, 1)
+ },
+ new int[]{10000, 100},
+ 100,
+ 2
+ );
+
+ GT_Values.RA.addPulveriserRecipe(
+ ItemRefer.Naquadria_Mass.get(1),
+ new ItemStack[]{
+ naquadriaEarth.get(OrePrefixes.dust, 1),
+ naquadriaEarth.get(OrePrefixes.dust, 1)
+ },
+ new int[]{10000, 100},
+ 100,
+ 2
+ );
+
+ GT_Values.RA.addBlastRecipe(
+ GT_OreDictUnificator.get(OrePrefixes.block, Materials.Silicon, 16),
+ naquadahine.get(OrePrefixes.dust, 1),
+ Materials.Argon.getGas(8000),
+ null,
+ ItemList.Circuit_Silicon_Ingot3.get(1),
+ null,
+ 1000,
+ 7680,
+ 4484
+ );
+
+ GT_Values.RA.addChemicalRecipe(
+ naquadahine.get(OrePrefixes.dust, 1),
+ Materials.Sodium.getDust(1),
+ Materials.Naquadah.getDust(1),
+ 10,
+ 1920
+ );
+
+ GT_Values.RA.addBlastRecipe(
+ naquadahEarth.get(OrePrefixes.dust, 2),
+ GT_Utility.getIntegratedCircuit(2),
+ Materials.Nitrogen.getGas(1000),
+ null,
+ Materials.Naquadah.getNuggets(3),
+ null,
+ 2400,
+ 7680,
+ 5000
+ );
+
+ GT_Values.RA.addMultiblockChemicalRecipe(
+ new ItemStack[]{
+ GT_Utility.getIntegratedCircuit(24)
+ },
+ new FluidStack[]{
+ Materials.Ethylene.getGas(1000),
+ FluidRegistry.getFluidStack("steam", 2000)
+ },
+ new FluidStack[]{
+ Materials.Ethanol.getFluid(1000)
+ },
+ null,
+ 400,
+ 480
+ );
+
+ GT_Values.RA.addChemicalRecipeForBasicMachineOnly(
+ Materials.Ethylene.getCells(1),
+ GT_Utility.getIntegratedCircuit(24),
+ FluidRegistry.getFluidStack("steam", 2000),
+ null,
+ Materials.Ethanol.getCells(1),
+ null,
+ 400,
+ 480
+ );
+
+ GT_Values.RA.addVacuumFreezerRecipe(
+ GT_OreDictUnificator.get(OrePrefixes.ingotHot, Materials.Naquadah, 1),
+ GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Naquadah, 1),
+ 330,
+ 7680
+ );
+ }
+
+ public static void SmallRecipeChange() {
+
+ GT_Recipe tRecipe;
+
+ tRecipe = GT_Recipe.GT_Recipe_Map.sChemicalRecipes.findRecipe(
+ null, false, 1 << 30,
+ new FluidStack[]{Materials.SulfuricAcid.getFluid(500)},
+ GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Platinum, 16),
+ ItemList.Empty_Board_Elite.get(2)
+ );
+ if (tRecipe != null) {
+ GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList.remove(tRecipe);
+ GT_Recipe tRecipe2 = tRecipe.copy();
+ tRecipe2.mInputs = new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Naquadah, 8), ItemList.Empty_Board_Elite.get(2)};
+ GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList.add(tRecipe2);
+ GT_Recipe.GT_Recipe_Map.sChemicalRecipes.reInit();
+ }
+
+ tRecipe = GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.findRecipe(
+ null, false, 1 << 30,
+ new FluidStack[]{Materials.SulfuricAcid.getFluid(500)},
+ GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Platinum, 16),
+ ItemList.Empty_Board_Elite.get(2)
+ );
+ if (tRecipe != null) {
+ GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList.remove(tRecipe);
+ GT_Recipe tRecipe2 = tRecipe.copy();
+ tRecipe2.mInputs = new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Naquadah, 8), ItemList.Empty_Board_Elite.get(2)};
+ GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList.add(tRecipe2);
+ GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.reInit();
+ }
+
+ tRecipe = GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.findRecipe(
+ null, false, 1 << 30,
+ new FluidStack[]{Materials.Polybenzimidazole.getMolten(36)},
+ GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole, 2),
+ GT_OreDictUnificator.get(OrePrefixes.foil, Materials.HSSS, 1),
+ GT_Utility.getIntegratedCircuit(1)
+ );
+ if (tRecipe != null) {
+ GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.mRecipeList.remove(tRecipe);
+ GT_Recipe tRecipe2 = tRecipe.copy();
+ tRecipe2.mInputs = new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Polybenzimidazole, 2), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.NaquadahEnriched, 1)};
+ GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.mRecipeList.add(tRecipe2);
+ GT_Recipe.GT_Recipe_Map.sAssemblerRecipes.reInit();
+ }
+ }
+
+ public static void Remover() {
+
+ if (!EnableNaquadahRework) return;
+
+ GT_Log.out.print(GoodGenerator.MOD_ID + ": Begin to remove pure Naquadah, Enriched Naquadah and Naquadria.\n");
+
+ HashSet<GT_Recipe> remove = new HashSet<>(5000);
+ HashSet<GT_Recipe> reAdd = new HashSet<>(5000);
+
+ //For Crusher
+ for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.mRecipeList) {
+ ItemStack input = recipe.mInputs[0];
+ if (GT_Utility.isStackValid(input)) {
+ int[] oreDict = OreDictionary.getOreIDs(input);
+ for (int oreDictID : oreDict) {
+ if ((OreDictionary.getOreName(oreDictID).startsWith("ore") || OreDictionary.getOreName(oreDictID).startsWith("crushed")) && OreDictionary.getOreName(oreDictID).contains("Naq")) {
+ GT_Recipe tRecipe = recipe.copy();
+ for (int i = 0; i < tRecipe.mOutputs.length; i ++) {
+ if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue;
+ if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDust(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dust, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDust(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dust, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDust(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dust, 1));
+ }
+ }
+ if (!tRecipe.equals(recipe)){
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ break;
+ }
+ }
+ }
+ }
+ GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.mRecipeList.removeAll(remove);
+ GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.mRecipeList.addAll(reAdd);
+ GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.reInit();
+
+ GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");
+
+ remove.clear();
+ reAdd.clear();
+
+ GT_Log.out.print("Crusher done!\n");
+
+ //For Washer
+ for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.mRecipeList) {
+ ItemStack input = recipe.mInputs[0];
+ if (GT_Utility.isStackValid(input)) {
+ int[] oreDict = OreDictionary.getOreIDs(input);
+ for (int oreDictID : oreDict) {
+ if (OreDictionary.getOreName(oreDictID).startsWith("crushed") && OreDictionary.getOreName(oreDictID).contains("Naq")) {
+ GT_Recipe tRecipe = recipe.copy();
+ for (int i = 0; i < tRecipe.mOutputs.length; i ++) {
+ if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue;
+ if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDustTiny(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dustTiny, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDustTiny(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dustTiny, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDustTiny(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dustTiny, 1));
+ }
+ }
+ if (!tRecipe.equals(recipe)){
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ break;
+ }
+ }
+ }
+ }
+ GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.mRecipeList.removeAll(remove);
+ GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.mRecipeList.addAll(reAdd);
+ GT_Recipe.GT_Recipe_Map.sOreWasherRecipes.reInit();
+
+ GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");
+
+ remove.clear();
+ reAdd.clear();
+
+ GT_Log.out.print("Washer done!\n");
+
+ //For Thermal Centrifuge
+ for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes.mRecipeList) {
+ ItemStack input = recipe.mInputs[0];
+ if (GT_Utility.isStackValid(input)) {
+ int[] oreDict = OreDictionary.getOreIDs(input);
+ for (int oreDictID : oreDict) {
+ if (OreDictionary.getOreName(oreDictID).startsWith("crushed") && OreDictionary.getOreName(oreDictID).contains("Naq")) {
+ GT_Recipe tRecipe = recipe.copy();
+ for (int i = 0; i < tRecipe.mOutputs.length; i ++) {
+ if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue;
+ if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDustTiny(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dustTiny, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDustTiny(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dustTiny, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDustTiny(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dustTiny, 1));
+ }
+ }
+ if (!tRecipe.equals(recipe)){
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ break;
+ }
+ }
+ }
+ }
+ GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes.mRecipeList.removeAll(remove);
+ GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes.mRecipeList.addAll(reAdd);
+ GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes.reInit();
+
+ GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");
+
+ remove.clear();
+ reAdd.clear();
+
+ GT_Log.out.print("Thermal Centrifuge done!\n");
+
+ //For Centrifuge
+ for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.mRecipeList) {
+ ItemStack input = null;
+ if (recipe.mInputs.length > 0) input = recipe.mInputs[0];
+ if (GT_Utility.isStackValid(input)) {
+ int[] oreDict = OreDictionary.getOreIDs(input);
+ if (input.isItemEqual(GT_Bees.combs.getStackForType(CombType.DOB))){
+ GT_Recipe tRecipe = recipe.copy();
+ for (int i = 0; i < tRecipe.mOutputs.length; i ++) {
+ if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue;
+ if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDustTiny(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dustTiny, 1));
+ }
+ }
+ if (!tRecipe.equals(recipe)){
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ }
+ else for (int oreDictID : oreDict) {
+ if (OreDictionary.getOreName(oreDictID).startsWith("dustPureNaq") || OreDictionary.getOreName(oreDictID).startsWith("dustImpureNaq") || OreDictionary.getOreName(oreDictID).startsWith("dustSpace") || OreDictionary.getOreName(oreDictID).startsWith("dustNaq")) {
+ GT_Recipe tRecipe = recipe.copy();
+ for (int i = 0; i < tRecipe.mOutputs.length; i ++) {
+ if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue;
+ if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDustTiny(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dustTiny, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDustTiny(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dustTiny, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDustTiny(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dustTiny, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDust(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dust, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDust(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dust, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDust(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dust, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDustSmall(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dustSmall, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDustSmall(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dustSmall, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDustSmall(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dustSmall, 1));
+ }
+ }
+ if (!tRecipe.equals(recipe)){
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ break;
+ }
+ }
+ }
+ }
+ GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.mRecipeList.removeAll(remove);
+ GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.mRecipeList.addAll(reAdd);
+ GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.reInit();
+
+ GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");
+
+ remove.clear();
+ reAdd.clear();
+
+ GT_Log.out.print("Centrifuge done!\n");
+
+ //For Hammer
+ for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sHammerRecipes.mRecipeList) {
+ ItemStack input = recipe.mInputs[0];
+ if (GT_Utility.isStackValid(input)) {
+ int[] oreDict = OreDictionary.getOreIDs(input);
+ for (int oreDictID : oreDict) {
+ if (OreDictionary.getOreName(oreDictID).startsWith("crushed") && OreDictionary.getOreName(oreDictID).contains("Naq")) {
+ GT_Recipe tRecipe = recipe.copy();
+ for (int i = 0; i < tRecipe.mOutputs.length; i ++) {
+ if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue;
+ if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDust(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dust, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDust(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, enrichedNaquadahEarth.get(OrePrefixes.dust, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDust(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dust, 1));
+ }
+ }
+ if (!tRecipe.equals(recipe)){
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ break;
+ }
+ }
+ }
+ }
+ GT_Recipe.GT_Recipe_Map.sHammerRecipes.mRecipeList.removeAll(remove);
+ GT_Recipe.GT_Recipe_Map.sHammerRecipes.mRecipeList.addAll(reAdd);
+ GT_Recipe.GT_Recipe_Map.sHammerRecipes.reInit();
+
+ GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");
+
+ remove.clear();
+ reAdd.clear();
+
+ GT_Log.out.print("Hammer done!\n");
+
+ //For Chemical Reactor
+ for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList) {
+ if (recipe.mFluidOutputs == null) continue;
+ boolean isAny = false;
+ for (int i = 0; i < recipe.mFluidOutputs.length; i ++) {
+ if (recipe.mFluidOutputs[i] == null) continue;
+ if (recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadah.getMolten(1)) ||
+ recipe.mFluidOutputs[i].isFluidEqual(Materials.NaquadahEnriched.getMolten(1)) ||
+ recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadria.getMolten(1))) {
+ isAny = true;
+ break;
+ }
+ }
+ if (!isAny) continue;
+ GT_Recipe tRecipe = recipe.copy();
+ for (int i = 0; i < recipe.mFluidOutputs.length; i ++) {
+ if (recipe.mFluidOutputs[i] == null) continue;
+ if (recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadah.getMolten(1))) {
+ tRecipe.mFluidOutputs[i] = naquadahGoo.getFluidOrGas(recipe.mFluidOutputs[i].amount * 2);
+ } else if (recipe.mFluidOutputs[i].isFluidEqual(Materials.NaquadahEnriched.getMolten(1))) {
+ tRecipe.mFluidOutputs[i] = enrichedNaquadahGoo.getFluidOrGas(recipe.mFluidOutputs[i].amount * 2);
+ } else if (recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadria.getMolten(1))) {
+ tRecipe.mFluidOutputs[i] = naquadriaGoo.getFluidOrGas(recipe.mFluidOutputs[i].amount * 2);
+ }
+ }
+ if (!tRecipe.equals(recipe)) {
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ }
+ GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList.removeAll(remove);
+ GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList.addAll(reAdd);
+ GT_Recipe.GT_Recipe_Map.sChemicalRecipes.reInit();
+
+ GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");
+
+ remove.clear();
+ reAdd.clear();
+
+ GT_Log.out.print("Chemical Reactor done!\n");
+
+ //For Multi Chemical Reactor
+ for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList) {
+ if (recipe.mFluidOutputs == null) continue;
+ boolean isAny = false;
+ for (int i = 0; i < recipe.mFluidOutputs.length; i ++) {
+ if (recipe.mFluidOutputs[i] == null) continue;
+ if (recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadah.getMolten(1)) ||
+ recipe.mFluidOutputs[i].isFluidEqual(Materials.NaquadahEnriched.getMolten(1)) ||
+ recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadria.getMolten(1))) {
+ isAny = true;
+ break;
+ }
+ }
+ if (!isAny) continue;
+ GT_Recipe tRecipe = recipe.copy();
+ for (int i = 0; i < recipe.mFluidOutputs.length; i ++) {
+ if (recipe.mFluidOutputs[i] == null) continue;
+ if (recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadah.getMolten(1))) {
+ tRecipe.mFluidOutputs[i] = naquadahGoo.getFluidOrGas(recipe.mFluidOutputs[i].amount * 2);
+ } else if (recipe.mFluidOutputs[i].isFluidEqual(Materials.NaquadahEnriched.getMolten(1))) {
+ tRecipe.mFluidOutputs[i] = enrichedNaquadahGoo.getFluidOrGas(recipe.mFluidOutputs[i].amount * 2);
+ } else if (recipe.mFluidOutputs[i].isFluidEqual(Materials.Naquadria.getMolten(1))) {
+ tRecipe.mFluidOutputs[i] = naquadriaGoo.getFluidOrGas(recipe.mFluidOutputs[i].amount * 2);
+ }
+ }
+ if (!tRecipe.equals(recipe)) {
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ }
+ GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList.removeAll(remove);
+ GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList.addAll(reAdd);
+ GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.reInit();
+
+ GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");
+
+ remove.clear();
+ reAdd.clear();
+
+ GT_Log.out.print("Multi Chemical Reactor done!\n");
+
+ if (Loader.isModLoaded("miscutils")) {
+ //For Multi Centrifuge
+ //Blame alk. She made some shit in it, NEI will break down if anyone modify the hash list directly.
+ GTPP_Recipe.GTPP_Recipe_Map.sMultiblockCentrifugeRecipes_GT.mRecipeList.clear();
+ RecipeGen_MultisUsingFluidInsteadOfCells.generateRecipesNotUsingCells(GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes, GTPP_Recipe.GTPP_Recipe_Map.sMultiblockCentrifugeRecipes_GT);
+ GTPP_Recipe.GTPP_Recipe_Map.sMultiblockCentrifugeRecipes_GT.reInit();
+
+ //For Simple Washer
+ for (GT_Recipe recipe : GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes.mRecipeList) {
+ ItemStack input = recipe.mInputs[0];
+ if (GT_Utility.isStackValid(input)) {
+ int[] oreDict = OreDictionary.getOreIDs(input);
+ for (int oreDictID : oreDict) {
+ if (OreDictionary.getOreName(oreDictID).startsWith("dustImpureNaq")) {
+ GT_Recipe tRecipe = recipe.copy();
+ for (int i = 0; i < tRecipe.mOutputs.length; i ++) {
+ if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue;
+ if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDust(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize, naquadahEarth.get(OrePrefixes.dust, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDust(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize, enrichedNaquadahEarth.get(OrePrefixes.dust, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDust(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize, naquadriaEarth.get(OrePrefixes.dust, 1));
+ }
+ }
+ if (!tRecipe.equals(recipe)){
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ break;
+ }
+ }
+ }
+ }
+ GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes.mRecipeList.removeAll(remove);
+ GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes.mRecipeList.addAll(reAdd);
+ GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes.reInit();
+
+ GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");
+
+ remove.clear();
+ reAdd.clear();
+
+ GT_Log.out.print("Simple Washer done!\n");
+ }
+
+ //For ByProduct List
+ for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sByProductList.mRecipeList) {
+ ItemStack input = recipe.mInputs[0];
+ if (GT_Utility.isStackValid(input)) {
+ int[] oreDict = OreDictionary.getOreIDs(input);
+ for (int oreDictID : oreDict) {
+ if (OreDictionary.getOreName(oreDictID).startsWith("ore") && OreDictionary.getOreName(oreDictID).contains("Naq")) {
+ GT_Recipe tRecipe = recipe.copy();
+ for (int i = 0; i < tRecipe.mOutputs.length; i ++) {
+ if (!GT_Utility.isStackValid(tRecipe.mOutputs[i])) continue;
+ if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDust(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize, naquadahEarth.get(OrePrefixes.dust, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDust(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize, enrichedNaquadahEarth.get(OrePrefixes.dust, 1));
+ } else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDust(1))) {
+ tRecipe.mOutputs[i] = GT_Utility.copyAmount(tRecipe.mOutputs[i].stackSize, naquadriaEarth.get(OrePrefixes.dust, 1));
+ }
+ }
+ if (!tRecipe.equals(recipe)){
+ reAdd.add(tRecipe);
+ remove.add(recipe);
+ }
+ break;
+ }
+ }
+ }
+ }
+ GT_Recipe.GT_Recipe_Map.sByProductList.mRecipeList.removeAll(remove);
+ GT_Recipe.GT_Recipe_Map.sByProductList.mRecipeList.addAll(reAdd);
+ GT_Recipe.GT_Recipe_Map.sByProductList.reInit();
+
+ GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");
+
+ remove.clear();
+ reAdd.clear();
+
+ GT_Log.out.print("ByProduct List done!\n");
+
+ //For Cauldron Wash
+ registerCauldronCleaningFor(Materials.Naquadah, naquadahEarth.getBridgeMaterial());
+ registerCauldronCleaningFor(Materials.NaquadahEnriched, enrichedNaquadahEarth.getBridgeMaterial());
+ registerCauldronCleaningFor(Materials.Naquadria, naquadriaEarth.getBridgeMaterial());
+ GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace 3! ");
+ GT_Log.out.print("Cauldron Wash done!\n");
+
+ //For Crafting Table
+ CraftingManager.getInstance().getRecipeList().forEach(NaquadahReworkRecipeLoader::replaceInCraftTable);
+
+ GT_Log.out.print(GoodGenerator.MOD_ID + ": Replace Unknown! ");
+ GT_Log.out.print("Crafting Table done!\n");
+ }
+
+ //I don't understand. . .
+ //I use and copy some private methods in Bartworks because his system runs well.
+ //Bartworks is under MIT License
+ /*
+ * Copyright (c) 2018-2020 bartimaeusnek
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+ public static void replaceInCraftTable(Object obj) {
+
+ Constructor<?> cs = null;
+ PlatinumSludgeOverHaul BartObj = null;
+ try {
+ cs = PlatinumSludgeOverHaul.class.getDeclaredConstructor();
+ cs.setAccessible(true);
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ }
+
+ if (cs == null) return;
+
+ try {
+ BartObj = (PlatinumSludgeOverHaul)cs.newInstance();
+ } catch (IllegalAccessException | InstantiationException | InvocationTargetException e) {
+ e.printStackTrace();
+ }
+
+ Method recipeCheck = null;
+
+ try {
+ recipeCheck = PlatinumSludgeOverHaul.class.getDeclaredMethod("checkRecipe", Object.class, Materials.class);
+ recipeCheck.setAccessible(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ String inputName = "output";
+ String inputItemName = "input";
+ if (!(obj instanceof ShapedOreRecipe || obj instanceof ShapelessOreRecipe)){
+ if (obj instanceof ShapedRecipes || (obj instanceof ShapelessRecipes)) {
+ inputName = "recipeOutput";
+ inputItemName = "recipeItems";
+ }
+ }
+ IRecipe recipe = (IRecipe) obj;
+ ItemStack result = recipe.getRecipeOutput();
+
+ Field out = FieldUtils.getDeclaredField(recipe.getClass(), inputName, true);
+ if (out == null)
+ out = FieldUtils.getField(recipe.getClass(), inputName, true);
+
+ Field in = FieldUtils.getDeclaredField(recipe.getClass(), inputItemName, true);
+ if (in == null)
+ in = FieldUtils.getField(recipe.getClass(), inputItemName, true);
+ if (in == null)
+ return;
+
+ //this part here is NOT MIT LICENSED BUT LICSENSED UNDER THE Apache License, Version 2.0!
+ try {
+ if (Modifier.isFinal(in.getModifiers())) {
+ // Do all JREs implement Field with a private ivar called "modifiers"?
+ Field modifiersField = Field.class.getDeclaredField("modifiers");
+ boolean doForceAccess = !modifiersField.isAccessible();
+ if (doForceAccess) {
+ modifiersField.setAccessible(true);
+ }
+ try {
+ modifiersField.setInt(in, in.getModifiers() & ~Modifier.FINAL);
+ } finally {
+ if (doForceAccess) {
+ modifiersField.setAccessible(false);
+ }
+ }
+ }
+ } catch (NoSuchFieldException ignored) {
+ // The field class contains always a modifiers field
+ } catch (IllegalAccessException ignored) {
+ // The modifiers field is made accessible
+ }
+ // END OF APACHE COMMONS COLLECTION COPY
+
+ Object input;
+ try {
+ input = in.get(obj);
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ return;
+ }
+
+ if (out == null || recipeCheck == null) return;
+
+ if (GT_Utility.areStacksEqual(result, Materials.Naquadah.getDust(1), true)) {
+
+ recipeCheck.setAccessible(true);
+ boolean isOk = true;
+
+ try {
+ isOk = (boolean)recipeCheck.invoke(BartObj, input, Materials.Naquadah);
+ } catch (InvocationTargetException | IllegalAccessException ignored) {
+ }
+
+ if (isOk) return;
+ try {
+ out.set(recipe, naquadahEarth.get(OrePrefixes.dust, 2));
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ } else if (GT_Utility.areStacksEqual(result, Materials.NaquadahEnriched.getDust(1), true)) {
+
+ recipeCheck.setAccessible(true);
+ boolean isOk = true;
+
+ try {
+ isOk = (boolean)recipeCheck.invoke(BartObj, input, Materials.NaquadahEnriched);
+ } catch (InvocationTargetException | IllegalAccessException ignored) {
+ }
+
+ if (isOk) return;
+ try {
+ out.set(recipe, enrichedNaquadahEarth.get(OrePrefixes.dust, 2));
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ } else if (GT_Utility.areStacksEqual(result, Materials.Naquadria.getDust(1), true)) {
+
+ recipeCheck.setAccessible(true);
+ boolean isOk = true;
+
+ try {
+ isOk = (boolean)recipeCheck.invoke(BartObj, input, Materials.Naquadria);
+ } catch (InvocationTargetException | IllegalAccessException ignored) {
+ }
+
+ if (isOk) return;
+ try {
+ out.set(recipe, naquadriaEarth.get(OrePrefixes.dust, 2));
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+}