diff options
Diffstat (limited to 'src/main/java/bartworks/common')
-rw-r--r-- | src/main/java/bartworks/common/loaders/StaticRecipeChangeLoaders.java | 84 |
1 files changed, 44 insertions, 40 deletions
diff --git a/src/main/java/bartworks/common/loaders/StaticRecipeChangeLoaders.java b/src/main/java/bartworks/common/loaders/StaticRecipeChangeLoaders.java index a27da26919..f266c2fdc2 100644 --- a/src/main/java/bartworks/common/loaders/StaticRecipeChangeLoaders.java +++ b/src/main/java/bartworks/common/loaders/StaticRecipeChangeLoaders.java @@ -98,6 +98,7 @@ public class StaticRecipeChangeLoaders { public static void unificationRecipeEnforcer() { List<GTRecipe> toRemove = new ArrayList<>(); + final OrePrefixes[] OREPREFIX_VALUES = OrePrefixes.values(); for (Werkstoff werkstoff : Werkstoff.werkstoffHashSet) { StaticRecipeChangeLoaders.runMaterialLinker(werkstoff); if (werkstoff.getGenerationFeatures().enforceUnification) { @@ -105,51 +106,54 @@ public class StaticRecipeChangeLoaders { oreDictNames.add(werkstoff.getVarName()); StaticRecipeChangeLoaders.runMoltenUnificationEnfocement(werkstoff); StaticRecipeChangeLoaders.runUnficationDeleter(werkstoff); - for (String s : oreDictNames) for (OrePrefixes prefixes : OrePrefixes.values()) { - if (!werkstoff.hasItemType(prefixes)) continue; - String fullOreName = prefixes + s; - List<ItemStack> ores = OreDictionary.getOres(fullOreName, false); - if (ores.size() <= 1) // empty or one entry, i.e. no unification needed - continue; - for (ItemStack toReplace : ores) { - ItemStack replacement = werkstoff.get(prefixes); - if (toReplace == null || GTUtility.areStacksEqual(toReplace, replacement) - || replacement == null - || replacement.getItem() == null) continue; - for (RecipeMap<?> map : RecipeMap.ALL_RECIPE_MAPS.values()) { - toRemove.clear(); - nextRecipe: for (GTRecipe recipe : map.getAllRecipes()) { - boolean removal = map.equals(RecipeMaps.fluidExtractionRecipes) - || map.equals(RecipeMaps.fluidSolidifierRecipes); - for (int i = 0; i < recipe.mInputs.length; i++) { - if (!GTUtility.areStacksEqual(recipe.mInputs[i], toReplace)) continue; - if (removal) { - toRemove.add(recipe); - continue nextRecipe; + for (String s : oreDictNames) { + for (OrePrefixes prefixes : OREPREFIX_VALUES) { + if (!werkstoff.hasItemType(prefixes)) continue; + String fullOreName = prefixes + s; + List<ItemStack> ores = OreDictionary.getOres(fullOreName, false); + if (ores.size() <= 1) // empty or one entry, i.e. no unification needed + continue; + for (ItemStack toReplace : ores) { + ItemStack replacement = werkstoff.get(prefixes); + if (toReplace == null || GTUtility.areStacksEqual(toReplace, replacement) + || replacement == null + || replacement.getItem() == null) continue; + for (RecipeMap<?> map : RecipeMap.ALL_RECIPE_MAPS.values()) { + toRemove.clear(); + nextRecipe: for (GTRecipe recipe : map.getAllRecipes()) { + boolean removal = map.equals(RecipeMaps.fluidExtractionRecipes) + || map.equals(RecipeMaps.fluidSolidifierRecipes); + for (int i = 0; i < recipe.mInputs.length; i++) { + if (!GTUtility.areStacksEqual(recipe.mInputs[i], toReplace)) continue; + if (removal) { + toRemove.add(recipe); + continue nextRecipe; + } + recipe.mInputs[i] = GTUtility + .copyAmount(recipe.mInputs[i].stackSize, replacement); } - recipe.mInputs[i] = GTUtility.copyAmount(recipe.mInputs[i].stackSize, replacement); - } - for (int i = 0; i < recipe.mOutputs.length; i++) { - if (!GTUtility.areStacksEqual(recipe.mOutputs[i], toReplace)) continue; - if (removal) { - toRemove.add(recipe); - continue nextRecipe; + for (int i = 0; i < recipe.mOutputs.length; i++) { + if (!GTUtility.areStacksEqual(recipe.mOutputs[i], toReplace)) continue; + if (removal) { + toRemove.add(recipe); + continue nextRecipe; + } + recipe.mOutputs[i] = GTUtility + .copyAmount(recipe.mOutputs[i].stackSize, replacement); } - recipe.mOutputs[i] = GTUtility - .copyAmount(recipe.mOutputs[i].stackSize, replacement); - } - if (recipe.mSpecialItems instanceof ItemStack specialItemStack) { - if (!GTUtility.areStacksEqual(specialItemStack, toReplace)) continue; - if (removal) { - toRemove.add(recipe); - continue nextRecipe; + if (recipe.mSpecialItems instanceof ItemStack specialItemStack) { + if (!GTUtility.areStacksEqual(specialItemStack, toReplace)) continue; + if (removal) { + toRemove.add(recipe); + continue nextRecipe; + } + recipe.mSpecialItems = GTUtility + .copyAmount(specialItemStack.stackSize, replacement); } - recipe.mSpecialItems = GTUtility - .copyAmount(specialItemStack.stackSize, replacement); } + map.getBackend() + .removeRecipes(toRemove); } - map.getBackend() - .removeRecipes(toRemove); } } } |