aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech')
-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
*/