aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech
diff options
context:
space:
mode:
authorHoleFish <48403212+HoleFish@users.noreply.github.com>2024-06-08 02:44:03 +0800
committerGitHub <noreply@github.com>2024-06-07 20:44:03 +0200
commitdc976486677197e2df9223067347043a5c22dfa7 (patch)
treecdbec26927b3c43281e20c248a6b3a415ee990c3 /src/main/java/gregtech
parent245beddeb456b296d133211a976fbec449a402c4 (diff)
downloadGT5-Unofficial-dc976486677197e2df9223067347043a5c22dfa7.tar.gz
GT5-Unofficial-dc976486677197e2df9223067347043a5c22dfa7.tar.bz2
GT5-Unofficial-dc976486677197e2df9223067347043a5c22dfa7.zip
Maintenance cleanup (#2632)
* cleanup * waila * fix & compatibility --------- Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main/java/gregtech')
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java82
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit.java11
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java18
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_DroneCentre.java10
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_Hatch_DroneDownLink.java15
5 files changed, 69 insertions, 67 deletions
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 29f24fa685..810f9a123f 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
@@ -114,6 +114,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
implements ControllerWithOptionalFeatures, IAddGregtechLogo, IAddUIWidgets, IBindPlayerInventoryUI {
public static boolean disableMaintenance;
+ public boolean hasMaintenanceChecks = getDefaultHasMaintenanceChecks();
public boolean mMachine = false, mWrench = false, mScrewdriver = false, mSoftHammer = false, mHardHammer = false,
mSolderingTool = false, mCrowbar = false, mRunningOnLoad = false;
public boolean mStructureChanged = false;
@@ -168,6 +169,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
this.damageFactorHigh = (float) GregTech_API.sMachineFile
.get(ConfigCategories.machineconfig, "MultiBlockMachines.damageFactorHigh", 0.6f);
this.mNEI = "";
+ if (!shouldCheckMaintenance()) fixAllIssues();
}
public GT_MetaTileEntity_MultiBlockBase(String aName) {
@@ -179,6 +181,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
.get(ConfigCategories.machineconfig, "MultiBlockMachines.damageFactorLow", 5);
this.damageFactorHigh = (float) GregTech_API.sMachineFile
.get(ConfigCategories.machineconfig, "MultiBlockMachines.damageFactorHigh", 0.6f);
+ if (!shouldCheckMaintenance()) fixAllIssues();
}
@Override
@@ -324,13 +327,14 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
for (int i = 0; i < mOutputFluids.length; i++)
mOutputFluids[i] = GT_Utility.loadFluid(aNBT, "mOutputFluids" + i);
}
-
- mWrench = aNBT.getBoolean("mWrench");
- mScrewdriver = aNBT.getBoolean("mScrewdriver");
- mSoftHammer = aNBT.getBoolean("mSoftHammer");
- mHardHammer = aNBT.getBoolean("mHardHammer");
- mSolderingTool = aNBT.getBoolean("mSolderingTool");
- mCrowbar = aNBT.getBoolean("mCrowbar");
+ if (shouldCheckMaintenance()) {
+ mWrench = aNBT.getBoolean("mWrench");
+ mScrewdriver = aNBT.getBoolean("mScrewdriver");
+ mSoftHammer = aNBT.getBoolean("mSoftHammer");
+ mHardHammer = aNBT.getBoolean("mHardHammer");
+ mSolderingTool = aNBT.getBoolean("mSolderingTool");
+ mCrowbar = aNBT.getBoolean("mCrowbar");
+ } else fixAllIssues();
}
protected SingleRecipeCheck loadSingleRecipeChecker(NBTTagCompound aNBT) {
@@ -444,17 +448,9 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
}
}
- private void checkMaintenance() {
- if (disableMaintenance) {
- mWrench = true;
- mScrewdriver = true;
- mSoftHammer = true;
- mHardHammer = true;
- mSolderingTool = true;
- mCrowbar = true;
+ public void checkMaintenance() {
+ if (!shouldCheckMaintenance()) return;
- return;
- }
for (GT_MetaTileEntity_Hatch_Maintenance tHatch : filterValidMTEs(mMaintenanceHatches)) {
if (tHatch.mAuto && !(mWrench && mScrewdriver && mSoftHammer && mHardHammer && mSolderingTool && mCrowbar))
tHatch.autoMaintainance();
@@ -975,21 +971,14 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
stopMachine(ShutDownReasonRegistry.NO_MACHINE_PART);
return false;
}
- if (getRepairStatus() == 0) {
+ if (shouldCheckMaintenance() && getRepairStatus() == 0) {
stopMachine(ShutDownReasonRegistry.NO_REPAIR);
return false;
}
if (mRuntime++ > 1000) {
mRuntime = 0;
- if (getBaseMetaTileEntity().getRandomNumber(6000) == 0) {
- switch (getBaseMetaTileEntity().getRandomNumber(6)) {
- case 0 -> mWrench = false;
- case 1 -> mScrewdriver = false;
- case 2 -> mSoftHammer = false;
- case 3 -> mHardHammer = false;
- case 4 -> mSolderingTool = false;
- case 5 -> mCrowbar = false;
- }
+ if (shouldCheckMaintenance() && getBaseMetaTileEntity().getRandomNumber(6000) == 0) {
+ causeMaintenanceIssue();
}
if (mInventory[1] != null && getBaseMetaTileEntity().getRandomNumber(2) == 0
&& !mInventory[1].getUnlocalizedName()
@@ -1007,6 +996,17 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
return true;
}
+ public void causeMaintenanceIssue() {
+ switch (getBaseMetaTileEntity().getRandomNumber(6)) {
+ case 0 -> mWrench = false;
+ case 1 -> mScrewdriver = false;
+ case 2 -> mSoftHammer = false;
+ case 3 -> mHardHammer = false;
+ case 4 -> mSolderingTool = false;
+ case 5 -> mCrowbar = false;
+ }
+ }
+
public void explodeMultiblock() {
GT_Log.exp.println(
@@ -1880,11 +1880,12 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
if (tag.getBoolean("incompleteStructure")) {
currentTip.add(RED + "** INCOMPLETE STRUCTURE **" + RESET);
}
- currentTip.add(
- (tag.getBoolean("hasProblems") ? (RED + "** HAS PROBLEMS **") : GREEN + "Running Fine") + RESET
- + " Efficiency: "
- + tag.getFloat("efficiency")
- + "%");
+ String efficiency = RESET + " Efficiency: " + tag.getFloat("efficiency") + "%";
+ if (tag.getBoolean("hasProblems")) {
+ currentTip.add(RED + "** HAS PROBLEMS **" + efficiency);
+ } else if (!tag.getBoolean("incompleteStructure")) {
+ currentTip.add(GREEN + "Running Fine" + efficiency);
+ }
boolean isActive = tag.getBoolean("isActive");
if (isActive) {
@@ -2546,4 +2547,21 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
protected void setExoticEnergyHatches(List<GT_MetaTileEntity_Hatch> ExoticEnergyHatches) {
this.mExoticEnergyHatches = ExoticEnergyHatches;
}
+
+ public void fixAllIssues() {
+ mWrench = true;
+ mScrewdriver = true;
+ mSoftHammer = true;
+ mHardHammer = true;
+ mSolderingTool = true;
+ mCrowbar = true;
+ }
+
+ public boolean getDefaultHasMaintenanceChecks() {
+ return true;
+ }
+
+ public boolean shouldCheckMaintenance() {
+ return !disableMaintenance && hasMaintenanceChecks;
+ }
}
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit.java
index 1af65465c1..3a22c4ee99 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit.java
@@ -210,12 +210,6 @@ public class GT_MetaTileEntity_Charcoal_Pit extends GT_MetaTileEntity_TooltipMul
@Override
public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
- mWrench = true;
- mScrewdriver = true;
- mSoftHammer = true;
- mHardHammer = true;
- mSolderingTool = true;
- mCrowbar = true;
return true;
}
@@ -310,4 +304,9 @@ public class GT_MetaTileEntity_Charcoal_Pit extends GT_MetaTileEntity_TooltipMul
.run();
}
}
+
+ @Override
+ public boolean getDefaultHasMaintenanceChecks() {
+ return false;
+ }
}
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java
index 493546211c..cac611cf0d 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java
@@ -223,18 +223,9 @@ public abstract class GT_MetaTileEntity_FusionComputer
@Override
public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
- if (checkPiece(STRUCTURE_PIECE_MAIN, 7, 1, 12) && mInputHatches.size() > 1
+ return checkPiece(STRUCTURE_PIECE_MAIN, 7, 1, 12) && mInputHatches.size() > 1
&& !mOutputHatches.isEmpty()
- && !mEnergyHatches.isEmpty()) {
- mWrench = true;
- mScrewdriver = true;
- mSoftHammer = true;
- mHardHammer = true;
- mSolderingTool = true;
- mCrowbar = true;
- return true;
- }
- return false;
+ && !mEnergyHatches.isEmpty();
}
private boolean addEnergyInjector(IGregTechTileEntity aBaseMetaTileEntity, int aBaseCasingIndex) {
@@ -653,4 +644,9 @@ public abstract class GT_MetaTileEntity_FusionComputer
public Set<VoidingMode> getAllowedVoidingModes() {
return VoidingMode.FLUID_ONLY_MODES;
}
+
+ @Override
+ public boolean getDefaultHasMaintenanceChecks() {
+ return false;
+ }
}
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_DroneCentre.java b/src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_DroneCentre.java
index 2bb224cdb7..6580047b9c 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_DroneCentre.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_DroneCentre.java
@@ -278,7 +278,6 @@ public class GT_MetaTileEntity_DroneCentre extends
@Override
public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
if (aBaseMetaTileEntity.isServerSide()) {
- fixAll();
if (aTick % 20 == 0) {
if (switch (droneLevel) {
case 1 -> getBaseMetaTileEntity().getRandomNumber(28800);
@@ -484,10 +483,6 @@ public class GT_MetaTileEntity_DroneCentre extends
.setBlock((int) (x + xOffset), (int) (y + yOffset), (int) (z + zOffset), Blocks.air);
}
- private void fixAll() {
- this.mWrench = this.mScrewdriver = this.mSoftHammer = this.mHardHammer = this.mCrowbar = this.mSolderingTool = true;
- }
-
@Override
public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) {
super.addUIWidgets(builder, buildContext);
@@ -909,4 +904,9 @@ public class GT_MetaTileEntity_DroneCentre extends
public static HashMultimap<Integer, GT_MetaTileEntity_DroneCentre> getCentreMap() {
return droneMap;
}
+
+ @Override
+ public boolean getDefaultHasMaintenanceChecks() {
+ return false;
+ }
}
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_Hatch_DroneDownLink.java b/src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_Hatch_DroneDownLink.java
index 959b6874ba..33dad93d52 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_Hatch_DroneDownLink.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/drone/GT_MetaTileEntity_Hatch_DroneDownLink.java
@@ -113,7 +113,7 @@ public class GT_MetaTileEntity_Hatch_DroneDownLink extends GT_MetaTileEntity_Hat
doNormalMaintain();
} else {
// Centre offline? ...do nothing.
- // doRandomIssue();
+ // machine.causeMaintenanceIssue();
}
} else {
// If the connection invalid, set it to null.
@@ -123,7 +123,7 @@ public class GT_MetaTileEntity_Hatch_DroneDownLink extends GT_MetaTileEntity_Hat
tryFindConnection();
// Let's have some "surprise". Sorry, surprise party is over.
// if (this.machine != null && this.machine.isValid()) {
- // doRandomIssue();
+ // machine.causeMaintenanceIssue();
}
}
}
@@ -201,17 +201,6 @@ public class GT_MetaTileEntity_Hatch_DroneDownLink extends GT_MetaTileEntity_Hat
}
}
- private void doRandomIssue() {
- switch (getBaseMetaTileEntity().getRandomNumber(6)) {
- case 0 -> machine.mWrench = !machine.mWrench;
- case 1 -> machine.mScrewdriver = !machine.mScrewdriver;
- case 2 -> machine.mSoftHammer = !machine.mSoftHammer;
- case 3 -> machine.mCrowbar = !machine.mCrowbar;
- case 4 -> machine.mSolderingTool = !connection.machine.mSolderingTool;
- case 5 -> machine.mHardHammer = !connection.machine.mHardHammer;
- }
- }
-
// Find mainframe. Mainly from a method in GT_API——This will cause performance issue! Do not call it frequently.
private GT_MetaTileEntity_MultiBlockBase tryFindCoreGTMultiBlock() {
Queue<ChunkCoordinates> tQueue = new LinkedList<>();