aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2023-01-11 02:16:23 +0900
committerGitHub <noreply@github.com>2023-01-10 18:16:23 +0100
commit097e3427100cad0e0ceace4e2059188fa8e96f39 (patch)
treec5a32d3a8605c78355273d46a88fb9d69241b7df
parent5a3a3e231e3b55eb28471564b324c0cb44737a4b (diff)
downloadGT5-Unofficial-097e3427100cad0e0ceace4e2059188fa8e96f39.tar.gz
GT5-Unofficial-097e3427100cad0e0ceace4e2059188fa8e96f39.tar.bz2
GT5-Unofficial-097e3427100cad0e0ceace4e2059188fa8e96f39.zip
Fix breaking drawer voids items (#1645)
-rw-r--r--src/main/java/gregtech/api/util/GT_OreDictUnificator.java14
-rw-r--r--src/main/java/gregtech/common/GT_Proxy.java3
2 files changed, 12 insertions, 5 deletions
diff --git a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java
index bf554e57df..959707c18f 100644
--- a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java
+++ b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java
@@ -176,9 +176,12 @@ public class GT_OreDictUnificator {
}
public static ItemStack get(boolean aUseBlackList, ItemStack aStack) {
+ return get(aUseBlackList, aStack, false);
+ }
+
+ public static ItemStack get(boolean aUseBlackList, ItemStack aStack, boolean unsafe) {
if (GT_Utility.isStackInvalid(aStack)) return null;
ItemData tPrefixMaterial = getAssociation(aStack);
- ItemStack rStack = null;
if (tPrefixMaterial == null
|| !tPrefixMaterial.hasValidPrefixMaterialData()
|| (aUseBlackList && tPrefixMaterial.mBlackListed)) return GT_Utility.copyOrNull(aStack);
@@ -188,11 +191,14 @@ public class GT_OreDictUnificator {
}
if (tPrefixMaterial.mUnificationTarget == null)
tPrefixMaterial.mUnificationTarget = sName2StackMap.get(tPrefixMaterial.toString());
- rStack = tPrefixMaterial.mUnificationTarget;
+ ItemStack rStack = tPrefixMaterial.mUnificationTarget;
if (GT_Utility.isStackInvalid(rStack)) return GT_Utility.copyOrNull(aStack);
- assert rStack != null;
rStack.setTagCompound(aStack.getTagCompound());
- return GT_Utility.copyAmount(aStack.stackSize, rStack);
+ if (unsafe) {
+ return GT_Utility.copyAmountUnsafe(aStack.stackSize, rStack);
+ } else {
+ return GT_Utility.copyAmount(aStack.stackSize, rStack);
+ }
}
/** Doesn't copy the returned stack or set quantity. Be careful and do not mutate it;
diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java
index fccdaac452..1a97ddd4d0 100644
--- a/src/main/java/gregtech/common/GT_Proxy.java
+++ b/src/main/java/gregtech/common/GT_Proxy.java
@@ -1415,7 +1415,8 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG
if ((aEvent.entity != null) && (!aEvent.entity.worldObj.isRemote)) {
if ((aEvent.entity instanceof EntityItem)) {
((EntityItem) aEvent.entity)
- .setEntityItemStack(GT_OreDictUnificator.get(((EntityItem) aEvent.entity).getEntityItem()));
+ .setEntityItemStack(
+ GT_OreDictUnificator.get(true, ((EntityItem) aEvent.entity).getEntityItem(), true));
}
if ((this.mSkeletonsShootGTArrows > 0)
&& (aEvent.entity.getClass() == EntityArrow.class)