aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/enums
diff options
context:
space:
mode:
authortth05 <36999320+tth05@users.noreply.github.com>2024-01-20 23:00:50 +0100
committerGitHub <noreply@github.com>2024-01-20 23:00:50 +0100
commit2a3abcc6b8859b11e13c9d95d7426590edf9fefd (patch)
tree96b9ba00d09a0390e537abfa47969a1824f7ac9b /src/main/java/gregtech/api/enums
parent8aedb43274634bb4df44b67da7a7fe98a33ecf55 (diff)
downloadGT5-Unofficial-2a3abcc6b8859b11e13c9d95d7426590edf9fefd.tar.gz
GT5-Unofficial-2a3abcc6b8859b11e13c9d95d7426590edf9fefd.tar.bz2
GT5-Unofficial-2a3abcc6b8859b11e13c9d95d7426590edf9fefd.zip
Remove all usages of GT_ItemStack2 as Set/Map keys by using fastutil (#2465)
* Replace Maps in GT_OreDictUnificator with fastutil implementations with custom hasher Removes the need to allocate a GT_ItemStack2 every time these Maps are accessed * Replace local HashMaps with Reference2LongArrayMaps in GT_Recipe and fix if condition * Remove GT_ItemStack2 usage from OrePrefixes * Update GTNHLib requirement in @Mod annotation * Don't modify stack argument when re-trying `setItemStack2DataMap` access with wildcard value
Diffstat (limited to 'src/main/java/gregtech/api/enums')
-rw-r--r--src/main/java/gregtech/api/enums/OrePrefixes.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/main/java/gregtech/api/enums/OrePrefixes.java b/src/main/java/gregtech/api/enums/OrePrefixes.java
index e9294e7258..26dee844e7 100644
--- a/src/main/java/gregtech/api/enums/OrePrefixes.java
+++ b/src/main/java/gregtech/api/enums/OrePrefixes.java
@@ -20,13 +20,14 @@ import gregtech.api.interfaces.ICondition;
import gregtech.api.interfaces.IOreRecipeRegistrator;
import gregtech.api.interfaces.ISubTagContainer;
import gregtech.api.objects.GT_ArrayList;
-import gregtech.api.objects.GT_HashSet;
-import gregtech.api.objects.GT_ItemStack2;
+import gregtech.api.objects.GT_ItemStack;
import gregtech.api.objects.ItemData;
import gregtech.api.objects.MaterialStack;
import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_Utility;
import gregtech.loaders.materialprocessing.ProcessingModSupport;
+import it.unimi.dsi.fastutil.objects.ObjectOpenCustomHashSet;
+import it.unimi.dsi.fastutil.objects.ObjectSet;
public enum OrePrefixes {
@@ -1015,7 +1016,10 @@ public enum OrePrefixes {
public MaterialStack mSecondaryMaterial = null;
public OrePrefixes mPrefixInto = this;
public float mHeatDamage = 0.0F; // Negative for Frost Damage
- private final GT_HashSet<GT_ItemStack2> mContainsTestCache = new GT_HashSet<>(512, 0.5f);
+ private final ObjectSet<ItemStack> mContainsTestCache = new ObjectOpenCustomHashSet<>(
+ 512,
+ 0.5f,
+ GT_ItemStack.ITEMSTACK_HASH_STRATEGY2);
public static final List<OrePrefixes> mPreventableComponents = new LinkedList<>(
Arrays.asList(
OrePrefixes.gem,
@@ -1205,13 +1209,13 @@ public enum OrePrefixes {
if (!contains(aStack)) {
mPrefixedItems.add(aStack);
// It's now in there... so update the cache
- mContainsTestCache.add(new GT_ItemStack2(aStack));
+ mContainsTestCache.add(aStack);
}
return true;
}
public boolean contains(ItemStack aStack) {
- return !GT_Utility.isStackInvalid(aStack) && mContainsTestCache.contains(new GT_ItemStack2(aStack));
+ return !GT_Utility.isStackInvalid(aStack) && mContainsTestCache.contains(aStack);
}
public boolean containsUnCached(ItemStack aStack) {