From e8f64392b09cb249450c2711f9957a1e96948d4b Mon Sep 17 00:00:00 2001 From: Caedis Date: Sun, 22 Dec 2024 02:06:09 -0600 Subject: [PATCH] Add config to show/hide dropoff button in inventory --- .../common/config/BogoSorterConfig.java | 2 ++ .../bogosorter/common/config/ConfigGui.java | 15 +++++++++++++++ .../common/dropoff/DropOffButtonHandler.java | 5 ++++- .../resources/assets/bogosorter/lang/en_US.lang | 1 + 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/cleanroommc/bogosorter/common/config/BogoSorterConfig.java b/src/main/java/com/cleanroommc/bogosorter/common/config/BogoSorterConfig.java index 852a0905..75859ca0 100644 --- a/src/main/java/com/cleanroommc/bogosorter/common/config/BogoSorterConfig.java +++ b/src/main/java/com/cleanroommc/bogosorter/common/config/BogoSorterConfig.java @@ -43,6 +43,7 @@ public static void save(JsonObject json) { general.addProperty("enableDropoff", DropOffHandler.enableDroppOff); general.addProperty("dropoffRender",DropOffHandler.dropoffRender); general.addProperty("dropoffChatMessage",DropOffHandler.dropoffChatMessage); + general.addProperty("dropoffButtonShow", DropOffButtonHandler.showButton); general.addProperty("dropoffButtonX", DropOffButtonHandler.buttonX); general.addProperty("dropoffButtonY",DropOffButtonHandler.buttonY); general.addProperty("enableHotbarSwap", HotbarSwap.isEnabled()); @@ -85,6 +86,7 @@ public static void load(JsonObject json) { DropOffHandler.enableDroppOff = JsonHelper.getBoolean(general, true, "enableDropoff"); DropOffHandler.dropoffRender = JsonHelper.getBoolean(general, true, "dropoffRender"); DropOffHandler.dropoffChatMessage = JsonHelper.getBoolean(general, true, "dropoffChatMessage"); + DropOffButtonHandler.showButton = JsonHelper.getBoolean(general, true, "dropoffButtonShow"); DropOffButtonHandler.buttonX = JsonHelper.getInt(general, 80, "dropoffButtonX"); DropOffButtonHandler.buttonY = JsonHelper.getInt(general, 12, "dropoffButtonY"); HotbarSwap.setEnabled(JsonHelper.getBoolean(general, true, "enableHotbarSwap")); diff --git a/src/main/java/com/cleanroommc/bogosorter/common/config/ConfigGui.java b/src/main/java/com/cleanroommc/bogosorter/common/config/ConfigGui.java index 666ea37f..2400af86 100644 --- a/src/main/java/com/cleanroommc/bogosorter/common/config/ConfigGui.java +++ b/src/main/java/com/cleanroommc/bogosorter/common/config/ConfigGui.java @@ -6,6 +6,7 @@ import com.cleanroommc.bogosorter.api.SortRule; import com.cleanroommc.bogosorter.common.HotbarSwap; import com.cleanroommc.bogosorter.common.SortConfigChangeEvent; +import com.cleanroommc.bogosorter.common.dropoff.DropOffButtonHandler; import com.cleanroommc.bogosorter.common.dropoff.DropOffHandler; import com.cleanroommc.bogosorter.common.sort.NbtSortRule; import com.cleanroommc.modularui.api.drawable.IDrawable; @@ -181,6 +182,20 @@ public IWidget createGeneralConfigUI(GuiContext context) { .height(14) .marginLeft(10) .expanded())) + .child(new Row() + .widthRel(1f).height(14) + .margin(0, 2) + .child(new CycleButtonWidget() + .value(new BoolValue.Dynamic(() -> DropOffButtonHandler.showButton, val -> DropOffButtonHandler.showButton = val)) + .stateOverlay(TOGGLE_BUTTON) + .disableHoverBackground() + .size(14, 14) + .margin(8, 0) + .background(IDrawable.EMPTY)) + .child(IKey.lang("bogosort.gui.dropoffbutton_enable").asWidget() + .height(14) + .marginLeft(10) + .expanded())) .child(new Row() .widthRel(1f).height(14) .margin(0, 2) diff --git a/src/main/java/com/cleanroommc/bogosorter/common/dropoff/DropOffButtonHandler.java b/src/main/java/com/cleanroommc/bogosorter/common/dropoff/DropOffButtonHandler.java index 4c27ebca..dd7d25ac 100644 --- a/src/main/java/com/cleanroommc/bogosorter/common/dropoff/DropOffButtonHandler.java +++ b/src/main/java/com/cleanroommc/bogosorter/common/dropoff/DropOffButtonHandler.java @@ -18,12 +18,13 @@ public class DropOffButtonHandler { public static int buttonX = 80; public static int buttonY = 12; + public static boolean showButton = true; @SubscribeEvent @SideOnly(Side.CLIENT) public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) { GuiScreen screen = event.gui; - if (screen instanceof GuiContainerCreative) { + if (!showButton || screen instanceof GuiContainerCreative) { return; } try { @@ -41,6 +42,8 @@ public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) { public void onDrawScreen(GuiScreenEvent.DrawScreenEvent.Post event) { GuiScreen screen = event.gui; + if (!showButton) return; + if (screen instanceof InventoryEffectRenderer) { for (GuiButton guiButton : ((IGuiContainerAccessor) event.gui).getButtons()) { if (guiButton instanceof InvButton invButton) { diff --git a/src/main/resources/assets/bogosorter/lang/en_US.lang b/src/main/resources/assets/bogosorter/lang/en_US.lang index e4f2bcb8..c9b54d9a 100644 --- a/src/main/resources/assets/bogosorter/lang/en_US.lang +++ b/src/main/resources/assets/bogosorter/lang/en_US.lang @@ -19,6 +19,7 @@ bogosort.gui.hotbar_scrolling=Enable hotbar column scrolling bogosort.gui.hotbar_scrolling.tooltip=Scroll though inventory column by holding ALT bogosort.gui.enabled=Enabled bogosort.gui.dropoff_enable=Enable Dropoff +bogosort.gui.dropoffbutton_enable=Show Dropoff Button in Inventory bogosort.gui.dropoff_render=Show Dropoff Targets bogosort.gui.dropoff_chatmessage=Show Dropoff Chat Message