diff options
author | Glease <4586901+Glease@users.noreply.github.com> | 2022-01-04 18:16:36 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-04 11:16:36 +0100 |
commit | d21e67166a4566d657c9da43eb13b5aa1a3a3725 (patch) | |
tree | a4c1745a23d6471813ce1601b2e842aee57e7d7c /src/main/java/gregtech/api/util | |
parent | 447e504f2fe57f5974da214b0d2391fb62e61f57 (diff) | |
download | GT5-Unofficial-d21e67166a4566d657c9da43eb13b5aa1a3a3725.tar.gz GT5-Unofficial-d21e67166a4566d657c9da43eb13b5aa1a3a3725.tar.bz2 GT5-Unofficial-d21e67166a4566d657c9da43eb13b5aa1a3a3725.zip |
Add a bunch of minor optimizations (#848)
Diffstat (limited to 'src/main/java/gregtech/api/util')
-rw-r--r-- | src/main/java/gregtech/api/util/GT_ModHandler.java | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/main/java/gregtech/api/util/GT_ModHandler.java b/src/main/java/gregtech/api/util/GT_ModHandler.java index 0d8585994f..1471fd843f 100644 --- a/src/main/java/gregtech/api/util/GT_ModHandler.java +++ b/src/main/java/gregtech/api/util/GT_ModHandler.java @@ -52,6 +52,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -1261,7 +1262,7 @@ public class GT_ModHandler { if ((tRecipe instanceof IGT_CraftingRecipe) && !((IGT_CraftingRecipe) tRecipe).isRemovable()) return false; return toRemove.stream().anyMatch(aCrafting -> tRecipe.matches(aCrafting, DW)); }).collect(Collectors.toSet()); - + tList.removeIf(tListToRemove::contains); } @@ -1574,16 +1575,16 @@ public class GT_ModHandler { } ).forEach(tRecipe -> stacks.add(tRecipe.getCraftingResult(aCrafting))); rList = stacks.stream().filter(tOutput -> tOutput.stackSize == 1 && tOutput.getMaxDamage() > 0 && tOutput.getMaxStackSize() == 1).collect(Collectors.toList()); - } else for (int i = 0; i < aList.size(); i++) { - boolean temp = false; + } else for (Iterator<IRecipe> iterator = aList.iterator(); iterator.hasNext(); ) { + IRecipe tRecipe = iterator.next(); + boolean matched = false; try { - temp = aList.get(i).matches(aCrafting, DW); + matched = tRecipe.matches(aCrafting, DW); } catch (Throwable e) { e.printStackTrace(GT_Log.err); } - if (temp) { - IRecipe tRecipe = aList.get(i); + if (matched) { ItemStack tOutput = tRecipe.getCraftingResult(aCrafting); if (tOutput == null || tOutput.stackSize <= 0) { @@ -1599,7 +1600,7 @@ public class GT_ModHandler { if (tRecipe instanceof ShapelessOreRecipe) continue; if (tRecipe instanceof IGT_CraftingRecipe) continue; rList.add(GT_Utility.copyOrNull(tOutput)); - aList.remove(i--); + iterator.remove(); } } return rList; |