aboutsummaryrefslogtreecommitdiff
path: root/lath/src/main/java/com/elisis/gtnhlanth/loader/ZPMRubberChanges.java
diff options
context:
space:
mode:
authorRaven Szewczyk <git@eigenraven.me>2024-05-25 15:39:05 +0100
committerRaven Szewczyk <git@eigenraven.me>2024-05-25 15:39:05 +0100
commitdb88561e8e21fb8b067bf5bf1a1753697d36ed29 (patch)
tree7a928f7502c46571b41dfa647151c253064cd5fb /lath/src/main/java/com/elisis/gtnhlanth/loader/ZPMRubberChanges.java
parent9069e2aa47be7e6fb6ab1a2a29c5887ec2bfb2d7 (diff)
downloadGT5-Unofficial-db88561e8e21fb8b067bf5bf1a1753697d36ed29.tar.gz
GT5-Unofficial-db88561e8e21fb8b067bf5bf1a1753697d36ed29.tar.bz2
GT5-Unofficial-db88561e8e21fb8b067bf5bf1a1753697d36ed29.zip
Merge Lanthanides sources
Diffstat (limited to 'lath/src/main/java/com/elisis/gtnhlanth/loader/ZPMRubberChanges.java')
-rw-r--r--lath/src/main/java/com/elisis/gtnhlanth/loader/ZPMRubberChanges.java409
1 files changed, 0 insertions, 409 deletions
diff --git a/lath/src/main/java/com/elisis/gtnhlanth/loader/ZPMRubberChanges.java b/lath/src/main/java/com/elisis/gtnhlanth/loader/ZPMRubberChanges.java
deleted file mode 100644
index 52ab4f15d1..0000000000
--- a/lath/src/main/java/com/elisis/gtnhlanth/loader/ZPMRubberChanges.java
+++ /dev/null
@@ -1,409 +0,0 @@
-package com.elisis.gtnhlanth.loader;
-
-import static gregtech.api.enums.OrePrefixes.*;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.function.Consumer;
-import java.util.function.Predicate;
-
-import net.minecraft.item.ItemStack;
-import net.minecraft.item.crafting.CraftingManager;
-import net.minecraft.item.crafting.IRecipe;
-import net.minecraftforge.fluids.Fluid;
-import net.minecraftforge.fluids.FluidStack;
-
-import org.apache.commons.lang3.reflect.FieldUtils;
-import org.apache.commons.lang3.reflect.MethodUtils;
-
-import com.elisis.gtnhlanth.common.register.WerkstoffMaterialPool;
-import com.github.bartimaeusnek.bartworks.system.material.Werkstoff;
-import com.github.bartimaeusnek.bartworks.util.BW_Util;
-
-import gregtech.api.enums.ItemList;
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.Mods;
-import gregtech.api.enums.OrePrefixes;
-import gregtech.api.objects.ItemData;
-import gregtech.api.recipe.RecipeMap;
-import gregtech.api.util.GT_Log;
-import gregtech.api.util.GT_ModHandler;
-import gregtech.api.util.GT_OreDictUnificator;
-import gregtech.api.util.GT_Recipe;
-import gregtech.api.util.GT_Recipe.GT_Recipe_AssemblyLine;
-import gregtech.api.util.GT_Shaped_Recipe;
-import gregtech.api.util.GT_Utility;
-
-public class ZPMRubberChanges implements Runnable {
-
- @SuppressWarnings("unchecked")
- public void run() {
-
- List<IRecipe> bufferedRecipeList = null;
-
- try {
- bufferedRecipeList = (List<IRecipe>) FieldUtils
- .getDeclaredField(GT_ModHandler.class, "sBufferRecipeList", true)
- .get(null);
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- }
-
- HashSet<ItemStack> ZPMPlusComponents = new HashSet<>();
- OrePrefixes[] RubberGenerated = { plate };
-
- Arrays.stream(ItemList.values())
- .filter(
- item -> (item.toString()
- .contains("ZPM")
- || item.toString()
- .contains("UV")
- || item.toString()
- .contains("UHV")
- || item.toString()
- .contains("UEV"))
- && item.hasBeenSet())
- .forEach(item -> ZPMPlusComponents.add(item.get(1)));
-
- if (Mods.NewHorizonsCoreMod.isModLoaded()) {
- addDreamcraftItemListItems(ZPMPlusComponents);
- }
-
- for (ItemStack component : ZPMPlusComponents) {
- GT_Log.out.print(component.getDisplayName() + " ");
- }
-
- replaceAllRecipes(ZPMPlusComponents, RubberGenerated, bufferedRecipeList);
- }
-
- private static void replaceAllRecipes(Collection<ItemStack> ZPMPlusComponents, OrePrefixes[] RubberGenerated,
- List<IRecipe> bufferedRecipeList) {
-
- for (GT_Recipe_AssemblyLine sAssemblylineRecipe : GT_Recipe_AssemblyLine.sAssemblylineRecipes) {
- for (ItemStack stack : ZPMPlusComponents) {
- rewriteAsslineRecipes(stack, RubberGenerated, sAssemblylineRecipe);
- }
- }
-
- for (RecipeMap<?> map : RecipeMap.ALL_RECIPE_MAPS.values()) {
- for (GT_Recipe recipe : map.getAllRecipes()) {
- for (ItemStack stack : ZPMPlusComponents) {
- rewriteMachineRecipes(stack, RubberGenerated, recipe);
- }
- }
- }
-
- for (ItemStack stack : ZPMPlusComponents) {
- Predicate recipeFilter = obj -> obj instanceof GT_Shaped_Recipe
- && GT_Utility.areStacksEqual(((GT_Shaped_Recipe) obj).getRecipeOutput(), stack, true);
- rewriteCraftingRecipes(bufferedRecipeList, RubberGenerated, recipeFilter);
- }
- /*
- * for (ItemStack stack : LuVMachines) { Predicate recipeFilter = obj -> obj instanceof GT_Shaped_Recipe &&
- * GT_Utility.areStacksEqual(((GT_Shaped_Recipe) obj).getRecipeOutput(), stack, true);
- * rewriteCraftingRecipes(bufferedRecipeList, LuVMaterialsGenerated, recipeFilter); }
- */
- }
-
- private static void addDreamcraftItemListItems(Collection ZPMPlusComponents) {
- try {
- Class customItemListClass = Class.forName("com.dreammaster.gthandler.CustomItemList");
- Method hasnotBeenSet = MethodUtils.getAccessibleMethod(customItemListClass, "hasBeenSet");
- Method get = MethodUtils.getAccessibleMethod(customItemListClass, "get", long.class, Object[].class);
- for (Enum customItemList : (Enum[]) FieldUtils.getField(customItemListClass, "$VALUES", true)
- .get(null)) {
- if ((customItemList.toString()
- .contains("ZPM")
- || customItemList.toString()
- .contains("UV")
- || customItemList.toString()
- .contains("UHV")
- || customItemList.toString()
- .contains("UEV"))
- && (boolean) hasnotBeenSet.invoke(customItemList))
- ZPMPlusComponents.add((ItemStack) get.invoke(customItemList, 1, new Object[0]));
- }
- } catch (IllegalAccessException | ClassNotFoundException | InvocationTargetException e) {
- e.printStackTrace();
- }
- }
-
- private static void rewriteCraftingRecipes(List<IRecipe> bufferedRecipeList, OrePrefixes[] RubberGenerated,
- Predicate recipeFilter) {
- for (OrePrefixes prefixes : RubberGenerated) {
-
- Consumer recipeAction = (obj) -> {
- ZPMRubberChanges.doStacksCointainAndReplace(
- ((GT_Shaped_Recipe) obj).getInput(),
- GT_OreDictUnificator.get(prefixes, Materials.Silicone, 1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
- ZPMRubberChanges.doStacksCointainAndReplace(
- ((GT_Shaped_Recipe) obj).getInput(),
- GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
- };
-
- /*
- * || ZPMRubberChanges.doStacksCointainAndReplace(((GT_Shaped_Recipe) obj).getInput(),
- * GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1), true,
- * WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
- */
-
- CraftingManager.getInstance()
- .getRecipeList()
- .stream()
- .filter(recipeFilter)
- .forEach(recipeAction);
- bufferedRecipeList.stream()
- .filter(recipeFilter)
- .forEach(recipeAction);
- }
- }
-
- private static void rewriteMachineRecipes(ItemStack stack, OrePrefixes[] RubberGenerated, GT_Recipe recipe) {
- if (ZPMRubberChanges.doStacksCointainAndReplace(recipe.mInputs, stack, false)) {
- for (OrePrefixes prefixes : RubberGenerated) {
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mInputs,
- GT_OreDictUnificator.get(prefixes, Materials.Silicone, 1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mOutputs,
- GT_OreDictUnificator.get(prefixes, Materials.Silicon, 1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
-
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mInputs,
- GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mOutputs,
- GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
- }
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mFluidInputs,
- Materials.Silicone.getMolten(1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
- .getFluid());
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mFluidOutputs,
- Materials.Silicone.getMolten(1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
- .getFluid());
-
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mFluidInputs,
- Materials.StyreneButadieneRubber.getMolten(1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
- .getFluid());
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mFluidOutputs,
- Materials.StyreneButadieneRubber.getMolten(1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
- .getFluid());
- }
- if (ZPMRubberChanges.doStacksCointainAndReplace(recipe.mOutputs, stack, false)) {
- for (OrePrefixes prefixes : RubberGenerated) {
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mInputs,
- GT_OreDictUnificator.get(prefixes, Materials.Silicone, 1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mOutputs,
- GT_OreDictUnificator.get(prefixes, Materials.Silicone, 1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
-
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mInputs,
- GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mOutputs,
- GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
- }
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mFluidInputs,
- Materials.Silicone.getMolten(1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
- .getFluid());
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mFluidOutputs,
- Materials.Silicone.getMolten(1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
- .getFluid());
-
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mFluidInputs,
- Materials.StyreneButadieneRubber.getMolten(1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
- .getFluid());
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mFluidOutputs,
- Materials.StyreneButadieneRubber.getMolten(1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
- .getFluid());
- }
- }
-
- private static void rewriteAsslineRecipes(ItemStack stack, OrePrefixes[] RubberGenerated,
- GT_Recipe.GT_Recipe_AssemblyLine recipe) {
- for (OrePrefixes prefixes : RubberGenerated) {
- if (ZPMRubberChanges.doStacksCointainAndReplace(recipe.mInputs, stack, false)) {
-
- GT_Log.out.print(Arrays.toString(recipe.mInputs));
-
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mInputs,
- GT_OreDictUnificator.get(prefixes, Materials.Silicone, 1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
- ZPMRubberChanges.doStacksCointainAndReplace(
- new Object[] { recipe.mOutput },
- GT_OreDictUnificator.get(prefixes, Materials.Silicone, 1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
-
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mInputs,
- GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
- ZPMRubberChanges.doStacksCointainAndReplace(
- new Object[] { recipe.mOutput },
- GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
- }
- if (ZPMRubberChanges.doStacksCointainAndReplace(new Object[] { recipe.mOutput }, stack, false)) {
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mInputs,
- GT_OreDictUnificator.get(prefixes, Materials.Silicone, 1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
- ZPMRubberChanges.doStacksCointainAndReplace(
- new Object[] { recipe.mOutput },
- GT_OreDictUnificator.get(prefixes, Materials.Silicone, 1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
-
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mInputs,
- GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
- ZPMRubberChanges.doStacksCointainAndReplace(
- new Object[] { recipe.mOutput },
- GT_OreDictUnificator.get(prefixes, Materials.StyreneButadieneRubber, 1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.get(prefixes));
- }
- }
- if (ZPMRubberChanges.doStacksCointainAndReplace(recipe.mInputs, stack, false)) {
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mFluidInputs,
- Materials.Silicone.getMolten(1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
- .getFluid());
-
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mFluidInputs,
- Materials.StyreneButadieneRubber.getMolten(1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
- .getFluid());
- }
- if (ZPMRubberChanges.doStacksCointainAndReplace(new Object[] { recipe.mOutput }, stack, false)) {
- ZPMRubberChanges.doStacksCointainAndReplace(
- recipe.mFluidInputs,
- Materials.StyreneButadieneRubber.getMolten(1),
- true,
- WerkstoffMaterialPool.PTMEGElastomer.getMolten(1)
- .getFluid());
- }
- }
-
- private static ItemStack[] replaceArrayWith(ItemStack[] stackArray, Materials source, Werkstoff target) {
- for (int i = 0; i < stackArray.length; i++) {
- ItemStack stack = stackArray[i];
- if (!BW_Util.checkStackAndPrefix(stack)) continue;
- stackArray[i] = replaceStackWith(stack, source, target);
- }
- return stackArray;
- }
-
- private static ItemStack replaceStackWith(ItemStack stack, Materials source, Werkstoff target) {
- ItemData ass = GT_OreDictUnificator.getAssociation(stack);
- if (ass.mMaterial.mMaterial.equals(source))
- if (target.hasItemType(ass.mPrefix)) stack = target.get(ass.mPrefix, stack.stackSize);
- return stack;
- }
-
- private static boolean doStacksCointainAndReplace(FluidStack[] stacks, FluidStack stack, boolean replace,
- Fluid... replacement) {
- boolean replaced = false;
- for (int i = 0; i < stacks.length; i++) {
- if (GT_Utility.areFluidsEqual(stack, stacks[i])) if (!replace) return true;
- else {
- int amount = stacks[i].amount;
- stacks[i] = new FluidStack(replacement[0], amount);
- replaced = true;
- }
- }
- return replaced;
- }
-
- private static boolean doStacksCointainAndReplace(Object[] stacks, ItemStack stack, boolean replace,
- ItemStack... replacement) {
- // GT_Log.out.print("In doStacksCointainAndReplace!\n");
- boolean replaced = false;
- for (int i = 0; i < stacks.length; i++) {
- if (!GT_Utility.isStackValid(stacks[i])) {
- if (stacks[i] instanceof ArrayList && ((ArrayList) stacks[i]).size() > 0) {
- if (GT_Utility.areStacksEqual(stack, (ItemStack) ((ArrayList) stacks[i]).get(0), true))
- if (!replace) return true;
- else {
- int amount = ((ItemStack) ((ArrayList) stacks[i]).get(0)).stackSize;
- stacks[i] = new ArrayList<>();
- ((ArrayList) stacks[i]).add(BW_Util.setStackSize(replacement[0], amount));
- replaced = true;
-
- GT_Log.out.print("Replaced recipe!: " + stack.getDisplayName() + " ");
- }
-
- } else continue;
- } else if (GT_Utility.areStacksEqual(stack, (ItemStack) stacks[i], true)) if (!replace) return true;
- else {
- int amount = ((ItemStack) stacks[i]).stackSize;
- stacks[i] = BW_Util.setStackSize(replacement[0], amount);
- replaced = true;
- }
- }
- return replaced;
- }
-}