From c2d28cbf7028ffed2f56169adbce3f03cc0c5b49 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 19 Mar 2019 14:25:15 +0800 Subject: v2.5 Beta --- .../java/me/shedaniel/rei/api/RecipeCategory.java | 2 +- .../java/me/shedaniel/rei/client/ClientHelper.java | 10 -- .../java/me/shedaniel/rei/client/ConfigObject.java | 3 - .../java/me/shedaniel/rei/client/ScreenHelper.java | 37 +++++++ src/main/java/me/shedaniel/rei/client/Weather.java | 13 ++- .../shedaniel/rei/gui/ContainerScreenOverlay.java | 117 ++++++++++++--------- .../me/shedaniel/rei/gui/RecipeViewingScreen.java | 30 +++++- .../me/shedaniel/rei/gui/config/ConfigEntry.java | 6 +- .../me/shedaniel/rei/gui/config/ConfigScreen.java | 23 ++-- .../shedaniel/rei/gui/credits/CreditsScreen.java | 8 +- .../me/shedaniel/rei/gui/widget/ButtonWidget.java | 12 +++ .../gui/widget/CraftableToggleButtonWidget.java | 9 +- .../shedaniel/rei/gui/widget/DraggableWidget.java | 4 +- .../shedaniel/rei/gui/widget/ItemListOverlay.java | 9 +- .../shedaniel/rei/gui/widget/ItemSlotWidget.java | 5 +- .../me/shedaniel/rei/gui/widget/QueuedTooltip.java | 8 +- .../rei/gui/widget/SpeedCraftingButtonWidget.java | 15 +-- .../me/shedaniel/rei/gui/widget/TabWidget.java | 4 +- .../java/me/shedaniel/rei/gui/widget/Widget.java | 1 - .../shedaniel/rei/mixin/MixinContainerScreen.java | 16 --- .../mixin/MixinCreativePlayerInventoryScreen.java | 4 +- .../me/shedaniel/rei/mixin/MixinTabGetter.java | 3 +- .../rei/plugin/DefaultBlastingCategory.java | 2 +- .../rei/plugin/DefaultBrewingCategory.java | 2 +- .../rei/plugin/DefaultCampfireCategory.java | 2 +- .../rei/plugin/DefaultCraftingCategory.java | 2 +- .../rei/plugin/DefaultSmeltingCategory.java | 2 +- .../rei/plugin/DefaultSmokingCategory.java | 2 +- .../rei/plugin/DefaultStoneCuttingCategory.java | 2 +- .../java/me/shedaniel/rei/utils/ClothRegistry.java | 10 ++ 30 files changed, 213 insertions(+), 150 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/me/shedaniel/rei/api/RecipeCategory.java b/src/main/java/me/shedaniel/rei/api/RecipeCategory.java index 4bc4c6e0d..9fdd35801 100644 --- a/src/main/java/me/shedaniel/rei/api/RecipeCategory.java +++ b/src/main/java/me/shedaniel/rei/api/RecipeCategory.java @@ -1,8 +1,8 @@ package me.shedaniel.rei.api; import me.shedaniel.rei.gui.RecipeViewingScreen; -import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; +import me.shedaniel.rei.gui.widget.Widget; import net.minecraft.client.gui.DrawableHelper; import net.minecraft.item.ItemStack; import net.minecraft.util.Identifier; diff --git a/src/main/java/me/shedaniel/rei/client/ClientHelper.java b/src/main/java/me/shedaniel/rei/client/ClientHelper.java index 84a3706f3..89678caeb 100644 --- a/src/main/java/me/shedaniel/rei/client/ClientHelper.java +++ b/src/main/java/me/shedaniel/rei/client/ClientHelper.java @@ -16,7 +16,6 @@ import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.ModContainer; import net.fabricmc.loader.api.metadata.ModMetadata; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.Mouse; import net.minecraft.client.gui.Screen; import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen; import net.minecraft.client.util.InputUtil; @@ -28,7 +27,6 @@ import net.minecraft.util.Identifier; import net.minecraft.util.PacketByteBuf; import net.minecraft.util.registry.Registry; -import java.awt.*; import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -54,14 +52,6 @@ public class ClientHelper implements ClientModInitializer { return ""; } - public static Point getMouseLocation() { - MinecraftClient client = MinecraftClient.getInstance(); - Mouse mouse = client.mouse; - double double_1 = mouse.getX() * (double) client.window.getScaledWidth() / (double) client.window.getWidth(); - double double_2 = mouse.getY() * (double) client.window.getScaledHeight() / (double) client.window.getHeight(); - return new Point((int) double_1, (int) double_2); - } - public static boolean isCheating() { return RoughlyEnoughItemsCore.getConfigManager().getConfig().cheating; } diff --git a/src/main/java/me/shedaniel/rei/client/ConfigObject.java b/src/main/java/me/shedaniel/rei/client/ConfigObject.java index 447fb8658..b1303a697 100644 --- a/src/main/java/me/shedaniel/rei/client/ConfigObject.java +++ b/src/main/java/me/shedaniel/rei/client/ConfigObject.java @@ -34,9 +34,6 @@ public class ConfigObject { @Comment("To disable REI's defualt plugin, don't change this unless you understand what you are doing") public boolean loadDefaultPlugin = true; - @Comment("Toggle the credits button") - public boolean disableCreditsButton = false; - @Comment("Maximum recipes viewed at one time.") public int maxRecipePerPage = 3; diff --git a/src/main/java/me/shedaniel/rei/client/ScreenHelper.java b/src/main/java/me/shedaniel/rei/client/ScreenHelper.java index fa426e300..5c7112d41 100644 --- a/src/main/java/me/shedaniel/rei/client/ScreenHelper.java +++ b/src/main/java/me/shedaniel/rei/client/ScreenHelper.java @@ -1,18 +1,24 @@ package me.shedaniel.rei.client; import com.google.common.collect.Lists; +import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.gui.ContainerScreenOverlay; import me.shedaniel.rei.gui.widget.TextFieldWidget; import me.shedaniel.rei.listeners.ContainerScreenHooks; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.event.client.ClientTickCallback; +import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.ContainerScreen; +import net.minecraft.client.gui.Drawable; import net.minecraft.client.gui.InputListener; import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.widget.RecipeBookButtonWidget; +import net.minecraft.client.render.GuiLighting; +import net.minecraft.client.util.Window; import net.minecraft.item.ItemStack; +import java.awt.*; import java.util.List; public class ScreenHelper implements ClientModInitializer { @@ -65,6 +71,37 @@ public class ScreenHelper implements ClientModInitializer { return (ContainerScreenHooks) lastContainerScreen; } + public static void drawHoveringWidget(int x, int y, Drawable drawable, int width, int height, float delta) { + Window window = MinecraftClient.getInstance().window; + drawHoveringWidget(new Dimension(window.getScaledWidth(), window.getScaledHeight()), x, y, drawable, width, height, delta); + } + + public static void drawHoveringWidget(Dimension dimension, int x, int y, Drawable drawable, int width, int height, float delta) { + int int_5 = x + 12; + int int_6 = y - 12; + + if (int_5 + width > dimension.width) + int_5 -= 28 + width; + if (int_6 + height + 6 > dimension.height) + int_6 = dimension.height - height - 6; + + drawable.draw(int_5, int_6, delta); + // zOffset = 300.0F; + // itemRenderer.zOffset = 300.0F; + // int int_9 = -267386864; + // drawGradientRect(int_5 - 3, int_6 - 4, int_5 + width + 3, int_6 - 3, -267386864, -267386864); + // drawGradientRect(int_5 - 3, int_6 + height + 3, int_5 + width + 3, int_6 + height + 4, -267386864, -267386864); + // drawGradientRect(int_5 - 3, int_6 - 3, int_5 + width + 3, int_6 + height + 3, -267386864, -267386864); + // drawGradientRect(int_5 - 4, int_6 - 3, int_5 - 3, int_6 + height + 3, -267386864, -267386864); + // drawGradientRect(int_5 + width + 3, int_6 - 3, int_5 + width + 4, int_6 + height + 3, -267386864, -267386864); + // int int_10 = 1347420415; + // int int_11 = 1344798847; + // drawGradientRect(int_5 - 3, int_6 - 3 + 1, int_5 - 3 + 1, int_6 + height + 3 - 1, 1347420415, 1344798847); + // drawGradientRect(int_5 + width + 2, int_6 - 3 + 1, int_5 + width + 3, int_6 + height + 3 - 1, 1347420415, 1344798847); + // drawGradientRect(int_5 - 3, int_6 - 3, int_5 + width + 3, int_6 - 3 + 1, 1347420415, 1347420415); + // drawGradientRect(int_5 - 3, int_6 + height + 2, int_5 + width + 3, int_6 + height + 3, 1344798847, 1344798847); + } + @Override public void onInitializeClient() { ClientTickCallback.EVENT.register(client -> { diff --git a/src/main/java/me/shedaniel/rei/client/Weather.java b/src/main/java/me/shedaniel/rei/client/Weather.java index b4cc2dc04..f59cba7d4 100644 --- a/src/main/java/me/shedaniel/rei/client/Weather.java +++ b/src/main/java/me/shedaniel/rei/client/Weather.java @@ -1,14 +1,14 @@ package me.shedaniel.rei.client; public enum Weather { - CLEAR(0, "Clear"), RAIN(1, "Rain"), THUNDER(2, "Thunder"); + CLEAR(0, "text.rei.weather.clear"), RAIN(1, "text.rei.weather.rain"), THUNDER(2, "text.rei.weather.thunder"); private final int id; - private final String name; + private final String translateKey; - Weather(int id, String name) { + Weather(int id, String translateKey) { this.id = id; - this.name = name; + this.translateKey = translateKey; } public static Weather byId(int int_1) { @@ -31,8 +31,7 @@ public enum Weather { return id; } - public String getName() { - return name; + public String getTranslateKey() { + return translateKey; } - } diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java index b752ae04d..8692e68a9 100644 --- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java +++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java @@ -2,11 +2,11 @@ package me.shedaniel.rei.gui; import com.google.common.collect.Lists; import com.mojang.blaze3d.platform.GlStateManager; +import me.shedaniel.cloth.ClothInitializer; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.client.ClientHelper; import me.shedaniel.rei.client.ScreenHelper; import me.shedaniel.rei.client.Weather; -import me.shedaniel.rei.gui.credits.CreditsScreen; import me.shedaniel.rei.gui.widget.*; import net.minecraft.client.MinecraftClient; import net.minecraft.client.audio.PositionedSoundInstance; @@ -26,10 +26,10 @@ import net.minecraft.util.math.MathHelper; import net.minecraft.world.GameMode; import java.awt.*; -import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; public class ContainerScreenOverlay extends ScreenComponent { @@ -45,6 +45,10 @@ public class ContainerScreenOverlay extends ScreenComponent { private ButtonWidget buttonLeft, buttonRight; private int lastLeft; + public static ItemListOverlay getItemListOverlay() { + return itemListOverlay; + } + public void onInitialized() { onInitialized(false); } @@ -66,6 +70,15 @@ public class ContainerScreenOverlay extends ScreenComponent { page = getTotalPage(); itemListOverlay.updateList(getItemListArea(), page, searchTerm); } + + @Override + public Optional getTooltips() { + return Optional.ofNullable(I18n.translate("text.rei.previous_page")); + } + + @Override + public void setHasFocus(boolean boolean_1) { + } }); widgets.add(buttonRight = new ButtonWidget(rectangle.x + rectangle.width - 18, rectangle.y + 5, 16, 16, new TranslatableTextComponent("text.rei.right_arrow")) { @Override @@ -75,6 +88,15 @@ public class ContainerScreenOverlay extends ScreenComponent { page = 0; itemListOverlay.updateList(getItemListArea(), page, searchTerm); } + + @Override + public Optional getTooltips() { + return Optional.ofNullable(I18n.translate("text.rei.next_page")); + } + + @Override + public void setHasFocus(boolean boolean_1) { + } }); if (setPage) page = MathHelper.clamp(page, 0, getTotalPage()); @@ -97,24 +119,23 @@ public class ContainerScreenOverlay extends ScreenComponent { MinecraftClient.getInstance().getTextureManager().bindTexture(CHEST_GUI_TEXTURE); GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F); drawTexturedRect(getBounds().x + 3, getBounds().y + 3, 0, 0, 14, 14); - if (isHighlighted(mouseX, mouseY)) { - List list = new LinkedList<>(Arrays.asList(I18n.translate("text.rei.config_tooltip").split("\n"))); - list.add(" "); - if (!ClientHelper.isCheating()) - list.add("§c§m" + I18n.translate("text.rei.cheating")); - else - list.add("§a" + I18n.translate("text.rei.cheating")); - addTooltip(QueuedTooltip.create(list)); - } + } + + @Override + public Optional getTooltips() { + String tooltips = I18n.translate("text.rei.config_tooltip"); + tooltips += "\n "; + if (!ClientHelper.isCheating()) + tooltips += "\n§c§m" + I18n.translate("text.rei.cheating"); + else + tooltips += "\n§a" + I18n.translate("text.rei.cheating"); + return Optional.ofNullable(tooltips); + } + + @Override + public void setHasFocus(boolean boolean_1) { } }); - if (!RoughlyEnoughItemsCore.getConfigManager().getConfig().disableCreditsButton) - widgets.add(new ButtonWidget(RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel ? window.getScaledWidth() - 50 : 10, window.getScaledHeight() - 30, 40, 20, I18n.translate("text.rei.credits")) { - @Override - public void onPressed() { - MinecraftClient.getInstance().openScreen(new CreditsScreen(ScreenHelper.getLastContainerScreen())); - } - }); if (RoughlyEnoughItemsCore.getConfigManager().getConfig().showUtilsButtons) { widgets.add(new ButtonWidget(RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel ? window.getScaledWidth() - 55 : 35, 10, 20, 20, "") { @Override @@ -126,14 +147,21 @@ public class ContainerScreenOverlay extends ScreenComponent { public void draw(int mouseX, int mouseY, float partialTicks) { text = getGameModeShortText(getCurrentGameMode()); super.draw(mouseX, mouseY, partialTicks); - if (isHighlighted(mouseX, mouseY)) - addTooltip(QueuedTooltip.create(I18n.translate("text.rei.gamemode_button.tooltip", getGameModeText(getNextGameMode())).split("\n"))); + } + + @Override + public Optional getTooltips() { + return Optional.ofNullable(I18n.translate("text.rei.gamemode_button.tooltip", getGameModeText(getNextGameMode()))); + } + + @Override + public void setHasFocus(boolean boolean_1) { } }); widgets.add(new ButtonWidget(RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel ? window.getScaledWidth() - 80 : 60, 10, 20, 20, "") { @Override public void onPressed() { - MinecraftClient.getInstance().player.sendChatMessage(RoughlyEnoughItemsCore.getConfigManager().getConfig().weatherCommand.replaceAll("\\{weather}", getNextWeather().getName().toLowerCase())); + MinecraftClient.getInstance().player.sendChatMessage(RoughlyEnoughItemsCore.getConfigManager().getConfig().weatherCommand.replaceAll("\\{weather}", getNextWeather().name().toLowerCase())); } @Override @@ -143,8 +171,15 @@ public class ContainerScreenOverlay extends ScreenComponent { MinecraftClient.getInstance().getTextureManager().bindTexture(CHEST_GUI_TEXTURE); GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F); drawTexturedRect(getBounds().x + 3, getBounds().y + 3, getCurrentWeather().getId() * 14, 14, 14, 14); - if (isHighlighted(mouseX, mouseY)) - addTooltip(QueuedTooltip.create(I18n.translate("text.rei.weather_button.tooltip", getNextWeather().getName()).split("\n"))); + } + + @Override + public Optional getTooltips() { + return Optional.ofNullable(I18n.translate("text.rei.weather_button.tooltip", I18n.translate(getNextWeather().getTranslateKey()))); + } + + @Override + public void setHasFocus(boolean boolean_1) { } }); } @@ -156,6 +191,8 @@ public class ContainerScreenOverlay extends ScreenComponent { super.draw(mouseX, mouseY, partialTicks); if (isHighlighted(mouseX, mouseY)) addTooltip(QueuedTooltip.create(I18n.translate("text.rei.go_back_first_page").split("\n"))); + else if (focused) + ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(new Point(x, y), I18n.translate("text.rei.go_back_first_page").split("\n"))); } @Override @@ -164,6 +201,10 @@ public class ContainerScreenOverlay extends ScreenComponent { page = 0; itemListOverlay.updateList(getItemListArea(), page, searchTerm); } + + @Override + public void setHasFocus(boolean boolean_1) { + } }); if (ScreenHelper.searchField == null) ScreenHelper.searchField = new TextFieldWidget(0, 0, 0, 0) { @@ -217,38 +258,18 @@ public class ContainerScreenOverlay extends ScreenComponent { } private String getGameModeShortText(GameMode gameMode) { - switch (gameMode) { - case CREATIVE: - return "C"; - case SURVIVAL: - return "S"; - case ADVENTURE: - return "A"; - case SPECTATOR: - return "SP"; - } - return gameMode.name(); + return I18n.translate("text.rei.short_gamemode." + gameMode.getName()); } private String getGameModeText(GameMode gameMode) { - switch (gameMode) { - case CREATIVE: - return "Creative"; - case SURVIVAL: - return "Survival"; - case ADVENTURE: - return "Adventure"; - case SPECTATOR: - return "Spectator"; - } - return gameMode.name(); + return I18n.translate("selectWorld.gameMode." + gameMode.getName()); } private GameMode getNextGameMode() { try { GameMode current = getCurrentGameMode(); int next = current.getId() + 1; - if (next >= 3) + if (next > 3) next = 0; return GameMode.byId(next); } catch (Exception e) { @@ -372,7 +393,7 @@ public class ContainerScreenOverlay extends ScreenComponent { public boolean mouseScrolled(double i, double j, double amount) { if (!ScreenHelper.isOverlayVisible()) return false; - if (rectangle.contains(ClientHelper.getMouseLocation())) { + if (rectangle.contains(ClothInitializer.clientUtils.getMouseLocation())) { if (amount > 0 && buttonLeft.enabled) buttonLeft.onPressed(); else if (amount < 0 && buttonRight.enabled) @@ -399,7 +420,7 @@ public class ContainerScreenOverlay extends ScreenComponent { } if (!ScreenHelper.isOverlayVisible()) return false; - Point point = ClientHelper.getMouseLocation(); + Point point = ClothInitializer.clientUtils.getMouseLocation(); ItemStack itemStack = null; if (MinecraftClient.getInstance().currentScreen instanceof ContainerScreen) if (ScreenHelper.getLastContainerScreenHooks().rei_getHoveredSlot() != null && !ScreenHelper.getLastContainerScreenHooks().rei_getHoveredSlot().getStack().isEmpty()) diff --git a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java index 31ba6793d..968d6079c 100644 --- a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java @@ -2,6 +2,7 @@ package me.shedaniel.rei.gui; import com.google.common.collect.Lists; import com.mojang.blaze3d.platform.GlStateManager; +import me.shedaniel.cloth.ClothInitializer; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.*; import me.shedaniel.rei.client.ClientHelper; @@ -128,6 +129,11 @@ public class RecipeViewingScreen extends Screen { page = 0; RecipeViewingScreen.this.onInitialized(); } + + @Override + public Optional getTooltips() { + return Optional.ofNullable(I18n.translate("text.rei.previous_category")); + } }); widgets.add(new ClickableLabelWidget((int) bounds.getCenterX(), (int) bounds.getY() + 7, "") { @Override @@ -158,6 +164,11 @@ public class RecipeViewingScreen extends Screen { page = 0; RecipeViewingScreen.this.onInitialized(); } + + @Override + public Optional getTooltips() { + return Optional.ofNullable(I18n.translate("text.rei.next_category")); + } }); categoryBack.enabled = categories.size() > 1; categoryNext.enabled = categories.size() > 1; @@ -170,6 +181,11 @@ public class RecipeViewingScreen extends Screen { page = getTotalPages(selectedCategory) - 1; RecipeViewingScreen.this.onInitialized(); } + + @Override + public Optional getTooltips() { + return Optional.ofNullable(I18n.translate("text.rei.previous_page")); + } }); widgets.add(new ClickableLabelWidget((int) bounds.getCenterX(), (int) bounds.getY() + 23, "") { @Override @@ -197,9 +213,15 @@ public class RecipeViewingScreen extends Screen { page = 0; RecipeViewingScreen.this.onInitialized(); } + + @Override + public Optional getTooltips() { + return Optional.ofNullable(I18n.translate("text.rei.next_page")); + } }); - recipeBack.enabled = categoriesMap.get(selectedCategory).size() > getRecipesPerPage(); - recipeNext.enabled = categoriesMap.get(selectedCategory).size() > getRecipesPerPage(); + int recipesPerPageByHeight = getRecipesPerPageByHeight(); + recipeBack.enabled = categoriesMap.get(selectedCategory).size() > recipesPerPageByHeight; + recipeNext.enabled = categoriesMap.get(selectedCategory).size() > recipesPerPageByHeight; for(int i = 0; i < 6; i++) { int j = i + categoryPages * 6; @@ -360,13 +382,13 @@ public class RecipeViewingScreen extends Screen { for(InputListener listener : listeners) if (listener.mouseScrolled(i, j, amount)) return true; - if (getBounds().contains(ClientHelper.getMouseLocation())) { + if (getBounds().contains(ClothInitializer.clientUtils.getMouseLocation())) { if (amount > 0 && recipeBack.enabled) recipeBack.onPressed(); else if (amount < 0 && recipeNext.enabled) recipeNext.onPressed(); } - if ((new Rectangle(bounds.x, bounds.y - 28, bounds.width, 28)).contains(ClientHelper.getMouseLocation())) { + if ((new Rectangle(bounds.x, bounds.y - 28, bounds.width, 28)).contains(ClothInitializer.clientUtils.getMouseLocation())) { if (amount > 0 && categoryBack.enabled) categoryBack.onPressed(); else if (amount < 0 && categoryNext.enabled) diff --git a/src/main/java/me/shedaniel/rei/gui/config/ConfigEntry.java b/src/main/java/me/shedaniel/rei/gui/config/ConfigEntry.java index fdea6df9f..c5a520448 100644 --- a/src/main/java/me/shedaniel/rei/gui/config/ConfigEntry.java +++ b/src/main/java/me/shedaniel/rei/gui/config/ConfigEntry.java @@ -1,6 +1,6 @@ package me.shedaniel.rei.gui.config; -import me.shedaniel.rei.client.ClientHelper; +import me.shedaniel.cloth.ClothInitializer; import me.shedaniel.rei.gui.widget.ButtonWidget; import me.shedaniel.rei.gui.widget.TextFieldWidget; import net.minecraft.client.MinecraftClient; @@ -33,7 +33,7 @@ public abstract class ConfigEntry extends EntryListWidget.Entry { @Override public void draw(int entryWidth, int height, int i3, int i4, boolean isSelected, float delta) { Window window = MinecraftClient.getInstance().window; - Point mouse = ClientHelper.getMouseLocation(); + Point mouse = ClothInitializer.clientUtils.getMouseLocation(); if (MinecraftClient.getInstance().textRenderer.isRightToLeft()) { MinecraftClient.getInstance().textRenderer.drawWithShadow(nameComponent.getFormattedText(), window.getScaledWidth() - MinecraftClient.getInstance().textRenderer.getStringWidth(nameComponent.getFormattedText()) - 40, getY() + 5, 16777215); this.buttonWidget.text = buttonProvider.getText(); @@ -97,7 +97,7 @@ public abstract class ConfigEntry extends EntryListWidget.Entry { @Override public void draw(int entryWidth, int height, int i3, int i4, boolean isSelected, float delta) { Window window = MinecraftClient.getInstance().window; - Point mouse = ClientHelper.getMouseLocation(); + Point mouse = ClothInitializer.clientUtils.getMouseLocation(); if (MinecraftClient.getInstance().textRenderer.isRightToLeft()) { MinecraftClient.getInstance().textRenderer.drawWithShadow(nameComponent.getFormattedText(), window.getScaledWidth() - MinecraftClient.getInstance().textRenderer.getStringWidth(nameComponent.getFormattedText()) - 40, getY() + 5, 16777215); this.textFieldWidget.getBounds().setLocation(getX() + 1, getY() + 2); diff --git a/src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java b/src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java index ce8814abf..4d2452d17 100644 --- a/src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java @@ -5,6 +5,7 @@ import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.client.ClientHelper; import me.shedaniel.rei.client.ItemListOrdering; import me.shedaniel.rei.client.ScreenHelper; +import me.shedaniel.rei.gui.credits.CreditsScreen; import me.shedaniel.rei.gui.widget.QueuedTooltip; import me.shedaniel.rei.gui.widget.TextFieldWidget; import net.minecraft.client.MinecraftClient; @@ -154,22 +155,6 @@ public class ConfigScreen extends Screen { } })); - entryListWidget.configAddEntry(new ConfigEntry.ButtonConfigEntry(new TranslatableTextComponent("text.rei.config.disable_credits_button"), new ConfigEntry.ButtonConfigEntry.ConfigEntryButtonProvider() { - @Override - public void onPressed() { - RoughlyEnoughItemsCore.getConfigManager().getConfig().disableCreditsButton = !RoughlyEnoughItemsCore.getConfigManager().getConfig().disableCreditsButton; - try { - RoughlyEnoughItemsCore.getConfigManager().saveConfig(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Override - public String getText() { - return getTrueFalseText(RoughlyEnoughItemsCore.getConfigManager().getConfig().disableCreditsButton); - } - })); entryListWidget.configAddEntry(new ConfigEntry.ButtonConfigEntry(new TranslatableTextComponent("text.rei.config.enable_util_buttons"), new ConfigEntry.ButtonConfigEntry.ConfigEntryButtonProvider() { @Override public void onPressed() { @@ -320,6 +305,12 @@ public class ConfigScreen extends Screen { ScreenHelper.getLastOverlay().onInitialized(); } }); + addButton(new ButtonWidget(RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel ? screenWidth - 55 : 10, screenHeight - 26, 45, 20, I18n.translate("text.rei.credits")) { + @Override + public void onPressed() { + MinecraftClient.getInstance().openScreen(new CreditsScreen(ConfigScreen.this)); + } + }); super.onInitialized(); } diff --git a/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java b/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java index f55c20191..694abce73 100644 --- a/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java @@ -2,7 +2,6 @@ package me.shedaniel.rei.gui.credits; import me.shedaniel.rei.client.ScreenHelper; import net.minecraft.client.gui.ContainerScreen; -import net.minecraft.client.gui.InputListener; import net.minecraft.client.gui.Screen; import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.resource.language.I18n; @@ -10,10 +9,10 @@ import net.minecraft.text.StringTextComponent; public class CreditsScreen extends Screen { - private ContainerScreen parent; + private Screen parent; private CreditsEntryListWidget entryListWidget; - public CreditsScreen(ContainerScreen parent) { + public CreditsScreen(Screen parent) { this.parent = parent; } @@ -21,7 +20,8 @@ public class CreditsScreen extends Screen { public boolean keyPressed(int int_1, int int_2, int int_3) { if (int_1 == 256 && this.doesEscapeKeyClose()) { this.client.openScreen(parent); - ScreenHelper.getLastOverlay().onInitialized(); + if (parent instanceof ContainerScreen) + ScreenHelper.getLastOverlay().onInitialized(); return true; } return super.keyPressed(int_1, int_2, int_3); diff --git a/src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java index b396c764e..2a1e1f52c 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java @@ -1,6 +1,7 @@ package me.shedaniel.rei.gui.widget; import com.mojang.blaze3d.platform.GlStateManager; +import me.shedaniel.rei.client.ScreenHelper; import net.minecraft.client.MinecraftClient; import net.minecraft.client.audio.PositionedSoundInstance; import net.minecraft.client.font.TextRenderer; @@ -13,6 +14,7 @@ import net.minecraft.util.math.MathHelper; import java.awt.*; import java.util.Collections; import java.util.List; +import java.util.Optional; public abstract class ButtonWidget extends HighlightableWidget { @@ -91,6 +93,12 @@ public abstract class ButtonWidget extends HighlightableWidget { } this.drawStringCentered(textRenderer, this.text, x + width / 2, y + (height - 8) / 2, colour); + + if (getTooltips().isPresent()) + if (isHighlighted(mouseX, mouseY)) + ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(getTooltips().get().split("\n"))); + else if (focused) + ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(new Point(x + width / 2, y + height / 2), getTooltips().get().split("\n"))); } } @@ -139,4 +147,8 @@ public abstract class ButtonWidget extends HighlightableWidget { public abstract void onPressed(); + public Optional getTooltips() { + return Optional.empty(); + } + } diff --git a/src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java index dbd44bc9e..66024a910 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java @@ -2,7 +2,6 @@ package me.shedaniel.rei.gui.widget; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.RoughlyEnoughItemsCore; -import me.shedaniel.rei.client.ClientHelper; import me.shedaniel.rei.client.ScreenHelper; import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; @@ -13,7 +12,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.Identifier; import java.awt.*; -import java.util.Arrays; public abstract class CraftableToggleButtonWidget extends ButtonWidget { @@ -31,6 +29,7 @@ public abstract class CraftableToggleButtonWidget extends ButtonWidget { @Override public void draw(int mouseX, int mouseY, float partialTicks) { + GuiLighting.disable(); super.draw(mouseX, mouseY, partialTicks); GuiLighting.enableForItems(); @@ -44,11 +43,7 @@ public abstract class CraftableToggleButtonWidget extends ButtonWidget { this.drawTexturedRect(getBounds().x, getBounds().y, (56 + (RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled() ? 0 : 20)), 202, 20, 20); this.zOffset = 0f; if (getBounds().contains(mouseX, mouseY)) - drawTooltip(); - } - - private void drawTooltip() { - ScreenHelper.getLastOverlay().addTooltip(new QueuedTooltip(ClientHelper.getMouseLocation(), Arrays.asList(I18n.translate(RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled() ? "text.rei.showing_craftable" : "text.rei.showing_all")))); + ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(I18n.translate(RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled() ? "text.rei.showing_craftable" : "text.rei.showing_all"))); } } diff --git a/src/main/java/me/shedaniel/rei/gui/widget/DraggableWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/DraggableWidget.java index 3a003a608..ad497141b 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/DraggableWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/DraggableWidget.java @@ -1,6 +1,6 @@ package me.shedaniel.rei.gui.widget; -import me.shedaniel.rei.client.ClientHelper; +import me.shedaniel.cloth.ClothInitializer; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.InputListener; import net.minecraft.client.util.Window; @@ -35,7 +35,7 @@ public abstract class DraggableWidget extends HighlightableWidget { @Override public boolean mouseDragged(double double_1, double double_2, int int_1, double double_3, double double_4) { - Point mouse = ClientHelper.getMouseLocation(); + Point mouse = ClothInitializer.clientUtils.getMouseLocation(); if (int_1 == 0) { if (!dragged) { if (getGrabBounds().contains(mouse)) { diff --git a/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java b/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java index a6542b3e5..af5b1bcb3 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java @@ -1,6 +1,7 @@ package me.shedaniel.rei.gui.widget; import com.google.common.collect.Lists; +import me.shedaniel.cloth.ClothInitializer; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.RecipeHelper; import me.shedaniel.rei.client.ClientHelper; @@ -73,8 +74,8 @@ public class ItemListOverlay extends Widget { public void draw(int int_1, int int_2, float float_1) { widgets.forEach(widget -> widget.draw(int_1, int_2, float_1)); ClientPlayerEntity player = MinecraftClient.getInstance().player; - if (rectangle.contains(ClientHelper.getMouseLocation()) && ClientHelper.isCheating() && !player.inventory.getCursorStack().isEmpty() && MinecraftClient.getInstance().isInSingleplayer()) - ScreenHelper.getLastOverlay().addTooltip(new QueuedTooltip(ClientHelper.getMouseLocation(), Arrays.asList(I18n.translate("text.rei.delete_items")))); + if (rectangle.contains(ClothInitializer.clientUtils.getMouseLocation()) && ClientHelper.isCheating() && !player.inventory.getCursorStack().isEmpty() && MinecraftClient.getInstance().isInSingleplayer()) + ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(I18n.translate("text.rei.delete_items"))); } public List getWidgets() { @@ -132,6 +133,10 @@ public class ItemListOverlay extends Widget { return false; } + public Rectangle getListArea() { + return listArea; + } + public List getCurrentDisplayed() { return currentDisplayed; } diff --git a/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java index c5165c554..016d2f8c0 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java @@ -2,6 +2,7 @@ package me.shedaniel.rei.gui.widget; import com.google.common.collect.Lists; import com.mojang.blaze3d.platform.GlStateManager; +import me.shedaniel.cloth.ClothInitializer; import me.shedaniel.rei.client.ClientHelper; import me.shedaniel.rei.client.ScreenHelper; import net.minecraft.client.MinecraftClient; @@ -87,7 +88,7 @@ public class ItemSlotWidget extends HighlightableWidget { protected void drawToolTip(ItemStack itemStack) { List toolTip = getTooltip(itemStack); - ScreenHelper.getLastOverlay().addTooltip(new QueuedTooltip(ClientHelper.getMouseLocation(), toolTip)); + ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(toolTip)); } protected List getTooltip(ItemStack itemStack) { @@ -141,7 +142,7 @@ public class ItemSlotWidget extends HighlightableWidget { public boolean keyPressed(int int_1, int int_2, int int_3) { if (!clickToMoreRecipes) return false; - if (getBounds().contains(ClientHelper.getMouseLocation())) + if (getBounds().contains(ClothInitializer.clientUtils.getMouseLocation())) if (ClientHelper.RECIPE.matchesKey(int_1, int_2)) return ClientHelper.executeRecipeKeyBind(getCurrentStack().copy()); else if (ClientHelper.USAGE.matchesKey(int_1, int_2)) diff --git a/src/main/java/me/shedaniel/rei/gui/widget/QueuedTooltip.java b/src/main/java/me/shedaniel/rei/gui/widget/QueuedTooltip.java index 5f7a689eb..86149b2a5 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/QueuedTooltip.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/QueuedTooltip.java @@ -2,7 +2,7 @@ package me.shedaniel.rei.gui.widget; import com.google.common.collect.Lists; -import me.shedaniel.rei.client.ClientHelper; +import me.shedaniel.cloth.ClothInitializer; import java.awt.*; import java.util.LinkedList; @@ -13,7 +13,7 @@ public class QueuedTooltip { private Point location; private List text; - protected QueuedTooltip(Point location, List text) { + private QueuedTooltip(Point location, List text) { this.location = location; this.text = new LinkedList<>(text); } @@ -27,11 +27,11 @@ public class QueuedTooltip { } public static QueuedTooltip create(List text) { - return QueuedTooltip.create(ClientHelper.getMouseLocation(), text); + return QueuedTooltip.create(ClothInitializer.clientUtils.getMouseLocation(), text); } public static QueuedTooltip create(String... text) { - return QueuedTooltip.create(ClientHelper.getMouseLocation(), text); + return QueuedTooltip.create(ClothInitializer.clientUtils.getMouseLocation(), text); } public Point getLocation() { diff --git a/src/main/java/me/shedaniel/rei/gui/widget/SpeedCraftingButtonWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/SpeedCraftingButtonWidget.java index f3bc8658b..09571a246 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/SpeedCraftingButtonWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/SpeedCraftingButtonWidget.java @@ -2,13 +2,12 @@ package me.shedaniel.rei.gui.widget; import me.shedaniel.rei.api.RecipeDisplay; import me.shedaniel.rei.api.SpeedCraftFunctional; -import me.shedaniel.rei.client.ClientHelper; import me.shedaniel.rei.client.ScreenHelper; import net.minecraft.client.MinecraftClient; import net.minecraft.client.resource.language.I18n; import java.awt.*; -import java.util.Arrays; +import java.util.Optional; import java.util.function.Supplier; public class SpeedCraftingButtonWidget extends ButtonWidget { @@ -33,11 +32,13 @@ public class SpeedCraftingButtonWidget extends ButtonWidget { public void draw(int mouseX, int mouseY, float partialTicks) { this.enabled = functional != null && functional.acceptRecipe(ScreenHelper.getLastContainerScreen(), displaySupplier.get()); super.draw(mouseX, mouseY, partialTicks); - if (getBounds().contains(mouseX, mouseY)) - if (enabled) - ScreenHelper.getLastOverlay().addTooltip(new QueuedTooltip(ClientHelper.getMouseLocation(), Arrays.asList(I18n.translate("text.speed_craft.move_items")))); - else - ScreenHelper.getLastOverlay().addTooltip(new QueuedTooltip(ClientHelper.getMouseLocation(), Arrays.asList(I18n.translate("text.speed_craft.failed_move_items")))); } + @Override + public Optional getTooltips() { + if (enabled) + return Optional.ofNullable(I18n.translate("text.speed_craft.move_items")); + else + return Optional.ofNullable(I18n.translate("text.speed_craft.failed_move_items")); + } } diff --git a/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java index 25d01da79..21bce43f6 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java @@ -1,7 +1,6 @@ package me.shedaniel.rei.gui.widget; import com.mojang.blaze3d.platform.GlStateManager; -import me.shedaniel.rei.client.ClientHelper; import me.shedaniel.rei.client.ScreenHelper; import me.shedaniel.rei.gui.RecipeViewingScreen; import net.minecraft.client.MinecraftClient; @@ -11,7 +10,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.Identifier; import java.awt.*; -import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -90,7 +88,7 @@ public class TabWidget extends HighlightableWidget { } private void drawTooltip() { - ScreenHelper.getLastOverlay().addTooltip(new QueuedTooltip(ClientHelper.getMouseLocation(), Arrays.asList(categoryName))); + ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(categoryName)); } @Override diff --git a/src/main/java/me/shedaniel/rei/gui/widget/Widget.java b/src/main/java/me/shedaniel/rei/gui/widget/Widget.java index c9c375e32..d2e228921 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/Widget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/Widget.java @@ -1,7 +1,6 @@ package me.shedaniel.rei.gui.widget; import net.minecraft.client.gui.Drawable; -import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.gui.ScreenComponent; public abstract class Widget extends ScreenComponent implements Drawable { diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java b/src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java index f07ce83ff..76dc82a1d 100644 --- a/src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java +++ b/src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java @@ -1,9 +1,7 @@ package me.shedaniel.rei.mixin; import me.shedaniel.rei.api.TabGetter; -import me.shedaniel.rei.client.ClientHelper; import me.shedaniel.rei.client.ScreenHelper; -import me.shedaniel.rei.gui.ContainerScreenOverlay; import me.shedaniel.rei.listeners.ContainerScreenHooks; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.ContainerScreen; @@ -56,20 +54,6 @@ public class MixinContainerScreen extends Screen implements ContainerScreenHooks return focusedSlot; } - @Override - public boolean mouseScrolled(double i, double j, double double_1) { - if (MinecraftClient.getInstance().currentScreen instanceof CreativePlayerInventoryScreen) { - TabGetter tabGetter = (TabGetter) MinecraftClient.getInstance().currentScreen; - if (tabGetter.rei_getSelectedTab() != ItemGroup.INVENTORY.getIndex()) - return super.mouseScrolled(i, j, double_1); - } - ContainerScreenOverlay overlay = ScreenHelper.getLastOverlay(); - if (ScreenHelper.isOverlayVisible() && overlay.getRectangle().contains(ClientHelper.getMouseLocation())) - if (overlay.mouseScrolled(i, j, double_1)) - return true; - return super.mouseScrolled(i, j, double_1); - } - @Inject(method = "keyPressed(III)Z", at = @At("HEAD"), cancellable = true) public void keyPressed(int int_1, int int_2, int int_3, CallbackInfoReturnable ci) { if (MinecraftClient.getInstance().currentScreen instanceof CreativePlayerInventoryScreen) { diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java b/src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java index a7c06c689..f1f16092c 100644 --- a/src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java +++ b/src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java @@ -1,6 +1,6 @@ package me.shedaniel.rei.mixin; -import me.shedaniel.rei.client.ClientHelper; +import me.shedaniel.cloth.ClothInitializer; import me.shedaniel.rei.client.ScreenHelper; import net.minecraft.client.gui.ingame.AbstractPlayerInventoryScreen; import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen; @@ -31,7 +31,7 @@ public abstract class MixinCreativePlayerInventoryScreen extends AbstractPlayerI @Inject(method = "mouseScrolled", at = @At("HEAD"), cancellable = true) public void mouseScrolled(double i, double j, double amount, CallbackInfoReturnable ci) { if (!doRenderScrollBar() && selectedTab == ItemGroup.INVENTORY.getIndex()) - if (ScreenHelper.isOverlayVisible() && ScreenHelper.getLastOverlay().getRectangle().contains(ClientHelper.getMouseLocation()) && ScreenHelper.getLastOverlay().mouseScrolled(i, j, amount)) { + if (ScreenHelper.isOverlayVisible() && ScreenHelper.getLastOverlay().getRectangle().contains(ClothInitializer.clientUtils.getMouseLocation()) && ScreenHelper.getLastOverlay().mouseScrolled(i, j, amount)) { ci.setReturnValue(true); ci.cancel(); } diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinTabGetter.java b/src/main/java/me/shedaniel/rei/mixin/MixinTabGetter.java index e62496726..02ed406cf 100644 --- a/src/main/java/me/shedaniel/rei/mixin/MixinTabGetter.java +++ b/src/main/java/me/shedaniel/rei/mixin/MixinTabGetter.java @@ -8,7 +8,8 @@ import org.spongepowered.asm.mixin.Shadow; @Mixin(CreativePlayerInventoryScreen.class) public class MixinTabGetter implements TabGetter { - @Shadow private static int selectedTab; + @Shadow + private static int selectedTab; @Override public int rei_getSelectedTab() { diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultBlastingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultBlastingCategory.java index 05c9156f8..6f81dba7f 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultBlastingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultBlastingCategory.java @@ -2,9 +2,9 @@ package me.shedaniel.rei.plugin; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.gui.widget.ItemSlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; +import me.shedaniel.rei.gui.widget.Widget; import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.GuiLighting; diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java index f6fa9c6a5..487ae30d8 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java @@ -2,9 +2,9 @@ package me.shedaniel.rei.plugin; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.gui.widget.ItemSlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; +import me.shedaniel.rei.gui.widget.Widget; import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.GuiLighting; diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultCampfireCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultCampfireCategory.java index 4a7deb29e..236f4ce36 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultCampfireCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultCampfireCategory.java @@ -2,9 +2,9 @@ package me.shedaniel.rei.plugin; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.gui.widget.ItemSlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; +import me.shedaniel.rei.gui.widget.Widget; import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.GuiLighting; diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java index 5b500f853..47632adf9 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java @@ -3,9 +3,9 @@ package me.shedaniel.rei.plugin; import com.google.common.collect.Lists; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.gui.widget.ItemSlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; +import me.shedaniel.rei.gui.widget.Widget; import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.GuiLighting; diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingCategory.java index 0b8c470a5..bb4e96c50 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingCategory.java @@ -2,9 +2,9 @@ package me.shedaniel.rei.plugin; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.gui.widget.ItemSlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; +import me.shedaniel.rei.gui.widget.Widget; import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.GuiLighting; diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultSmokingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultSmokingCategory.java index 2dab4dfe1..1d9175a9a 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultSmokingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultSmokingCategory.java @@ -2,9 +2,9 @@ package me.shedaniel.rei.plugin; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.gui.widget.ItemSlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; +import me.shedaniel.rei.gui.widget.Widget; import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.GuiLighting; diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultStoneCuttingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultStoneCuttingCategory.java index 23999d352..e30b39e51 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultStoneCuttingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultStoneCuttingCategory.java @@ -2,9 +2,9 @@ package me.shedaniel.rei.plugin; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.gui.widget.ItemSlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; +import me.shedaniel.rei.gui.widget.Widget; import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.GuiLighting; diff --git a/src/main/java/me/shedaniel/rei/utils/ClothRegistry.java b/src/main/java/me/shedaniel/rei/utils/ClothRegistry.java index 247b33139..7e85cfab1 100644 --- a/src/main/java/me/shedaniel/rei/utils/ClothRegistry.java +++ b/src/main/java/me/shedaniel/rei/utils/ClothRegistry.java @@ -1,11 +1,13 @@ package me.shedaniel.rei.utils; +import me.shedaniel.cloth.ClothInitializer; import me.shedaniel.cloth.api.EventPriority; import me.shedaniel.cloth.hooks.ClothHooks; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.TabGetter; import me.shedaniel.rei.client.RecipeHelperImpl; import me.shedaniel.rei.client.ScreenHelper; +import me.shedaniel.rei.gui.ContainerScreenOverlay; import net.minecraft.client.gui.ContainerScreen; import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen; import net.minecraft.client.gui.widget.RecipeBookButtonWidget; @@ -42,6 +44,14 @@ public class ClothRegistry { ScreenHelper.getLastOverlay().drawOverlay(post.getMouseX(), post.getMouseY(), post.getDelta()); } }, EventPriority.LOWEST); + ClothHooks.CLIENT_SCREEN_MOUSE_SCROLLED.registerListener(event -> { + if (event.getScreen() instanceof ContainerScreen && !(event.getScreen() instanceof CreativePlayerInventoryScreen)) { + ContainerScreenOverlay overlay = ScreenHelper.getLastOverlay(); + if (ScreenHelper.isOverlayVisible() && ContainerScreenOverlay.getItemListOverlay().getListArea().contains(ClothInitializer.clientUtils.getMouseLocation())) + if (overlay.mouseScrolled(event.getMouseX(), event.getMouseY(), event.getAmount())) + event.setCancelled(true); + } + }, EventPriority.LOWEST); } } -- cgit