aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech
diff options
context:
space:
mode:
authorGlease <4586901+Glease@users.noreply.github.com>2022-01-04 18:16:36 +0800
committerGitHub <noreply@github.com>2022-01-04 11:16:36 +0100
commitd21e67166a4566d657c9da43eb13b5aa1a3a3725 (patch)
treea4c1745a23d6471813ce1601b2e842aee57e7d7c /src/main/java/gregtech
parent447e504f2fe57f5974da214b0d2391fb62e61f57 (diff)
downloadGT5-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')
-rw-r--r--src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java8
-rw-r--r--src/main/java/gregtech/api/metatileentity/MetaTileEntity.java8
-rw-r--r--src/main/java/gregtech/api/util/GT_ModHandler.java15
3 files changed, 16 insertions, 15 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java
index 217feb105d..a04a53f8ca 100644
--- a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java
@@ -2,6 +2,8 @@ package gregtech.api.metatileentity;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import gnu.trove.list.TIntList;
+import gnu.trove.list.array.TIntArrayList;
import gregtech.api.GregTech_API;
import gregtech.api.interfaces.metatileentity.IConnectable;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
@@ -518,15 +520,13 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable {
@Override
public int[] getAccessibleSlotsFromSide(int aSide) {
- ArrayList<Integer> tList = new ArrayList<Integer>();
+ TIntList tList = new TIntArrayList();
IGregTechTileEntity tTileEntity = getBaseMetaTileEntity();
boolean tSkip = tTileEntity.getCoverBehaviorAtSideNew((byte) aSide).letsItemsIn((byte) aSide, tTileEntity.getCoverIDAtSide((byte) aSide), tTileEntity.getComplexCoverDataAtSide((byte) aSide), -2, tTileEntity) || tTileEntity.getCoverBehaviorAtSideNew((byte) aSide).letsItemsOut((byte) aSide, tTileEntity.getCoverIDAtSide((byte) aSide), tTileEntity.getComplexCoverDataAtSide((byte) aSide), -2, tTileEntity);
for (int i = 0; i < getSizeInventory(); i++)
if (isValidSlot(i) && (tSkip || tTileEntity.getCoverBehaviorAtSideNew((byte) aSide).letsItemsOut((byte) aSide, tTileEntity.getCoverIDAtSide((byte) aSide), tTileEntity.getComplexCoverDataAtSide((byte) aSide), i, tTileEntity) || tTileEntity.getCoverBehaviorAtSideNew((byte) aSide).letsItemsIn((byte) aSide, tTileEntity.getCoverIDAtSide((byte) aSide), tTileEntity.getComplexCoverDataAtSide((byte) aSide), i, tTileEntity)))
tList.add(i);
- int[] rArray = new int[tList.size()];
- for (int i = 0; i < rArray.length; i++) rArray[i] = tList.get(i);
- return rArray;
+ return tList.toArray();
}
@Override
diff --git a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
index e69c8291da..15fa9a9228 100644
--- a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
@@ -5,6 +5,8 @@ import appeng.me.helpers.AENetworkProxy;
import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+import gnu.trove.list.TIntList;
+import gnu.trove.list.array.TIntArrayList;
import gregtech.api.GregTech_API;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@@ -711,15 +713,13 @@ public abstract class MetaTileEntity implements IMetaTileEntity {
@Override
public int[] getAccessibleSlotsFromSide(int aSide) {
- ArrayList<Integer> tList = new ArrayList<Integer>();
+ TIntList tList = new TIntArrayList();
IGregTechTileEntity tTileEntity = getBaseMetaTileEntity();
boolean tSkip = tTileEntity.getCoverBehaviorAtSideNew((byte) aSide).letsItemsIn((byte) aSide, tTileEntity.getCoverIDAtSide((byte) aSide), tTileEntity.getComplexCoverDataAtSide((byte) aSide), -2, tTileEntity) || tTileEntity.getCoverBehaviorAtSideNew((byte) aSide).letsItemsOut((byte) aSide, tTileEntity.getCoverIDAtSide((byte) aSide), tTileEntity.getComplexCoverDataAtSide((byte) aSide), -2, tTileEntity);
for (int i = 0; i < getSizeInventory(); i++)
if (isValidSlot(i) && (tSkip || tTileEntity.getCoverBehaviorAtSideNew((byte) aSide).letsItemsOut((byte) aSide, tTileEntity.getCoverIDAtSide((byte) aSide), tTileEntity.getComplexCoverDataAtSide((byte) aSide), i, tTileEntity) || tTileEntity.getCoverBehaviorAtSideNew((byte) aSide).letsItemsIn((byte) aSide, tTileEntity.getCoverIDAtSide((byte) aSide), tTileEntity.getComplexCoverDataAtSide((byte) aSide), i, tTileEntity)))
tList.add(i);
- int[] rArray = new int[tList.size()];
- for (int i = 0; i < rArray.length; i++) rArray[i] = tList.get(i);
- return rArray;
+ return tList.toArray();
}
@Override
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;