diff options
author | tth05 <36999320+tth05@users.noreply.github.com> | 2024-01-20 23:00:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-20 23:00:50 +0100 |
commit | 2a3abcc6b8859b11e13c9d95d7426590edf9fefd (patch) | |
tree | 96b9ba00d09a0390e537abfa47969a1824f7ac9b /src/main/java/gregtech/api/enums | |
parent | 8aedb43274634bb4df44b67da7a7fe98a33ecf55 (diff) | |
download | GT5-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.java | 14 |
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) { |