From 7252f84377957aadcbb3b64b1b369209f1846e95 Mon Sep 17 00:00:00 2001 From: Yang Xizhi <60341015+GlodBlock@users.noreply.github.com> Date: Fri, 18 Feb 2022 01:57:21 +0800 Subject: check all oredicts to gen cal recips (#94) some circuits failed to generate the CAL recipe after certain coremod update cuz they get additional oredicts Former-commit-id: 10de572d4a441c9313569554ab56d9221df87be6 --- .../CircuitGeneration/CircuitImprintLoader.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'src/main/java') 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 90740455c2..409d69a8f4 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 @@ -88,9 +88,9 @@ public class CircuitImprintLoader { private static void handleCircuitRecipeRebuilding(GT_Recipe circuitRecipe, HashSet toRem, HashSet toAdd) { ItemStack[] outputs = circuitRecipe.mOutputs; - String name = getTypeFromOreDict(outputs); + boolean isOrePass = isCircuitOreDict(outputs[0]); String unlocalizedName = outputs[0].getUnlocalizedName(); - if (name.contains("Circuit") || name.contains("circuit") || unlocalizedName.contains("Circuit") || unlocalizedName.contains("circuit")) { + if (isOrePass || unlocalizedName.contains("Circuit") || unlocalizedName.contains("circuit")) { CircuitImprintLoader.recipeTagMap.put(CircuitImprintLoader.getTagFromStack(outputs[0]), circuitRecipe.copy()); @@ -106,6 +106,7 @@ public class CircuitImprintLoader { } } + @Deprecated private static String getTypeFromOreDict(ItemStack[] outputs) { int[] oreIDS = OreDictionary.getOreIDs(outputs[0]); @@ -115,6 +116,20 @@ public class CircuitImprintLoader { return OreDictionary.getOreName(oreIDS[0]); } + 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; + } + private static void exchangeRecipesInList(HashSet toRem, HashSet toAdd) { GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes.mRecipeList.addAll(toAdd); GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes.mRecipeList.removeAll(toRem); -- cgit