aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/covers
diff options
context:
space:
mode:
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;
+ }
}