diff options
author | NexusNull <p.wellershaus@googlemail.com> | 2023-03-31 13:37:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-31 13:37:58 +0200 |
commit | 360f39b9c9ebf733924fdccf0993d03222b625d3 (patch) | |
tree | 50899ad25284fccd4d40a0c08069e560c71dec7a /src/main | |
parent | cd5abc920666e0e8dab3e64f5340cffcae0044e6 (diff) | |
download | GT5-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.java | 20 |
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 */ |