diff options
author | Glease <4586901+Glease@users.noreply.github.com> | 2022-12-14 14:48:34 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-14 07:48:34 +0100 |
commit | 2417dbcf73b6b8ebccb40baf850986981efb9788 (patch) | |
tree | 45aa9f0910e9c7b9701eea5ac293923ed9612a28 | |
parent | 8a515c7a9f83ca0fe29098d50bc7cab30e137d35 (diff) | |
download | GT5-Unofficial-2417dbcf73b6b8ebccb40baf850986981efb9788.tar.gz GT5-Unofficial-2417dbcf73b6b8ebccb40baf850986981efb9788.tar.bz2 GT5-Unofficial-2417dbcf73b6b8ebccb40baf850986981efb9788.zip |
make covers actually insensitive to redstone if it doesn't need it (#1546)
* make covers actually insensitive to redstone if it doesn't need it
Signed-off-by: Glease <4586901+Glease@users.noreply.github.com>
* fix machine controller redstone sensitivity
Signed-off-by: Glease <4586901+Glease@users.noreply.github.com>
Signed-off-by: Glease <4586901+Glease@users.noreply.github.com>
5 files changed, 41 insertions, 3 deletions
diff --git a/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java b/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java index b793a9b489..cfa9b593fa 100644 --- a/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java +++ b/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java @@ -585,7 +585,7 @@ public abstract class GT_CoverBehaviorBase<T extends ISerializableObject> { protected boolean isRedstoneSensitiveImpl( byte aSide, int aCoverID, T aCoverVariable, ICoverable aTileEntity, long aTimer) { - return true; + return false; } /** diff --git a/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java b/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java index ee0a740d68..e90751e390 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java @@ -67,6 +67,16 @@ public class GT_Cover_ControlsWork extends GT_CoverBehavior { return aCoverVariable; } + @Override + protected boolean isRedstoneSensitiveImpl( + byte aSide, + int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, + ICoverable aTileEntity, + long aTimer) { + return aCoverVariable.get() != 2; // always off, so no redstone needed either + } + /** * Make sure there is only one GT_Cover_ControlsWork on the aTileEntity * @return true if the cover is the first (side) one diff --git a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverInternal.java b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverInternal.java index 32bbd17d7f..1e0a5f0593 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverInternal.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverInternal.java @@ -4,6 +4,7 @@ import gregtech.api.GregTech_API; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.interfaces.tileentity.IMachineProgress; +import gregtech.api.util.ISerializableObject; public class GT_Cover_RedstoneReceiverInternal extends GT_Cover_RedstoneWirelessBase { @@ -32,11 +33,21 @@ public class GT_Cover_RedstoneReceiverInternal extends GT_Cover_RedstoneWireless } @Override + protected boolean isRedstoneSensitiveImpl( + byte aSide, + int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, + ICoverable aTileEntity, + long aTimer) { + return true; + } + + @Override public byte getRedstoneInput( byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return GregTech_API.sWirelessRedstone.get(Integer.valueOf(aCoverVariable)) == null + return GregTech_API.sWirelessRedstone.get(aCoverVariable) == null ? 0 - : ((Byte) GregTech_API.sWirelessRedstone.get(Integer.valueOf(aCoverVariable))).byteValue(); + : GregTech_API.sWirelessRedstone.get(aCoverVariable); } @Override diff --git a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java index 1c6623baa7..a8af72530e 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java @@ -3,6 +3,7 @@ package gregtech.common.covers; import gregtech.api.GregTech_API; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.ICoverable; +import gregtech.api.util.ISerializableObject; public class GT_Cover_RedstoneTransmitterExternal extends GT_Cover_RedstoneWirelessBase { @@ -26,6 +27,16 @@ public class GT_Cover_RedstoneTransmitterExternal extends GT_Cover_RedstoneWirel } @Override + protected boolean isRedstoneSensitiveImpl( + byte aSide, + int aCoverID, + ISerializableObject.LegacyCoverData aCoverVariable, + ICoverable aTileEntity, + long aTimer) { + return true; + } + + @Override public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return true; } diff --git a/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedRedstoneReceiverInternal.java b/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedRedstoneReceiverInternal.java index c3537350a6..61dbb7859c 100644 --- a/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedRedstoneReceiverInternal.java +++ b/src/main/java/gregtech/common/covers/redstone/GT_Cover_AdvancedRedstoneReceiverInternal.java @@ -37,4 +37,10 @@ public class GT_Cover_AdvancedRedstoneReceiverInternal extends GT_Cover_Advanced byte aSide, byte aInputRedstone, int aCoverID, ReceiverData aCoverVariable, ICoverable aTileEntity) { return getSignalAt(aCoverVariable.getUuid(), aCoverVariable.getFrequency(), aCoverVariable.getGateMode()); } + + @Override + protected boolean isRedstoneSensitiveImpl( + byte aSide, int aCoverID, ReceiverData aCoverVariable, ICoverable aTileEntity, long aTimer) { + return true; + } } |