aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common
diff options
context:
space:
mode:
authorMartin Robertz <dream-master@gmx.net>2022-03-02 20:28:16 +0100
committerGitHub <noreply@github.com>2022-03-02 20:28:16 +0100
commitcdb0f7adbe069f258ebe653cf553eca04c87e8db (patch)
tree2a2b15f1df5fd20042f8a73bfea95bf5a15b4e6d /src/main/java/gregtech/common
parent058ef46cb368f3a311a39b2a67110b080d373221 (diff)
downloadGT5-Unofficial-cdb0f7adbe069f258ebe653cf553eca04c87e8db.tar.gz
GT5-Unofficial-cdb0f7adbe069f258ebe653cf553eca04c87e8db.tar.bz2
GT5-Unofficial-cdb0f7adbe069f258ebe653cf553eca04c87e8db.zip
add locks to the node graph so paths can block power transfer #25 (#950)
Co-authored-by: bot <Krampus.sack.never@gmail.com>
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java25
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_Shutter.java24
2 files changed, 30 insertions, 19 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 a25fb2b1f4..e1bb8bcd3e 100644
--- a/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java
+++ b/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java
@@ -18,22 +18,23 @@ public class GT_Cover_ControlsWork extends GT_CoverBehavior {
@Override
public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) {
if (aTileEntity instanceof IMachineProgress) {
+ IMachineProgress machine = (IMachineProgress) aTileEntity;
if (aCoverVariable < 2) {
- if ((aInputRedstone > 0) == (aCoverVariable == 0))
- ((IMachineProgress) aTileEntity).enableWorking();
- else
- ((IMachineProgress) aTileEntity).disableWorking();
- ((IMachineProgress) aTileEntity).setWorkDataValue(aInputRedstone);
- }
- else if (aCoverVariable == 2) {
- ((IMachineProgress) aTileEntity).disableWorking();
+ if ((aInputRedstone > 0) == (aCoverVariable == 0)) {
+ if (!machine.isAllowedToWork())
+ machine.enableWorking();
+ } else if (machine.isAllowedToWork())
+ machine.disableWorking();
+ machine.setWorkDataValue(aInputRedstone);
+ } else if (aCoverVariable == 2 && machine.isAllowedToWork()) {
+ machine.disableWorking();
} else {
- if (((IMachineProgress) aTileEntity).wasShutdown()) {
- ((IMachineProgress) aTileEntity).disableWorking();
- GT_Utility.sendChatToPlayer(lastPlayer, aTileEntity.getInventoryName() + " at " + String.format("(%d,%d,%d)", aTileEntity.getXCoord(), aTileEntity.getYCoord(), aTileEntity.getZCoord()) + " shut down.");
+ if (machine.wasShutdown()) {
+ machine.disableWorking();
+ GT_Utility.sendChatToPlayer(lastPlayer, aTileEntity.getInventoryName() + "at " + String.format("(%d,%d,%d)", aTileEntity.getXCoord(), aTileEntity.getYCoord(), aTileEntity.getZCoord()) + " shut down.");
return 2;
} else {
- return 3 + doCoverThings(aSide,aInputRedstone, aCoverID, aCoverVariable - 3, aTileEntity, aTimer);
+ return 3 + doCoverThings(aSide, aInputRedstone, aCoverID, aCoverVariable - 3, aTileEntity, aTimer);
}
}
}
diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Shutter.java b/src/main/java/gregtech/common/covers/GT_Cover_Shutter.java
index df800302c9..b8ce4260cd 100644
--- a/src/main/java/gregtech/common/covers/GT_Cover_Shutter.java
+++ b/src/main/java/gregtech/common/covers/GT_Cover_Shutter.java
@@ -6,6 +6,7 @@ import gregtech.api.gui.widgets.GT_GuiIcon;
import gregtech.api.gui.widgets.GT_GuiIconCheckButton;
import gregtech.api.interfaces.tileentity.ICoverable;
import gregtech.api.interfaces.tileentity.IMachineProgress;
+import gregtech.api.metatileentity.BaseMetaPipeEntity;
import gregtech.api.net.GT_Packet_TileEntityCover;
import gregtech.api.util.GT_CoverBehavior;
import gregtech.api.util.GT_Utility;
@@ -26,17 +27,26 @@ public class GT_Cover_Shutter extends GT_CoverBehavior {
@Override
public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) {
- aCoverVariable = (aCoverVariable + (aPlayer.isSneaking()? -1 : 1)) % 4;
- if(aCoverVariable <0){aCoverVariable = 3;}
- switch(aCoverVariable) {
+ aCoverVariable = (aCoverVariable + (aPlayer.isSneaking() ? -1 : 1)) % 4;
+ if (aCoverVariable < 0) {
+ aCoverVariable = 3;
+ }
+ switch (aCoverVariable) {
case 0:
- GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("082", "Open if work enabled")); break;
+ GT_Utility.sendChatToPlayer(aPlayer, trans("082", "Open if work enabled"));
+ break;
case 1:
- GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("083", "Open if work disabled")); break;
+ GT_Utility.sendChatToPlayer(aPlayer, trans("083", "Open if work disabled"));
+ break;
case 2:
- GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("084", "Only Output allowed")); break;
+ GT_Utility.sendChatToPlayer(aPlayer, trans("084", "Only Output allowed"));
+ break;
case 3:
- GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("085", "Only Input allowed")); break;
+ GT_Utility.sendChatToPlayer(aPlayer, trans("085", "Only Input allowed"));
+ break;
+ }
+ if (aTileEntity instanceof BaseMetaPipeEntity) {
+ ((BaseMetaPipeEntity) aTileEntity).reloadLocks();
}
return aCoverVariable;
}