From 872cf0ae43b07795e6a918613368ee0c20ff752a Mon Sep 17 00:00:00 2001 From: miozune Date: Fri, 15 Jul 2022 20:31:15 +0900 Subject: Fix accidental nerf to circuit assembler (#159) * Fix accidental nerf to circuit assembler * No hacky oredict Former-commit-id: a47e1c837c549ea03a9a3993052d90397568098b --- .../CircuitGeneration/CircuitImprintLoader.java | 17 ++--------- .../bartimaeusnek/bartworks/util/BW_Util.java | 34 ++++++++++++++++++++++ 2 files changed, 37 insertions(+), 14 deletions(-) (limited to 'src/main/java/com') diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/CircuitImprintLoader.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/CircuitImprintLoader.java index 409d69a8f4..b5e87461d8 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/CircuitImprintLoader.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/CircuitImprintLoader.java @@ -69,7 +69,7 @@ public class CircuitImprintLoader { rebuildCircuitAssemblerMap(toRem,toAdd); exchangeRecipesInList(toRem,toAdd); makeCircuitImprintRecipes(); - + toRem = null; toAdd = null; } @@ -117,17 +117,7 @@ public class CircuitImprintLoader { } private static boolean isCircuitOreDict(ItemStack item) { - int[] oreIDS = OreDictionary.getOreIDs(item); - - if (oreIDS.length < 1) - return false; - - for (int oreID : oreIDS) { - if (OreDictionary.getOreName(oreID).contains("Circuit") || OreDictionary.getOreName(oreID).contains("circuit")) - return true; - } - - return false; + return BW_Util.isTieredCircuit(item); } private static void exchangeRecipesInList(HashSet toRem, HashSet toAdd) { @@ -148,8 +138,7 @@ public class CircuitImprintLoader { public static GT_Recipe makeMoreExpensive(GT_Recipe original) { GT_Recipe newRecipe = original.copy(); for (ItemStack is : newRecipe.mInputs){ - int[] oreIDs = OreDictionary.getOreIDs(is); - if(oreIDs == null || oreIDs.length < 1 || !OreDictionary.getOreName(oreIDs[0]).contains("circuit")) { + if (!BW_Util.isTieredCircuit(is)) { is.stackSize = Math.min(is.stackSize * 6, 64); if (is.stackSize > is.getItem().getItemStackLimit() || is.stackSize > is.getMaxStackSize()) is.stackSize = is.getMaxStackSize(); 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 deee5a54e1..312c4be88a 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 @@ -49,6 +49,7 @@ import net.minecraft.item.crafting.CraftingManager; import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.ShapedOreRecipe; import org.apache.commons.lang3.reflect.FieldUtils; @@ -611,10 +612,43 @@ public class BW_Util { case "circuitSuperconductor": return 8; case "circuitInfinite": return 9; case "circuitBio": return 10; + case "circuitNano": + case "circuitOptical": + return 11; + case "circuitPiko": + case "circuitExotic": + return 12; + case "circuitQuantum": + case "circuitCosmic": + return 13; + case "circuitTranscendent": + return 14; default: return -1; } } + public static byte getCircuitTierFromItemStack(ItemStack stack) { + for (String oreName : getOreNames(stack)) { + byte tier = getCircuitTierFromOreDictName(oreName); + if (tier != -1) { + return tier; + } + } + return -1; + } + + public static boolean isTieredCircuit(ItemStack stack) { + return getCircuitTierFromItemStack(stack) != -1; + } + + public static List getOreNames(ItemStack stack) { + List ret = new ArrayList<>(); + for (int oreID : OreDictionary.getOreIDs(stack)) { + ret.add(OreDictionary.getOreName(oreID)); + } + return ret; + } + private static Block bw_realglasRef; public static byte calculateGlassTier(@Nonnull Block block, @Nonnegative byte meta) { -- cgit