aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYang Xizhi <60341015+GlodBlock@users.noreply.github.com>2022-01-05 23:55:36 +0800
committerGitHub <noreply@github.com>2022-01-05 16:55:36 +0100
commit300a10ad4913f427593fa8b6eb787e6881365932 (patch)
tree3125bcc8dd6b96ac6b362f35de97500c7f8d1c95
parentd21e67166a4566d657c9da43eb13b5aa1a3a3725 (diff)
downloadGT5-Unofficial-300a10ad4913f427593fa8b6eb787e6881365932.tar.gz
GT5-Unofficial-300a10ad4913f427593fa8b6eb787e6881365932.tar.bz2
GT5-Unofficial-300a10ad4913f427593fa8b6eb787e6881365932.zip
fix item stuck (#849)
* fix item stuck fix https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues/9338 * glease's suggestion
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java45
1 files changed, 17 insertions, 28 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
index 08fbd4c1dc..feca23949a 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
@@ -829,31 +829,8 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
if (aSide == getBaseMetaTileEntity().getFrontFacing() || aSide == mMainFacing) {
if (aPlayer.isSneaking()){
- int tMode = mDisableFilter ? 0 : 2;
- tMode += mDisableMultiStack ? 0 : 1;
-
- switch (tMode) {
- case 0: mDisableFilter = true;
- mDisableMultiStack = false;
- GT_Utility.sendChatToPlayer(aPlayer, StatCollector.translateToLocal("GT5U.hatch.disableFilter." + mDisableFilter));
- GT_Utility.sendChatToPlayer(aPlayer, StatCollector.translateToLocal("GT5U.hatch.disableMultiStack." + mDisableMultiStack));
- break;
- case 1: mDisableFilter = false;
- mDisableMultiStack = true;
- GT_Utility.sendChatToPlayer(aPlayer, StatCollector.translateToLocal("GT5U.hatch.disableFilter." + mDisableFilter));
- GT_Utility.sendChatToPlayer(aPlayer, StatCollector.translateToLocal("GT5U.hatch.disableMultiStack." + mDisableMultiStack));
- break;
- case 2: mDisableFilter = false;
- mDisableMultiStack = false;
- GT_Utility.sendChatToPlayer(aPlayer, StatCollector.translateToLocal("GT5U.hatch.disableFilter." + mDisableFilter));
- GT_Utility.sendChatToPlayer(aPlayer, StatCollector.translateToLocal("GT5U.hatch.disableMultiStack." + mDisableMultiStack));
- break;
- case 3: mDisableFilter = true;
- mDisableMultiStack = true;
- GT_Utility.sendChatToPlayer(aPlayer, StatCollector.translateToLocal("GT5U.hatch.disableFilter." + mDisableFilter));
- GT_Utility.sendChatToPlayer(aPlayer, StatCollector.translateToLocal("GT5U.hatch.disableMultiStack." + mDisableMultiStack));
- break;
- }
+ mDisableFilter = !mDisableFilter;
+ GT_Utility.sendChatToPlayer(aPlayer, StatCollector.translateToLocal("GT5U.hatch.disableFilter." + mDisableFilter));
} else {
mAllowInputFromOutputSide = !mAllowInputFromOutputSide;
GT_Utility.sendChatToPlayer(aPlayer, mAllowInputFromOutputSide ? trans("095", "Input from Output Side allowed") : trans("096", "Input from Output Side forbidden"));
@@ -862,6 +839,17 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
}
@Override
+ public boolean onSolderingToolRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ if(!aPlayer.isSneaking()) return false;
+ boolean click = super.onSolderingToolRightClick(aSide, aWrenchingSide, aPlayer, aX, aY, aZ);
+ if (click) return true;
+ if (aWrenchingSide != mMainFacing) return false;
+ mDisableMultiStack = !mDisableMultiStack;
+ GT_Utility.sendChatToPlayer(aPlayer, StatCollector.translateToLocal("GT5U.hatch.disableMultiStack." + mDisableMultiStack));
+ return true;
+ }
+
+ @Override
public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) {
if (aSide != mMainFacing) return true;
GT_CoverBehaviorBase<?> tBehavior = GregTech_API.getCoverBehaviorNew(aCoverID.toStack());
@@ -877,16 +865,17 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
if (aSide == mMainFacing || aIndex < getInputSlot() || aIndex >= getInputSlot() + mInputSlotCount || (!mAllowInputFromOutputSide && aSide == aBaseMetaTileEntity.getFrontFacing()))
return false;
for (int i = getInputSlot(), j = i + mInputSlotCount; i < j; i++)
- if (GT_Utility.areStacksEqual(GT_OreDictUnificator.get(aStack), mInventory[i]) && (mDisableMultiStack || mInventory[i].stackSize + aStack.stackSize <= aStack.getMaxStackSize())) return i == aIndex;
+ if (GT_Utility.areStacksEqual(GT_OreDictUnificator.get(aStack), mInventory[i]) && mDisableMultiStack) return i == aIndex;
return mDisableFilter || allowPutStackValidated(aBaseMetaTileEntity, aIndex, aSide, aStack);
}
/**
* Test if given stack can be inserted into specified slot.
- * Before execution of this method it is ensured there is no such kind of item inside any input slots already.
+ * If mDisableMultiStack is false, before execution of this method it is ensured there is no such kind of item inside any input slots already.
+ * Otherwise, you don't need to check for it anyway.
*/
protected boolean allowPutStackValidated(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
- return mInventory[aIndex] == null;
+ return !mDisableMultiStack || mInventory[aIndex] == null;
}
public boolean allowSelectCircuit() {