aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>2020-01-16 18:45:58 +0100
committerbartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>2020-01-16 18:45:58 +0100
commit8ea5589fe926d3ce983eb3087a9fdbec24ba0c7a (patch)
tree37b2f4ea382c324a467cd9313e2f503e205ee31c
parent6a5213ca2fae939809f9520d3ab29a3471f9dab3 (diff)
downloadGT5-Unofficial-8ea5589fe926d3ce983eb3087a9fdbec24ba0c7a.tar.gz
GT5-Unofficial-8ea5589fe926d3ce983eb3087a9fdbec24ba0c7a.tar.bz2
GT5-Unofficial-8ea5589fe926d3ce983eb3087a9fdbec24ba0c7a.zip
Minor fixes
+ reworked LuVTierEnhancer + use of isAir() instead of block.equals(air) in base layer check method Signed-off-by: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> Former-commit-id: 743bbe8a3cf6847546a69eef2a6777c7947757df
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/LuVTierEnhancer.java162
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/AfterLuVTierEnhacement.java11
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java2
3 files changed, 115 insertions, 60 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/LuVTierEnhancer.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/LuVTierEnhancer.java
index 18651eb7f0..b63d7377b8 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/LuVTierEnhancer.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/LuVTierEnhancer.java
@@ -22,6 +22,7 @@
package com.github.bartimaeusnek.bartworks.system.material.GT_Enhancement;
+import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry;
import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader;
import com.github.bartimaeusnek.bartworks.system.material.processingLoaders.AfterLuVTierEnhacement;
import com.github.bartimaeusnek.bartworks.util.BW_Util;
@@ -41,9 +42,9 @@ import org.apache.commons.lang3.reflect.MethodUtils;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
+import java.util.*;
+import java.util.function.Consumer;
+import java.util.function.Predicate;
import static gregtech.api.enums.OrePrefixes.*;
@@ -51,79 +52,128 @@ import static gregtech.api.enums.OrePrefixes.*;
public class LuVTierEnhancer implements Runnable {
public void run() {
- LuVTierEnhancer.replaceAsslineRecipes();
+
List<IRecipe> bufferedRecipeList = null;
+
try {
bufferedRecipeList = (List<IRecipe>) FieldUtils.getDeclaredField(GT_ModHandler.class, "sBufferRecipeList", true).get(null);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
- assert bufferedRecipeList != null;
HashSet<ItemStack> LuVMachines = new HashSet<>();
+ LuVMachines.add(ItemRegistry.cal);
OrePrefixes[] LuVMaterialsGenerated = {dust, ingot, plate, stick, stickLong, rotor, plateDouble, plateDense};
- for (ItemList item : ItemList.values()) {
- if (item.toString().contains("LuV") && item.hasBeenSet())
- LuVMachines.add(item.get(1));
- }
+
+ Arrays.stream(ItemList.values())
+ .filter(item -> item.toString().contains("LuV") && item.hasBeenSet())
+ .forEach(item -> LuVMachines.add(item.get(1)));
+
if (Loader.isModLoaded("dreamcraft")) {
- 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("LuV") && (boolean) hasnotBeenSet.invoke(customItemList))
- LuVMachines.add((ItemStack) get.invoke(customItemList, 1, new Object[0]));
- }
- } catch (IllegalAccessException | ClassNotFoundException | InvocationTargetException e) {
- e.printStackTrace();
- }
+ addDreamcraftItemListItems(LuVMachines);
}
- GT_ModHandler.addCraftingRecipe(ItemList.Casing_LuV.get(1), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES, new Object[]{"PPP", "PwP", "PPP", 'P', WerkstoffLoader.LuVTierMaterial.get(plate)});
- for (ItemStack stack : LuVMachines) {
- for (GT_Recipe.GT_Recipe_Map map : GT_Recipe.GT_Recipe_Map.sMappings) {
- for (GT_Recipe recipe : map.mRecipeList) {
- for (OrePrefixes prefixes : LuVMaterialsGenerated) {
- if (LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, stack, false)) {
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mOutputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
- }
- if (LuVTierEnhancer.doStacksCointainAndReplace(recipe.mOutputs, stack, false)) {
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mOutputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
- }
- }
- if (LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, stack, false)) {
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mFluidInputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mFluidOutputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
- }
- if (LuVTierEnhancer.doStacksCointainAndReplace(recipe.mOutputs, stack, false)) {
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mFluidInputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mFluidOutputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
- }
+
+ GT_ModHandler.addCraftingRecipe(ItemList.Casing_LuV.get(1),
+ GT_ModHandler.RecipeBits.BUFFERED |
+ GT_ModHandler.RecipeBits.REVERSIBLE |
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE |
+ GT_ModHandler.RecipeBits.DELETE_ALL_OTHER_RECIPES,
+ new Object[]{
+ "PPP",
+ "PwP",
+ "PPP",
+ 'P', WerkstoffLoader.LuVTierMaterial.get(plate)
+ });
+
+ replaceAllRecipes(LuVMachines,LuVMaterialsGenerated,bufferedRecipeList);
+
+ AfterLuVTierEnhacement.run();
+ }
+
+ private static void replaceAllRecipes(Collection<ItemStack> LuVMachines, OrePrefixes[] LuVMaterialsGenerated, List<IRecipe> bufferedRecipeList){
+ LuVTierEnhancer.replaceOsmiridiumInLuVRecipes();
+ LuVMachines.stream().forEach(stack -> {
+
+ Predicate recipeFilter = obj -> obj instanceof GT_Shaped_Recipe && GT_Utility.areStacksEqual(((GT_Shaped_Recipe) obj).getRecipeOutput(), stack, true);
+
+ GT_Recipe.GT_Recipe_AssemblyLine.sAssemblylineRecipes.forEach(
+ recipe -> rewriteAsslineRecipes(stack, LuVMaterialsGenerated, recipe));
+
+ GT_Recipe.GT_Recipe_Map.sMappings.forEach(
+ map -> map.mRecipeList.forEach(
+ recipe -> rewriteMachineRecipes(stack, LuVMaterialsGenerated, recipe)));
+
+ rewriteCraftingRecipes(bufferedRecipeList, LuVMaterialsGenerated, recipeFilter);
}
+ );
+ }
+
+ private static void addDreamcraftItemListItems(Collection LuVMachines){
+ 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("LuV") && (boolean) hasnotBeenSet.invoke(customItemList))
+ LuVMachines.add((ItemStack) get.invoke(customItemList, 1, new Object[0]));
}
+ } catch (IllegalAccessException | ClassNotFoundException | InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private static void rewriteCraftingRecipes(List<IRecipe> bufferedRecipeList, OrePrefixes[] LuVMaterialsGenerated, Predicate recipeFilter){
+ for (OrePrefixes prefixes : LuVMaterialsGenerated) {
+
+ Consumer recipeAction = obj -> LuVTierEnhancer.doStacksCointainAndReplace(((GT_Shaped_Recipe) obj).getInput(),
+ GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true,
+ WerkstoffLoader.LuVTierMaterial.get(prefixes));
+
+ CraftingManager.getInstance().getRecipeList().stream().filter(recipeFilter).forEach(recipeAction);
+ bufferedRecipeList.stream().filter(recipeFilter).forEach(recipeAction);
+ }
+ }
+
+ private static void rewriteMachineRecipes(ItemStack stack, OrePrefixes[] LuVMaterialsGenerated, GT_Recipe recipe){
for (OrePrefixes prefixes : LuVMaterialsGenerated) {
- for (Object obj : CraftingManager.getInstance().getRecipeList()) {
- if (!(obj instanceof GT_Shaped_Recipe))
- continue;
- if (GT_Utility.areStacksEqual(((GT_Shaped_Recipe) obj).getRecipeOutput(), stack, true)) {
- LuVTierEnhancer.doStacksCointainAndReplace(((GT_Shaped_Recipe) obj).getInput(), GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
- }
+ if (LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, stack, false)) {
+ LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
+ LuVTierEnhancer.doStacksCointainAndReplace(recipe.mOutputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
}
- for (Object obj : bufferedRecipeList) {
- if (!(obj instanceof GT_Shaped_Recipe))
- continue;
- if (GT_Utility.areStacksEqual(((GT_Shaped_Recipe) obj).getRecipeOutput(), stack, true)) {
- LuVTierEnhancer.doStacksCointainAndReplace(((GT_Shaped_Recipe) obj).getInput(), GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
- }
+ if (LuVTierEnhancer.doStacksCointainAndReplace(recipe.mOutputs, stack, false)) {
+ LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
+ LuVTierEnhancer.doStacksCointainAndReplace(recipe.mOutputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
}
}
+ if (LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, stack, false)) {
+ LuVTierEnhancer.doStacksCointainAndReplace(recipe.mFluidInputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
+ LuVTierEnhancer.doStacksCointainAndReplace(recipe.mFluidOutputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
+ }
+ if (LuVTierEnhancer.doStacksCointainAndReplace(recipe.mOutputs, stack, false)) {
+ LuVTierEnhancer.doStacksCointainAndReplace(recipe.mFluidInputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
+ LuVTierEnhancer.doStacksCointainAndReplace(recipe.mFluidOutputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
+ }
+ }
+ private static void rewriteAsslineRecipes(ItemStack stack, OrePrefixes[] LuVMaterialsGenerated, GT_Recipe.GT_Recipe_AssemblyLine recipe){
+ for (OrePrefixes prefixes : LuVMaterialsGenerated) {
+ if (LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, stack, false)) {
+ LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
+ LuVTierEnhancer.doStacksCointainAndReplace(new Object[]{recipe.mOutput}, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
+ }
+ if (LuVTierEnhancer.doStacksCointainAndReplace(new Object[]{recipe.mOutput}, stack, false)) {
+ LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
+ LuVTierEnhancer.doStacksCointainAndReplace(new Object[]{recipe.mOutput}, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
+ }
+ }
+ if (LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, stack, false)) {
+ LuVTierEnhancer.doStacksCointainAndReplace(recipe.mFluidInputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
+ }
+ if (LuVTierEnhancer.doStacksCointainAndReplace(new Object[]{recipe.mOutput}, stack, false)) {
+ LuVTierEnhancer.doStacksCointainAndReplace(recipe.mFluidInputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
}
- new AfterLuVTierEnhacement().run();
}
- private static void replaceAsslineRecipes(){
+ private static void replaceOsmiridiumInLuVRecipes(){
for (GT_Recipe.GT_Recipe_AssemblyLine recipe_assemblyLine : GT_Recipe.GT_Recipe_AssemblyLine.sAssemblylineRecipes){
if (recipe_assemblyLine.mEUt > 6000)
continue;
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/AfterLuVTierEnhacement.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/AfterLuVTierEnhacement.java
index 09de02eeb2..2df54251eb 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/AfterLuVTierEnhacement.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/AfterLuVTierEnhacement.java
@@ -32,10 +32,12 @@ import gregtech.api.util.GT_OreDictUnificator;
import static gregtech.api.enums.OrePrefixes.dust;
import static gregtech.api.enums.OrePrefixes.dustSmall;
-public class AfterLuVTierEnhacement implements Runnable {
+public class AfterLuVTierEnhacement {
+
+ private AfterLuVTierEnhacement(){};
+
+ public static void run() {
- @Override
- public void run() {
GT_Values.RA.addCentrifugeRecipe(BW_NonMeta_MaterialItems.Depleted_Tiberium_1.get(1), null,null,WerkstoffLoader.Xenon.getFluidOrGas(1),
WerkstoffLoader.Zirconium.get(dust),
WerkstoffLoader.Zirconium.get(dust),
@@ -44,6 +46,7 @@ public class AfterLuVTierEnhacement implements Runnable {
GT_OreDictUnificator.get(dust, Materials.TungstenSteel, 8L),
GT_OreDictUnificator.get(dust, Materials.Platinum, 1L),
new int[]{10_000,5_000,5_000,2_500,10_000,10_000},250,2000);
+
GT_Values.RA.addCentrifugeRecipe(BW_NonMeta_MaterialItems.Depleted_Tiberium_2.get(1), null,null,WerkstoffLoader.Xenon.getFluidOrGas(2),
WerkstoffLoader.Zirconium.get(dust,2),
WerkstoffLoader.Zirconium.get(dust,2),
@@ -52,6 +55,7 @@ public class AfterLuVTierEnhacement implements Runnable {
GT_OreDictUnificator.get(dust, Materials.TungstenSteel, 18L),
GT_OreDictUnificator.get(dust, Materials.Platinum, 2L),
new int[]{10_000,5_000,5_000,2_500,10_000,10_000},500,2000);
+
GT_Values.RA.addCentrifugeRecipe(BW_NonMeta_MaterialItems.Depleted_Tiberium_4.get(1), null,null,WerkstoffLoader.Xenon.getFluidOrGas(4),
WerkstoffLoader.Zirconium.get(dust,4),
WerkstoffLoader.Zirconium.get(dust,4),
@@ -60,6 +64,7 @@ public class AfterLuVTierEnhacement implements Runnable {
GT_OreDictUnificator.get(dust, Materials.TungstenSteel, 38L),
GT_OreDictUnificator.get(dust, Materials.Platinum, 4L),
new int[]{10_000,5_000,5_000,2_500,10_000,10_000},1000,2000);
+
GT_Values.RA.addCentrifugeRecipe(BW_NonMeta_MaterialItems.Depleted_TheCoreCell.get(1), null,null,null,
ItemList.Depleted_Naquadah_4.get(8),
WerkstoffLoader.Zirconium.get(dust,64),
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java b/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java
index 89d4eea19a..02351a3f77 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java
@@ -445,7 +445,7 @@ public class BW_Util {
continue;
boolean b = Math.abs(x) < radius && Math.abs(z) != radius;
if (insideCheck && b) {
- if (!aBaseMetaTileEntity.getBlockOffset(xDir + x, y, zDir + z).equals(inside) && (aBaseMetaTileEntity.getMetaIDOffset(xDir + x, y, zDir + z) != dmginside || dmginside > (-1))) {
+ if (! (inside.equals(Blocks.air) ? aBaseMetaTileEntity.getAir(xDir + x, y, zDir + z) : aBaseMetaTileEntity.getBlockOffset(xDir + x, y, zDir + z).equals(inside) ) && (aBaseMetaTileEntity.getMetaIDOffset(xDir + x, y, zDir + z) != dmginside || dmginside > (-1))) {
if (!(allowHatches && (
((GT_MetaTileEntity_MultiBlockBase) aBaseMetaTileEntity.getMetaTileEntity()).addDynamoToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + x, y, zDir + z), aBaseCasingIndex) ||
((GT_MetaTileEntity_MultiBlockBase) aBaseMetaTileEntity.getMetaTileEntity()).addEnergyInputToMachineList(aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + x, y, zDir + z), aBaseCasingIndex) ||