From c35205ac0559d93eb92b80ad94fd98ee7087ecd2 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 ++- .../me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java | 4 +++- 3 files changed, 11 insertions(+), 2 deletions(-) (limited to 'runtime/src/main/java') 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 688ac17ee..4f58e1a9d 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 @@ -382,6 +382,11 @@ public class ConfigObjectImpl implements ConfigObject, ConfigData { return functionality.allowInventoryHighlighting; } + @Override + public ItemCheatingMode getItemCheatingMode() { + return functionality.itemCheatingMode; + } + @ApiStatus.Experimental @Override public double getHorizontalEntriesBoundariesPercentage() { @@ -542,6 +547,7 @@ public class ConfigObjectImpl implements ConfigObject, ConfigData { @Comment("Declares whether REI should remove the recipe book.") private boolean disableRecipeBook = 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 f2ee1dd83..e7b046bdd 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/DefaultClientRuntimePlugin.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java index 43527c4af..ef9e97562 100644 --- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java +++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java @@ -31,10 +31,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