aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/covers
diff options
context:
space:
mode:
authorGlease <4586901+Glease@users.noreply.github.com>2022-12-14 18:44:48 +0800
committerGitHub <noreply@github.com>2022-12-14 11:44:48 +0100
commitcea7333c3c55efc2150a104dc86da65dc8e9d2b1 (patch)
treeece3dd5696cd0b13c9e8269542edbc26ed1c227f /src/main/java/gregtech/common/covers
parentf6919bc43dacaae50a9db5852cde6b1eaca8c6c9 (diff)
downloadGT5-Unofficial-cea7333c3c55efc2150a104dc86da65dc8e9d2b1.tar.gz
GT5-Unofficial-cea7333c3c55efc2150a104dc86da65dc8e9d2b1.tar.bz2
GT5-Unofficial-cea7333c3c55efc2150a104dc86da65dc8e9d2b1.zip
ensure machine controller incompatible with redstone receiver (#1547)
Signed-off-by: Glease <4586901+Glease@users.noreply.github.com> Signed-off-by: Glease <4586901+Glease@users.noreply.github.com>
Diffstat (limited to 'src/main/java/gregtech/common/covers')
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java15
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java15
2 files changed, 20 insertions, 10 deletions
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 e90751e390..270a221a08 100644
--- a/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java
+++ b/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java
@@ -5,6 +5,7 @@ import com.gtnewhorizons.modularui.common.widget.TextWidget;
import gregtech.api.gui.modularui.GT_CoverUIBuildContext;
import gregtech.api.gui.modularui.GT_UITextures;
import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.covers.IControlsWorkCover;
import gregtech.api.interfaces.tileentity.ICoverable;
import gregtech.api.interfaces.tileentity.IMachineProgress;
import gregtech.api.util.GT_CoverBehavior;
@@ -16,7 +17,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
-public class GT_Cover_ControlsWork extends GT_CoverBehavior {
+public class GT_Cover_ControlsWork extends GT_CoverBehavior implements IControlsWorkCover {
/**
* @deprecated use {@link #GT_Cover_ControlsWork(ITexture coverTexture)} instead
@@ -79,17 +80,11 @@ public class GT_Cover_ControlsWork extends GT_CoverBehavior {
/**
* Make sure there is only one GT_Cover_ControlsWork on the aTileEntity
+ * TODO this is a migration thing. Remove this after 2.3.0 is released.
* @return true if the cover is the first (side) one
**/
private boolean makeSureOnlyOne(byte aSide, ICoverable aTileEntity) {
- for (byte i = 0; i < 6; i++) {
- if (aTileEntity.getCoverBehaviorAtSideNew(i) instanceof GT_Cover_ControlsWork && i < aSide) {
- aTileEntity.dropCover(aSide, aSide, true);
- aTileEntity.markDirty();
- return false;
- }
- }
- return true;
+ return IControlsWorkCover.makeSureOnlyOne(aSide, aTileEntity);
}
@Override
@@ -174,7 +169,7 @@ public class GT_Cover_ControlsWork extends GT_CoverBehavior {
public boolean isCoverPlaceable(byte aSide, ItemStack aStack, ICoverable aTileEntity) {
if (!super.isCoverPlaceable(aSide, aStack, aTileEntity)) return false;
for (byte i = 0; i < 6; i++) {
- if (aTileEntity.getCoverBehaviorAtSideNew(i) instanceof GT_Cover_ControlsWork) {
+ if (aTileEntity.getCoverBehaviorAtSideNew(i) instanceof IControlsWorkCover) {
return false;
}
}
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 a8af72530e..92445fa038 100644
--- a/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java
+++ b/src/main/java/gregtech/common/covers/GT_Cover_RedstoneTransmitterExternal.java
@@ -2,8 +2,10 @@ package gregtech.common.covers;
import gregtech.api.GregTech_API;
import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.covers.IControlsWorkCover;
import gregtech.api.interfaces.tileentity.ICoverable;
import gregtech.api.util.ISerializableObject;
+import net.minecraft.item.ItemStack;
public class GT_Cover_RedstoneTransmitterExternal extends GT_Cover_RedstoneWirelessBase {
@@ -22,6 +24,8 @@ public class GT_Cover_RedstoneTransmitterExternal extends GT_Cover_RedstoneWirel
@Override
public int doCoverThings(
byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) {
+ // TODO remove next line after 2.3.0
+ if (!IControlsWorkCover.makeSureOnlyOne(aSide, aTileEntity)) return aCoverVariable;
GregTech_API.sWirelessRedstone.put(aCoverVariable, aInputRedstone);
return aCoverVariable;
}
@@ -45,4 +49,15 @@ public class GT_Cover_RedstoneTransmitterExternal extends GT_Cover_RedstoneWirel
public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) {
return 1;
}
+
+ @Override
+ public boolean isCoverPlaceable(byte aSide, ItemStack aStack, ICoverable aTileEntity) {
+ if (!super.isCoverPlaceable(aSide, aStack, aTileEntity)) return false;
+ for (byte i = 0; i < 6; i++) {
+ if (aTileEntity.getCoverBehaviorAtSideNew(i) instanceof IControlsWorkCover) {
+ return false;
+ }
+ }
+ return true;
+ }
}