aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorNexusNull <p.wellershaus@googlemail.com>2023-03-31 13:37:58 +0200
committerGitHub <noreply@github.com>2023-03-31 13:37:58 +0200
commit360f39b9c9ebf733924fdccf0993d03222b625d3 (patch)
tree50899ad25284fccd4d40a0c08069e560c71dec7a /src/main
parentcd5abc920666e0e8dab3e64f5340cffcae0044e6 (diff)
downloadGT5-Unofficial-360f39b9c9ebf733924fdccf0993d03222b625d3.tar.gz
GT5-Unofficial-360f39b9c9ebf733924fdccf0993d03222b625d3.tar.bz2
GT5-Unofficial-360f39b9c9ebf733924fdccf0993d03222b625d3.zip
fix: redstone strong signal not resetting (#1816)
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java
index 5b469ddb00..1228e3f668 100644
--- a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java
@@ -400,7 +400,13 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov
@Override
public void setOutputRedstoneSignal(byte aSide, byte aStrength) {
aStrength = (byte) Math.min(Math.max(0, aStrength), 15);
- if (aSide >= 0 && aSide < 6 && mSidedRedstone[aSide] != aStrength) {
+ if (aSide < 0 || aSide >= 6) return;
+
+ if (mSidedRedstone[aSide] != aStrength || (mStrongRedstone & (1 << aSide)) > 0) {
+ if ((mStrongRedstone & (1 << aSide)) > 0) {
+ mStrongRedstone ^= (1 << aSide);
+ issueBlockUpdate();
+ }
mSidedRedstone[aSide] = aStrength;
issueBlockUpdate();
}
@@ -408,8 +414,14 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov
@Override
public void setStrongOutputRedstoneSignal(byte aSide, byte aStrength) {
- mStrongRedstone |= (1 << aSide);
- setOutputRedstoneSignal(aSide, aStrength);
+ aStrength = (byte) Math.min(Math.max(0, aStrength), 15);
+ if (aSide < 0 || aSide >= 6) return;
+
+ if (mSidedRedstone[aSide] != aStrength || (mStrongRedstone & (1 << aSide)) == 0) {
+ mStrongRedstone |= (1 << aSide);
+ mSidedRedstone[aSide] = aStrength;
+ issueBlockUpdate();
+ }
}
@Override
@@ -560,7 +572,7 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov
/**
* Add installed cover information, generally called from ItemBlock
- *
+ *
* @param aNBT - NBTTagCompound from the stack
* @param aList - List to add the information to
*/