aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
diff options
context:
space:
mode:
authorMartin Robertz <dream-master@gmx.net>2021-04-03 17:12:12 +0200
committerGitHub <noreply@github.com>2021-04-03 17:12:12 +0200
commitcb41ac5155bee91779fc3dbf38966be4a082a1d4 (patch)
treee16f03a97c2799dcdc88fa417fc50eb0639ec100 /src/main/java/gregtech/api
parente04ad467cd52d2a0cba6f3d298f80ea25113741f (diff)
parent486dacc5d03c2d2c89297ab673479d2c17085d0e (diff)
downloadGT5-Unofficial-cb41ac5155bee91779fc3dbf38966be4a082a1d4.tar.gz
GT5-Unofficial-cb41ac5155bee91779fc3dbf38966be4a082a1d4.tar.bz2
GT5-Unofficial-cb41ac5155bee91779fc3dbf38966be4a082a1d4.zip
Merge pull request #486 from johnch18/mccoverfix
Made machine control covers disable themselves upon power loss
Diffstat (limited to 'src/main/java/gregtech/api')
-rw-r--r--src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java1
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java8
-rw-r--r--src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java12
-rw-r--r--src/main/java/gregtech/api/metatileentity/MetaTileEntity.java1
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java7
-rw-r--r--src/main/java/gregtech/api/util/GT_CoverBehavior.java3
-rw-r--r--src/main/java/gregtech/api/util/GT_Utility.java6
8 files changed, 39 insertions, 1 deletions
diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
index f0ca426616..2bf61f6679 100644
--- a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
+++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
@@ -422,4 +422,5 @@ public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHand
default boolean isMachineBlockUpdateRecursive(){
return true;
}
+
}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java
index 9ab1ac0f67..8a815556e7 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java
@@ -155,4 +155,6 @@ public interface IGregTechTileEntity extends ITexturedTileEntity, IGearEnergyTil
getMetaTileEntity().getBaseMetaTileEntity() == this &&
getMetaTileEntity().isMachineBlockUpdateRecursive();
}
+
+ default void setShutdownStatus(boolean newStatus) {return;}
} \ No newline at end of file
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java b/src/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java
index 588158d16c..bae361421c 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java
@@ -66,4 +66,12 @@ public interface IMachineProgress extends IHasWorldObjectAndCoords {
* sets the visible Active Status of the Machine
*/
void setActive(boolean aActive);
+
+ /**
+ * Indicates if the object in question was forced to shut down (i.e. loss of power)
+ * */
+ default boolean wasShutdown() {
+ return false;
+ }
+
} \ No newline at end of file
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
index 26122ae9e9..262eac674c 100644
--- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
@@ -92,6 +92,8 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE
private UUID mOwnerUuid = GT_Utility.defaultUuid;
private NBTTagCompound mRecipeStuff = new NBTTagCompound();
+ public boolean mWasShutdown = false;
+
private static final Field ENTITY_ITEM_HEALTH_FIELD;
static
{
@@ -1004,6 +1006,7 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE
public void enableWorking() {
if (!mWorks) mWorkUpdate = true;
mWorks = true;
+ mWasShutdown = false;
}
@Override
@@ -2318,4 +2321,13 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE
if (gp != null)
gp.invalidate();
}
+
+ @Override
+ public boolean wasShutdown() {
+ return mWasShutdown;
+ }
+
+ public void setShutdownStatus(boolean newStatus) {
+ mWasShutdown = newStatus;
+ }
}
diff --git a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
index 79447a96cb..c9d75dad1a 100644
--- a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
@@ -57,6 +57,7 @@ public abstract class MetaTileEntity implements IMetaTileEntity {
*/
public final ItemStack[] mInventory;
public boolean doTickProfilingInThisTick = true;
+
/**
* accessibility to this Field is no longer given, see below
*/
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
index be7a3642cb..d4a32d20cc 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
@@ -341,7 +341,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
}
if (mEUt < 0) {
if (!drainEnergyInput(((long) -mEUt * 10000) / Math.max(1000, mEfficiency))) {
- stopMachine();
+ criticalStopMachine();
return false;
}
}
@@ -393,6 +393,11 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
getBaseMetaTileEntity().disableWorking();
}
+ public void criticalStopMachine() {
+ stopMachine();
+ getBaseMetaTileEntity().setShutdownStatus(true);
+ }
+
public int getRepairStatus() {
return (mWrench ? 1 : 0) + (mScrewdriver ? 1 : 0) + (mSoftHammer ? 1 : 0) + (mHardHammer ? 1 : 0) + (mSolderingTool ? 1 : 0) + (mCrowbar ? 1 : 0);
}
diff --git a/src/main/java/gregtech/api/util/GT_CoverBehavior.java b/src/main/java/gregtech/api/util/GT_CoverBehavior.java
index c0ad751add..ef332ddb01 100644
--- a/src/main/java/gregtech/api/util/GT_CoverBehavior.java
+++ b/src/main/java/gregtech/api/util/GT_CoverBehavior.java
@@ -15,6 +15,9 @@ import static gregtech.api.enums.GT_Values.E;
* For Covers with a special behavior.
*/
public abstract class GT_CoverBehavior {
+
+ public EntityPlayer lastPlayer = null;
+
/**
* Called by updateEntity inside the covered TileEntity. aCoverVariable is the Value you returned last time.
*/
diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java
index a9ba9b9bbc..9558df4608 100644
--- a/src/main/java/gregtech/api/util/GT_Utility.java
+++ b/src/main/java/gregtech/api/util/GT_Utility.java
@@ -1981,6 +1981,12 @@ public class GT_Utility {
}
try {
if (tTileEntity instanceof IMachineProgress) {
+ if (((IMachineProgress) tTileEntity).isAllowedToWork()) {
+ tList.add("Disabled." + EnumChatFormatting.RED + EnumChatFormatting.RESET);
+ }
+ if (((IMachineProgress) tTileEntity).wasShutdown()) {
+ tList.add("Shut down due to power loss." + EnumChatFormatting.RED + EnumChatFormatting.RESET);
+ }
rEUAmount += 400;
int tValue = 0;
if (0 < (tValue = ((IMachineProgress) tTileEntity).getMaxProgress()))