diff options
author | Glease <4586901+Glease@users.noreply.github.com> | 2023-07-30 20:26:53 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-30 14:26:53 +0200 |
commit | f983308b936c54f3331424b0d6d51d8a3b11f415 (patch) | |
tree | eabcbe297913884a7acc2997d7464d5fb355d2f2 /src/main/java/gregtech/api/interfaces | |
parent | 9812da7aabe91ce96d9ece08f792912aa7d1882c (diff) | |
download | GT5-Unofficial-f983308b936c54f3331424b0d6d51d8a3b11f415.tar.gz GT5-Unofficial-f983308b936c54f3331424b0d6d51d8a3b11f415.tar.bz2 GT5-Unofficial-f983308b936c54f3331424b0d6d51d8a3b11f415.zip |
enable subclass to allow less voiding mode being set (#2191)
* enable subclass to allow less voiding mode being set
* fix bug
* rename
Diffstat (limited to 'src/main/java/gregtech/api/interfaces')
-rw-r--r-- | src/main/java/gregtech/api/interfaces/modularui/ControllerWithOptionalFeatures.java | 6 | ||||
-rw-r--r-- | src/main/java/gregtech/api/interfaces/tileentity/IVoidable.java | 5 |
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. */ |