aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/covers/redstone/CoverAdvancedRedstoneReceiverInternal.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common/covers/redstone/CoverAdvancedRedstoneReceiverInternal.java')
-rw-r--r--src/main/java/gregtech/common/covers/redstone/CoverAdvancedRedstoneReceiverInternal.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/main/java/gregtech/common/covers/redstone/CoverAdvancedRedstoneReceiverInternal.java b/src/main/java/gregtech/common/covers/redstone/CoverAdvancedRedstoneReceiverInternal.java
new file mode 100644
index 0000000000..f22a81bdba
--- /dev/null
+++ b/src/main/java/gregtech/common/covers/redstone/CoverAdvancedRedstoneReceiverInternal.java
@@ -0,0 +1,42 @@
+package gregtech.common.covers.redstone;
+
+import net.minecraftforge.common.util.ForgeDirection;
+
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.tileentity.ICoverable;
+import gregtech.api.interfaces.tileentity.IMachineProgress;
+
+public class CoverAdvancedRedstoneReceiverInternal extends CoverAdvancedRedstoneReceiverBase {
+
+ public CoverAdvancedRedstoneReceiverInternal(ITexture coverTexture) {
+ super(coverTexture);
+ }
+
+ @Override
+ public ReceiverData doCoverThingsImpl(ForgeDirection side, byte aInputRedstone, int aCoverID,
+ ReceiverData aCoverVariable, ICoverable aTileEntity, long aTimer) {
+ if (aTileEntity instanceof IMachineProgress machine) {
+ if (getRedstoneInput(side, aInputRedstone, aCoverID, aCoverVariable, aTileEntity) > 0) {
+ machine.enableWorking();
+ } else {
+ machine.disableWorking();
+ }
+
+ machine.setWorkDataValue(aInputRedstone);
+ }
+
+ return aCoverVariable;
+ }
+
+ @Override
+ protected byte getRedstoneInputImpl(ForgeDirection side, byte aInputRedstone, int aCoverID,
+ ReceiverData aCoverVariable, ICoverable aTileEntity) {
+ return getSignalAt(aCoverVariable.getUuid(), aCoverVariable.getFrequency(), aCoverVariable.getGateMode());
+ }
+
+ @Override
+ protected boolean isRedstoneSensitiveImpl(ForgeDirection side, int aCoverID, ReceiverData aCoverVariable,
+ ICoverable aTileEntity, long aTimer) {
+ return true;
+ }
+}