aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorGlease <4586901+Glease@users.noreply.github.com>2021-10-18 16:21:21 +0800
committerGlease <4586901+Glease@users.noreply.github.com>2021-10-18 16:21:21 +0800
commitfa411d8339e75f8e4127c07f42cab0563c14cf5b (patch)
tree80ba8eae45ae1c8c3b08cdb2d062c261c8e6e168 /src/main/java
parent5aa5c7d77309a70eb4f637fb265f531ff4e8375e (diff)
downloadGT5-Unofficial-fa411d8339e75f8e4127c07f42cab0563c14cf5b.tar.gz
GT5-Unofficial-fa411d8339e75f8e4127c07f42cab0563c14cf5b.tar.bz2
GT5-Unofficial-fa411d8339e75f8e4127c07f42cab0563c14cf5b.zip
Optimize away potentially expensive NBT copy in getAssociation
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/gregtech/api/objects/GT_ItemStack.java7
-rw-r--r--src/main/java/gregtech/api/util/GT_OreDictUnificator.java2
-rw-r--r--src/main/java/gregtech/api/util/GT_Recipe.java4
3 files changed, 9 insertions, 4 deletions
diff --git a/src/main/java/gregtech/api/objects/GT_ItemStack.java b/src/main/java/gregtech/api/objects/GT_ItemStack.java
index 7284854c5f..3e25454fa1 100644
--- a/src/main/java/gregtech/api/objects/GT_ItemStack.java
+++ b/src/main/java/gregtech/api/objects/GT_ItemStack.java
@@ -1,5 +1,6 @@
package gregtech.api.objects;
+import gregtech.api.enums.GT_Values;
import gregtech.api.util.GT_Utility;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
@@ -17,7 +18,11 @@ public class GT_ItemStack {
}
public GT_ItemStack(ItemStack aStack) {
- this(aStack == null ? null : aStack.getItem(), aStack == null ? 0 : aStack.stackSize, aStack == null ? 0 : Items.feather.getDamage(aStack));
+ this(aStack, false);
+ }
+
+ public GT_ItemStack(ItemStack aStack, boolean wildcard) {
+ this(aStack == null ? null : aStack.getItem(), aStack == null ? 0 : aStack.stackSize, aStack == null ? 0 : wildcard ? GT_Values.W : Items.feather.getDamage(aStack));
}
public GT_ItemStack(int aHashCode) {
diff --git a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java
index 54ef5b2866..6e46517371 100644
--- a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java
+++ b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java
@@ -315,7 +315,7 @@ public class GT_OreDictUnificator {
public static ItemData getItemData(ItemStack aStack) {
if (GT_Utility.isStackInvalid(aStack)) return null;
ItemData rData = sItemStack2DataMap.get(new GT_ItemStack(aStack));
- if (rData == null) rData = sItemStack2DataMap.get(new GT_ItemStack(GT_Utility.copyMetaData(W, aStack)));
+ if (rData == null) rData = sItemStack2DataMap.get(new GT_ItemStack(aStack, true));
return rData;
}
diff --git a/src/main/java/gregtech/api/util/GT_Recipe.java b/src/main/java/gregtech/api/util/GT_Recipe.java
index bcd3c193de..6130adfaef 100644
--- a/src/main/java/gregtech/api/util/GT_Recipe.java
+++ b/src/main/java/gregtech/api/util/GT_Recipe.java
@@ -800,7 +800,7 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
* @return if this Item is a valid Input for any for the Recipes
*/
public boolean containsInput(ItemStack aStack) {
- return aStack != null && (mRecipeItemMap.containsKey(new GT_ItemStack(aStack)) || mRecipeItemMap.containsKey(new GT_ItemStack(GT_Utility.copyMetaData(W, aStack))));
+ return aStack != null && (mRecipeItemMap.containsKey(new GT_ItemStack(aStack)) || mRecipeItemMap.containsKey(new GT_ItemStack(aStack, true)));
}
/**
@@ -886,7 +886,7 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
if (tRecipes != null) for (GT_Recipe tRecipe : tRecipes)
if (!tRecipe.mFakeRecipe && tRecipe.isRecipeInputEqual(false, aDontCheckStackSizes, aFluids, aInputs))
return tRecipe.mEnabled && aVoltage * mAmperage >= tRecipe.mEUt ? tRecipe : null;
- tRecipes = mRecipeItemMap.get(new GT_ItemStack(GT_Utility.copyMetaData(W, tStack)));
+ tRecipes = mRecipeItemMap.get(new GT_ItemStack(tStack, true));
if (tRecipes != null) for (GT_Recipe tRecipe : tRecipes)
if (!tRecipe.mFakeRecipe && tRecipe.isRecipeInputEqual(false, aDontCheckStackSizes, aFluids, aInputs))
return tRecipe.mEnabled && aVoltage * mAmperage >= tRecipe.mEUt ? tRecipe : null;