diff options
| author | HoleFish <48403212+HoleFish@users.noreply.github.com> | 2024-06-08 02:44:03 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-07 20:44:03 +0200 |
| commit | dc976486677197e2df9223067347043a5c22dfa7 (patch) | |
| tree | cdbec26927b3c43281e20c248a6b3a415ee990c3 /src/main/java/gregtech | |
| parent | 245beddeb456b296d133211a976fbec449a402c4 (diff) | |
| download | GT5-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')
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<>(); |
