From c6b9a9ac32da50f9af309c553e3c5594d5ec0cbf Mon Sep 17 00:00:00 2001 From: shedaniel Date: Thu, 27 Jan 2022 22:01:13 +0800 Subject: Fix #671 --- .../java/me/shedaniel/rei/impl/client/config/ConfigObjectImpl.java | 6 ++++++ .../shedaniel/rei/impl/client/gui/widget/EntryListEntryWidget.java | 3 ++- .../rei/plugin/client/runtime/DefaultClientRuntimePlugin.java | 4 +++- 3 files changed, 11 insertions(+), 2 deletions(-) (limited to 'runtime/src/main/java/me') diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigObjectImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigObjectImpl.java index c71a3a769..4fe37ff72 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigObjectImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigObjectImpl.java @@ -383,6 +383,11 @@ public class ConfigObjectImpl implements ConfigObject, ConfigData { return functionality.allowInventoryHighlighting; } + @Override + public ItemCheatingMode getItemCheatingMode() { + return functionality.itemCheatingMode; + } + @ApiStatus.Experimental @Override public double getHorizontalEntriesBoundariesPercentage() { @@ -544,6 +549,7 @@ public class ConfigObjectImpl implements ConfigObject, ConfigData { @Comment("Declares whether mob effects should be on the left side instead of the right side.") private boolean leftSideMobEffects = false; @Comment("Declares whether subsets is enabled.") private boolean isSubsetsEnabled = false; private boolean allowInventoryHighlighting = true; + @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) private ItemCheatingMode itemCheatingMode = ItemCheatingMode.REI_LIKE; } public static class Advanced { diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryListEntryWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryListEntryWidget.java index 07146d995..85cbc89f7 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryListEntryWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryListEntryWidget.java @@ -27,6 +27,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import me.shedaniel.math.Point; import me.shedaniel.rei.api.client.ClientHelper; import me.shedaniel.rei.api.client.config.ConfigObject; +import me.shedaniel.rei.api.client.gui.config.ItemCheatingMode; import me.shedaniel.rei.api.client.gui.screen.DisplayScreen; import me.shedaniel.rei.api.common.entry.EntryStack; import me.shedaniel.rei.api.common.entry.type.VanillaEntryTypes; @@ -83,7 +84,7 @@ public abstract class EntryListEntryWidget extends EntryWidget { entry = cheatsAs.isEmpty() ? entry : cheatsAs; } if (entry.getValueType() == ItemStack.class) - entry.castValue().setCount(button != 1 && !Screen.hasShiftDown() ? 1 : entry.castValue().getMaxStackSize()); + entry.castValue().setCount(button != 1 && !Screen.hasShiftDown() == (ConfigObject.getInstance().getItemCheatingMode() == ItemCheatingMode.REI_LIKE) ? 1 : entry.castValue().getMaxStackSize()); return ClientHelper.getInstance().tryCheatingEntry(entry); } diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/DefaultClientRuntimePlugin.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/DefaultClientRuntimePlugin.java index 6121a95fc..9101f7648 100644 --- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/DefaultClientRuntimePlugin.java +++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/DefaultClientRuntimePlugin.java @@ -32,10 +32,12 @@ import me.shedaniel.math.Rectangle; import me.shedaniel.rei.RoughlyEnoughItemsCoreClient; import me.shedaniel.rei.api.client.ClientHelper; import me.shedaniel.rei.api.client.REIRuntime; +import me.shedaniel.rei.api.client.config.ConfigObject; import me.shedaniel.rei.api.client.favorites.FavoriteEntry; import me.shedaniel.rei.api.client.favorites.FavoriteEntryType; import me.shedaniel.rei.api.client.gui.AbstractRenderer; import me.shedaniel.rei.api.client.gui.Renderer; +import me.shedaniel.rei.api.client.gui.config.ItemCheatingMode; import me.shedaniel.rei.api.client.gui.drag.DraggableStackProviderWidget; import me.shedaniel.rei.api.client.gui.drag.DraggableStackVisitorWidget; import me.shedaniel.rei.api.client.gui.screen.DisplayScreen; @@ -226,7 +228,7 @@ public class DefaultClientRuntimePlugin implements REIClientPlugin { entry = cheatsAs.isEmpty() ? entry : cheatsAs; } if (entry.getType() == VanillaEntryTypes.ITEM) - entry.castValue().setCount(button != 1 && !Screen.hasShiftDown() ? 1 : entry.castValue().getMaxStackSize()); + entry.castValue().setCount(button != 1 && !Screen.hasShiftDown() == (ConfigObject.getInstance().getItemCheatingMode() == ItemCheatingMode.REI_LIKE) ? 1 : entry.castValue().getMaxStackSize()); return ClientHelper.getInstance().tryCheatingEntry(entry); } -- cgit