aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/gui/widget/EntryWidget.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/widget/EntryWidget.java')
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/EntryWidget.java21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/EntryWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/EntryWidget.java
index 2389fbdc6..d7d60af40 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/EntryWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/EntryWidget.java
@@ -36,6 +36,7 @@ import me.shedaniel.rei.impl.ScreenHelper;
import me.shedaniel.rei.utils.CollectionUtils;
import net.minecraft.client.gui.Element;
import net.minecraft.client.resource.language.I18n;
+import net.minecraft.client.util.InputUtil;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.LiteralText;
import net.minecraft.util.Identifier;
@@ -353,9 +354,25 @@ public class EntryWidget extends Slot {
if (!interactable)
return false;
if (containsMouse(mouseX, mouseY)) {
- if (button == 0)
+ if (interactableFavorites && ConfigObject.getInstance().isFavoritesEnabled() && containsMouse(PointHelper.ofMouse()) && !getCurrentEntry().isEmpty()) {
+ ModifierKeyCode keyCode = ConfigObject.getInstance().getFavoriteKeyCode();
+ EntryStack entry = getCurrentEntry().copy();
+ entry.setAmount(127);
+ if (keyCode.matchesMouse(button)) {
+ if (reverseFavoritesAction())
+ ConfigObject.getInstance().getFavorites().removeIf(entry::equalsIgnoreAmount);
+ else if (!CollectionUtils.anyMatchEqualsEntryIgnoreAmount(ConfigObject.getInstance().getFavorites(), entry))
+ ConfigObject.getInstance().getFavorites().add(entry);
+ ConfigManager.getInstance().saveConfig();
+ FavoritesListWidget favoritesListWidget = ContainerScreenOverlay.getFavoritesListWidget();
+ if (favoritesListWidget != null)
+ favoritesListWidget.updateSearch(ContainerScreenOverlay.getEntryListWidget(), ScreenHelper.getSearchField().getText());
+ return true;
+ }
+ }
+ if ((ConfigObject.getInstance().getRecipeKeybind().getType() != InputUtil.Type.MOUSE && button == 0) || ConfigObject.getInstance().getRecipeKeybind().matchesMouse(button))
return ClientHelper.getInstance().openView(ClientHelper.ViewSearchBuilder.builder().addRecipesFor(getCurrentEntry()).setOutputNotice(getCurrentEntry()).fillPreferredOpenedCategory());
- else if (button == 1)
+ else if ((ConfigObject.getInstance().getUsageKeybind().getType() != InputUtil.Type.MOUSE && button == 1) || ConfigObject.getInstance().getUsageKeybind().matchesMouse(button))
return ClientHelper.getInstance().openView(ClientHelper.ViewSearchBuilder.builder().addUsagesFor(getCurrentEntry()).setInputNotice(getCurrentEntry()).fillPreferredOpenedCategory());
}
return false;