aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/util/GT_ParallelHelper.java
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2023-05-28 18:21:42 +0900
committerGitHub <noreply@github.com>2023-05-28 11:21:42 +0200
commit9af741164c5b59c4d884aba48ebeab7db5442d63 (patch)
tree5bbbbb5feb67db85aefd5f21fd885a1a0ab71c78 /src/main/java/gregtech/api/util/GT_ParallelHelper.java
parent24ad01683a084bebd26152b803ee19bffe78213c (diff)
downloadGT5-Unofficial-9af741164c5b59c4d884aba48ebeab7db5442d63.tar.gz
GT5-Unofficial-9af741164c5b59c4d884aba48ebeab7db5442d63.tar.bz2
GT5-Unofficial-9af741164c5b59c4d884aba48ebeab7db5442d63.zip
Add new mode for void protection & implement it for more multis (#2024)
* Void protection improvements * Rename methods: isXXXButtonEnabled -> supportsXXX * Adjust texture for forbidden * Add MultiBlockFeatureSupportDumpers * Fix oversight in PCBFactory * Revert void protection support for PA * Rename class: ControllerWithButtons -> ControllerWithOptionalFeatures
Diffstat (limited to 'src/main/java/gregtech/api/util/GT_ParallelHelper.java')
-rw-r--r--src/main/java/gregtech/api/util/GT_ParallelHelper.java49
1 files changed, 36 insertions, 13 deletions
diff --git a/src/main/java/gregtech/api/util/GT_ParallelHelper.java b/src/main/java/gregtech/api/util/GT_ParallelHelper.java
index 04218f4566..ff45f8213b 100644
--- a/src/main/java/gregtech/api/util/GT_ParallelHelper.java
+++ b/src/main/java/gregtech/api/util/GT_ParallelHelper.java
@@ -7,6 +7,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockB
import gregtech.api.multitileentity.multiblock.base.Controller;
import gregtech.api.objects.XSTR;
+@SuppressWarnings({ "unused", "UnusedReturnValue" })
public class GT_ParallelHelper {
/**
@@ -55,9 +56,13 @@ public class GT_ParallelHelper {
*/
private FluidStack[] mFluidOutputs;
/**
- * Does the multi have void protection enabled
+ * Does the multi have void protection enabled for items
*/
- private boolean mVoidProtection;
+ private boolean protectExcessItem;
+ /**
+ * Does the multi have void protection enabled for fluids
+ */
+ private boolean protectExcessFluid;
/**
* Should the Parallel Helper automatically consume for the multi
*/
@@ -87,20 +92,38 @@ public class GT_ParallelHelper {
public GT_ParallelHelper() {}
/**
- * Enables void protection on a metatile multiblock.
+ * Sets MetaTE controller, with current configuration for void protection mode.
+ */
+ public GT_ParallelHelper setController(GT_MetaTileEntity_MultiBlockBase machineMeta) {
+ return setController(machineMeta, machineMeta.protectsExcessItem(), machineMeta.protectsExcessFluid());
+ }
+
+ /**
+ * Sets MetaTE controller, with void protection mode forcibly.
*/
- public GT_ParallelHelper enableVoidProtection(GT_MetaTileEntity_MultiBlockBase aMachineMeta) {
- mVoidProtection = true;
- mMachineMeta = aMachineMeta;
+ public GT_ParallelHelper setController(GT_MetaTileEntity_MultiBlockBase machineMeta, boolean protectExcessItem,
+ boolean protectExcessFluid) {
+ this.protectExcessItem = protectExcessItem;
+ this.protectExcessFluid = protectExcessFluid;
+ this.mMachineMeta = machineMeta;
return this;
}
/**
- * Enables void protection on a multitile multiblock.
+ * Sets MuTE controller, with current configuration for void protection mode.
+ */
+ public GT_ParallelHelper setController(Controller<?> machineMulti) {
+ return setController(machineMulti, machineMulti.protectsExcessItem(), machineMulti.protectsExcessFluid());
+ }
+
+ /**
+ * Sets MuTE controller, with void protection mode forcibly.
*/
- public GT_ParallelHelper enableVoidProtection(Controller<?> aMachineMulti) {
- mVoidProtection = true;
- mMachineMulti = aMachineMulti;
+ public GT_ParallelHelper setController(Controller<?> machineMulti, boolean protectExcessItem,
+ boolean protectExcessFluid) {
+ this.protectExcessItem = protectExcessItem;
+ this.protectExcessFluid = protectExcessFluid;
+ this.mMachineMulti = machineMulti;
return this;
}
@@ -273,12 +296,12 @@ public class GT_ParallelHelper {
mMaxParallel *= mBatchModifier;
}
// Let's look at how many parallels we can get with void protection
- if (mVoidProtection) {
+ if (protectExcessItem || protectExcessFluid) {
VoidProtectionHelper voidProtectionHelper = new VoidProtectionHelper();
if (mMachineMeta != null) {
- voidProtectionHelper.setController(mMachineMeta);
+ voidProtectionHelper.setController(mMachineMeta, protectExcessItem, protectExcessFluid);
} else if (mMachineMulti != null) {
- voidProtectionHelper.setController(mMachineMulti);
+ voidProtectionHelper.setController(mMachineMulti, protectExcessItem, protectExcessFluid);
}
voidProtectionHelper.setItemOutputs(mRecipe.mOutputs)
.setFluidOutputs(mRecipe.mFluidOutputs)