aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
diff options
context:
space:
mode:
authorbartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>2018-08-21 07:58:41 +0200
committerbartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>2018-08-21 07:58:41 +0200
commit9a31bb81bfe903af44d55fb2870ae996a42f32bd (patch)
tree466daa82e41978159fc7ce0182d323c54a9961a7 /src/main/java/gregtech/api
parentec4626d71772d1a44a48ab3c406f81e9203a78d5 (diff)
downloadGT5-Unofficial-9a31bb81bfe903af44d55fb2870ae996a42f32bd.tar.gz
GT5-Unofficial-9a31bb81bfe903af44d55fb2870ae996a42f32bd.tar.bz2
GT5-Unofficial-9a31bb81bfe903af44d55fb2870ae996a42f32bd.zip
alkalus' fix to improve performance on the typefilter...
Diffstat (limited to 'src/main/java/gregtech/api')
-rw-r--r--src/main/java/gregtech/api/enums/OrePrefixes.java34
1 files changed, 31 insertions, 3 deletions
diff --git a/src/main/java/gregtech/api/enums/OrePrefixes.java b/src/main/java/gregtech/api/enums/OrePrefixes.java
index 5a776b60c4..2dbeabf5c9 100644
--- a/src/main/java/gregtech/api/enums/OrePrefixes.java
+++ b/src/main/java/gregtech/api/enums/OrePrefixes.java
@@ -865,10 +865,38 @@ public enum OrePrefixes {
return true;
}
+ private static final HashMap<String, HashMap<ItemStack, Boolean>>mCachedResults = new HashMap<String, HashMap<ItemStack, Boolean>>();
+
public boolean contains(ItemStack aStack) {
- if (aStack == null) return false;
- for (ItemStack tStack : mPrefixedItems)
- if (GT_Utility.areStacksEqual(aStack, tStack, !tStack.hasTagCompound())) return true;
+
+ if (aStack == null){
+ return false;
+ }
+
+ HashMap<ItemStack, Boolean> aCurrentSet;
+ if (mCachedResults.get(this.toString()) != null){
+ aCurrentSet = mCachedResults.get(this.toString());
+ }
+
+ else {
+ aCurrentSet = new HashMap<ItemStack, Boolean>();
+ mCachedResults.put(this.toString(), aCurrentSet);
+ }
+
+ if (aCurrentSet.get(aStack) != null){
+ return aCurrentSet.get(aStack);
+ }
+ else {
+ for (ItemStack tStack : mPrefixedItems){
+ if (GT_Utility.areStacksEqual(aStack, tStack, !tStack.hasTagCompound())){
+ aCurrentSet.put(aStack, true);
+ return true;
+ }
+ }
+ }
+
+ aCurrentSet.put(aStack, false);
+
return false;
}