aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/interfaces
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/interfaces')
-rw-r--r--src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java6
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IVoidable.java5
2 files changed, 9 insertions, 2 deletions
diff --git a/src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java b/src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java
index 3d4ed80f67..22694cdafd 100644
--- a/src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java
+++ b/src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java
@@ -6,6 +6,7 @@ import static gregtech.api.metatileentity.BaseTileEntity.TOOLTIP_DELAY;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.Set;
import net.minecraft.util.StatCollector;
@@ -80,9 +81,10 @@ public interface ControllerWithOptionalFeatures extends IVoidable, IRecipeLockab
default ButtonWidget createVoidExcessButton(IWidgetBuilder<?> builder) {
Widget button = new ButtonWidget().setOnClick((clickData, widget) -> {
if (supportsVoidProtection()) {
+ Set<VoidingMode> allowed = getAllowedVoidingModes();
switch (clickData.mouseButton) {
- case 0 -> setVoidingMode(getVoidingMode().next());
- case 1 -> setVoidingMode(getVoidingMode().previous());
+ case 0 -> setVoidingMode(getVoidingMode().nextInCollection(allowed));
+ case 1 -> setVoidingMode(getVoidingMode().previousInCollection(allowed));
}
widget.notifyTooltipChange();
}
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IVoidable.java b/src/main/java/gregtech/api/interfaces/tileentity/IVoidable.java
index f4467a2e8c..72dda0ddec 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IVoidable.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IVoidable.java
@@ -1,6 +1,7 @@
package gregtech.api.interfaces.tileentity;
import java.util.List;
+import java.util.Set;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
@@ -18,6 +19,10 @@ public interface IVoidable {
*/
boolean supportsVoidProtection();
+ default Set<VoidingMode> getAllowedVoidingModes() {
+ return VoidingMode.ALL_OPTIONS;
+ }
+
/**
* @return if this machine is configured to not void excess item.
*/