aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/gui/widget
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-02-16 17:52:40 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-02-16 17:52:40 +0800
commit2e0e576b64545cb45a0ab3e0d0fe81cfb7a61307 (patch)
tree33ab48fd72c49fa1b2a78c05b29de67da7ab6064 /src/main/java/me/shedaniel/rei/gui/widget
parent074a627663e0150e23d47a87486afb852dd2cfdd (diff)
downloadRoughlyEnoughItems-2.3.0.17.tar.gz
RoughlyEnoughItems-2.3.0.17.tar.bz2
RoughlyEnoughItems-2.3.0.17.zip
Same as v2.3 in Fabricv2.3.0.17
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/widget')
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java49
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/ConfigWidget.java177
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java9
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java43
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java37
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/RecipeViewingWidgetGui.java10
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/SpeedCraftingButtonWidget.java1
7 files changed, 76 insertions, 250 deletions
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 99e36f0c9..d8443c8ad 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java
@@ -8,6 +8,7 @@ import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.init.SoundEvents;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.MathHelper;
+import net.minecraft.util.text.ITextComponent;
import java.awt.*;
import java.util.ArrayList;
@@ -16,32 +17,30 @@ import java.util.List;
public abstract class ButtonWidget extends Gui implements IWidget {
protected static final ResourceLocation WIDGET_TEX = new ResourceLocation("textures/gui/widgets.png");
- public int x;
- public int y;
public String text;
public boolean enabled;
public boolean visible;
- protected int width;
- protected int height;
protected boolean hovered;
private boolean pressed;
private Rectangle bounds;
- public ButtonWidget(Rectangle rectangle, String text) {
- this(rectangle.x, rectangle.y, rectangle.width, rectangle.height, text);
+ public ButtonWidget(Rectangle rectangle, ITextComponent text) {
+ this(rectangle, text.getFormattedText());
}
- public ButtonWidget(int x, int y, int width, int height, String text) {
- this.width = 200;
- this.height = 20;
+ public ButtonWidget(Rectangle rectangle, String text) {
+ this.bounds = rectangle;
this.enabled = true;
this.visible = true;
- this.x = x;
- this.y = y;
- this.width = width;
- this.height = height;
this.text = text;
- this.bounds = new Rectangle(x, this.y, this.width, this.height);
+ }
+
+ public ButtonWidget(int x, int y, int width, int height, String text) {
+ this(new Rectangle(x, y, width, height), text);
+ }
+
+ public ButtonWidget(int x, int y, int width, int height, ITextComponent text) {
+ this(new Rectangle(x, y, width, height), text);
}
public Rectangle getBounds() {
@@ -66,8 +65,8 @@ public abstract class ButtonWidget extends Gui implements IWidget {
@Override
public void draw(int mouseX, int mouseY, float partialTicks) {
-
if (this.visible) {
+ int x = bounds.x, y = bounds.y, width = bounds.width, height = bounds.height;
Minecraft minecraftClient_1 = Minecraft.getInstance();
FontRenderer fontRenderer_1 = minecraftClient_1.fontRenderer;
minecraftClient_1.getTextureManager().bindTexture(WIDGET_TEX);
@@ -78,18 +77,18 @@ public abstract class ButtonWidget extends Gui implements IWidget {
GlStateManager.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
//Four Corners
- this.drawTexturedModalRect(this.x, this.y, 0, 46 + textureOffset * 20, 4, 4);
- this.drawTexturedModalRect(this.x + this.width - 4, this.y, 196, 46 + textureOffset * 20, 4, 4);
- this.drawTexturedModalRect(this.x, this.y + this.height - 4, 0, 62 + textureOffset * 20, 4, 4);
- this.drawTexturedModalRect(this.x + this.width - 4, this.y + this.height - 4, 196, 62 + textureOffset * 20, 4, 4);
+ this.drawTexturedModalRect(x, y, 0, 46 + textureOffset * 20, 4, 4);
+ this.drawTexturedModalRect(x + width - 4, y, 196, 46 + textureOffset * 20, 4, 4);
+ this.drawTexturedModalRect(x, y + height - 4, 0, 62 + textureOffset * 20, 4, 4);
+ this.drawTexturedModalRect(x + width - 4, y + height - 4, 196, 62 + textureOffset * 20, 4, 4);
//Sides
- this.drawTexturedModalRect(this.x + 4, this.y, 4, 46 + textureOffset * 20, this.width - 8, 4);
- this.drawTexturedModalRect(this.x + 4, this.y + this.height - 4, 4, 62 + textureOffset * 20, this.width - 8, 4);
+ this.drawTexturedModalRect(x + 4, y, 4, 46 + textureOffset * 20, width - 8, 4);
+ this.drawTexturedModalRect(x + 4, y + height - 4, 4, 62 + textureOffset * 20, width - 8, 4);
- for(int i = this.y + 4; i < this.y + this.height - 4; i += 4) {
- this.drawTexturedModalRect(this.x, i, 0, 50 + textureOffset * 20, this.width / 2, MathHelper.clamp(this.y + this.height - 4 - i, 0, 4));
- this.drawTexturedModalRect(this.x + this.width / 2, i, 200 - this.width / 2, 50 + textureOffset * 20, this.width / 2, MathHelper.clamp(this.y + this.height - 4 - i, 0, 4));
+ for(int i = y + 4; i < y + height - 4; i += 4) {
+ this.drawTexturedModalRect(x, i, 0, 50 + textureOffset * 20, width / 2, MathHelper.clamp(y + height - 4 - i, 0, 4));
+ this.drawTexturedModalRect(x + width / 2, i, 200 - width / 2, 50 + textureOffset * 20, width / 2, MathHelper.clamp(y + height - 4 - i, 0, 4));
}
int colour = 14737632;
@@ -99,7 +98,7 @@ public abstract class ButtonWidget extends Gui implements IWidget {
colour = 16777120;
}
- this.drawCenteredString(fontRenderer_1, this.text, this.x + this.width / 2, this.y + (this.height - 8) / 2, colour);
+ this.drawCenteredString(fontRenderer_1, this.text, x + width / 2, y + (height - 8) / 2, colour);
}
}
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/ConfigWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/ConfigWidget.java
deleted file mode 100644
index 9519a949a..000000000
--- a/src/main/java/me/shedaniel/rei/gui/widget/ConfigWidget.java
+++ /dev/null
@@ -1,177 +0,0 @@
-package me.shedaniel.rei.gui.widget;
-
-import com.google.common.collect.Lists;
-import me.shedaniel.rei.client.ConfigHelper;
-import me.shedaniel.rei.client.REIItemListOrdering;
-import net.minecraft.client.MainWindow;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.GuiScreen;
-import net.minecraft.client.gui.IGuiEventListener;
-import net.minecraft.client.renderer.RenderHelper;
-import net.minecraft.client.resources.I18n;
-
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-
-public class ConfigWidget extends GuiScreen {
-
- private List<IWidget> widgets;
- private GuiScreen parent;
-
- public ConfigWidget(GuiScreen parent) {
- this.parent = parent;
- this.widgets = Lists.newArrayList();
- }
-
- @Override
- public boolean keyPressed(int int_1, int int_2, int int_3) {
- if (int_1 == 256 && this.allowCloseWithEscape()) {
- Minecraft.getInstance().displayGuiScreen(parent);
- return true;
- } else {
- return super.keyPressed(int_1, int_2, int_3);
- }
- }
-
- @Override
- protected void initGui() {
- super.initGui();
- widgets.clear();
- MainWindow window = Minecraft.getInstance().mainWindow;
- widgets.add(new ButtonWidget(window.getScaledWidth() / 2 - 20, 30, 40, 20, "") {
- @Override
- public void onPressed(int button, double mouseX, double mouseY) {
- if (button == 0)
- ConfigHelper.getInstance().setSideSearchField(!ConfigHelper.getInstance().sideSearchField());
- try {
- ConfigHelper.getInstance().saveConfig();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- @Override
- public void draw(int mouseX, int mouseY, float partialTicks) {
- text = getTrueFalseText(ConfigHelper.getInstance().sideSearchField());
- String t = I18n.format("text.rei.side_searchbox");
- int width = fontRenderer.getStringWidth(t);
- fontRenderer.drawStringWithShadow(t, this.x - width - 10, this.y + (this.height - 8) / 2, -1);
- super.draw(mouseX, mouseY, partialTicks);
- }
- });
- widgets.add(new ButtonWidget(window.getScaledWidth() / 2 - 20, 60, 40, 20, "") {
- @Override
- public void onPressed(int button, double mouseX, double mouseY) {
- if (button == 0)
- ConfigHelper.getInstance().setShowCraftableOnlyButton(!ConfigHelper.getInstance().showCraftableOnlyButton());
- try {
- ConfigHelper.getInstance().saveConfig();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- @Override
- public void draw(int mouseX, int mouseY, float partialTicks) {
- text = getTrueFalseText(ConfigHelper.getInstance().showCraftableOnlyButton());
- String t = I18n.format("text.rei.enable_craftable_only");
- int width = fontRenderer.getStringWidth(t);
- fontRenderer.drawStringWithShadow(t, this.x - width - 10, this.y + (this.height - 8) / 2, -1);
- super.draw(mouseX, mouseY, partialTicks);
- }
- });
- widgets.add(new ButtonWidget(window.getScaledWidth() / 2 - 90, 90, 150, 20, "") {
- @Override
- public void onPressed(int button, double mouseX, double mouseY) {
- int index = Arrays.asList(REIItemListOrdering.values()).indexOf(ConfigHelper.getInstance().getItemListOrdering()) + 1;
- if (index >= REIItemListOrdering.values().length) {
- index = 0;
- ConfigHelper.getInstance().setAscending(!ConfigHelper.getInstance().isAscending());
- }
- ConfigHelper.getInstance().setItemListOrdering(REIItemListOrdering.values()[index]);
- try {
- ConfigHelper.getInstance().saveConfig();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- @Override
- public void draw(int int_1, int int_2, float float_1) {
- RenderHelper.disableStandardItemLighting();
- this.text = I18n.format("text.rei.list_ordering_button", I18n.format(ConfigHelper.getInstance().getItemListOrdering().getNameTranslationKey()), I18n.format(ConfigHelper.getInstance().isAscending() ? "ordering.rei.ascending" : "ordering.rei.descending"));
- String t = I18n.format("text.rei.list_ordering") + ": ";
- fontRenderer.drawStringWithShadow(t, parent.width / 2 - 95 - Minecraft.getInstance().fontRenderer.getStringWidth(t), 90 + 6, -1);
- super.draw(int_1, int_2, float_1);
- }
- });
- widgets.add(new ButtonWidget(window.getScaledWidth() / 2 - 20, 120, 40, 20, "") {
- @Override
- public void onPressed(int button, double mouseX, double mouseY) {
- if (button == 0)
- ConfigHelper.getInstance().setMirrorItemPanel(!ConfigHelper.getInstance().isMirrorItemPanel());
- try {
- ConfigHelper.getInstance().saveConfig();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- @Override
- public void draw(int mouseX, int mouseY, float partialTicks) {
- text = getTrueFalseText(ConfigHelper.getInstance().isMirrorItemPanel());
- String t = I18n.format("text.rei.mirror_rei");
- int width = fontRenderer.getStringWidth(t);
- fontRenderer.drawStringWithShadow(t, this.x - width - 10, this.y + (this.height - 8) / 2, -1);
- super.draw(mouseX, mouseY, partialTicks);
- }
- });
- widgets.add(new ButtonWidget(window.getScaledWidth() / 2 - 20, 150, 40, 20, "") {
- @Override
- public void onPressed(int button, double mouseX, double mouseY) {
- if (button == 0)
- ConfigHelper.getInstance().setCheckUpdates(!ConfigHelper.getInstance().checkUpdates());
- try {
- ConfigHelper.getInstance().saveConfig();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- @Override
- public void draw(int mouseX, int mouseY, float partialTicks) {
- text = getTrueFalseText(ConfigHelper.getInstance().checkUpdates());
- String t = I18n.format("text.rei.check_updates");
- int width = fontRenderer.getStringWidth(t);
- fontRenderer.drawStringWithShadow(t, this.x - width - 10, this.y + (this.height - 8) / 2, -1);
- super.draw(mouseX, mouseY, partialTicks);
- }
- });
- }
-
- private String getTrueFalseText(boolean showCraftableOnlyButton) {
- return String.format("%s%b", showCraftableOnlyButton ? "§a" : "§c", showCraftableOnlyButton);
- }
-
- @Override
- public void render(int int_1, int int_2, float float_1) {
- drawWorldBackground(0);
- super.render(int_1, int_2, float_1);
- widgets.forEach(widget -> {
- RenderHelper.disableStandardItemLighting();
- widget.draw(int_1, int_2, float_1);
- });
- }
-
- @Override
- public boolean doesGuiPauseGame() {
- return false;
- }
-
- @Override
- public List<? extends IGuiEventListener> getChildren() {
- return widgets;
- }
-
-}
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 93086e661..b90a6db6b 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java
@@ -21,13 +21,12 @@ public abstract class CraftableToggleButtonWidget extends ButtonWidget {
private ItemRenderer itemRenderer;
public CraftableToggleButtonWidget(Rectangle rectangle) {
- this(rectangle.x, rectangle.y, rectangle.width, rectangle.height);
+ super(rectangle, "");
this.itemRenderer = Minecraft.getInstance().getItemRenderer();
}
public CraftableToggleButtonWidget(int x, int y, int width, int height) {
- super(x, y, width, height, "");
- this.itemRenderer = Minecraft.getInstance().getItemRenderer();
+ this(new Rectangle(x, y, width, height));
}
@Override
@@ -36,13 +35,13 @@ public abstract class CraftableToggleButtonWidget extends ButtonWidget {
RenderHelper.enableGUIStandardItemLighting();
this.itemRenderer.zLevel = 0.0F;
- this.itemRenderer.renderItemAndEffectIntoGUI(new ItemStack(Blocks.CRAFTING_TABLE), x + 2, y + 2);
+ this.itemRenderer.renderItemAndEffectIntoGUI(new ItemStack(Blocks.CRAFTING_TABLE), getBounds().x + 2, getBounds().y + 2);
this.itemRenderer.zLevel = 0.0F;
RenderHelper.disableStandardItemLighting();
Minecraft.getInstance().getTextureManager().bindTexture(CHEST_GUI_TEXTURE);
GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
this.zLevel = 100f;
- this.drawTexturedModalRect(x, y, (56 + (ConfigHelper.getInstance().craftableOnly() ? 0 : 20)), 202, 20, 20);
+ this.drawTexturedModalRect(getBounds().x, getBounds().y, (56 + (ConfigHelper.getInstance().craftableOnly() ? 0 : 20)), 202, 20, 20);
this.zLevel = 0f;
if (getBounds().contains(mouseX, mouseY))
drawTooltip();
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 a413add52..ceb989881 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java
@@ -7,11 +7,9 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.resources.I18n;
-import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.MathHelper;
-import net.minecraft.util.text.ITextComponent;
import org.apache.commons.lang3.StringUtils;
import java.awt.*;
@@ -22,7 +20,7 @@ import java.util.stream.Stream;
public class ItemListOverlay extends Gui implements IWidget {
- private List<IWidget> widgets = new ArrayList<>();
+ private List<IWidget> widgets;
private int width, height, page;
private Rectangle rectangle, listArea;
private List<ItemStack> currentDisplayed;
@@ -46,16 +44,10 @@ public class ItemListOverlay extends Gui implements IWidget {
GuiHelper.getLastOverlay().addTooltip(new QueuedTooltip(ClientHelper.getMouseLocation(), Arrays.asList(I18n.format("text.rei.delete_items"))));
}
- public void updateList(int page, String searchTerm) {
- updateList(rectangle, page, searchTerm);
- }
-
public void updateList(Rectangle bounds, int page, String searchTerm) {
this.rectangle = bounds;
- if (ClientHelper.getItemList().isEmpty())
- RoughlyEnoughItemsCore.getClientHelper().clientLoaded();
- currentDisplayed = processSearchTerm(searchTerm, ClientHelper.getItemList(), GuiHelper.inventoryStacks);
- this.widgets.clear();
+ currentDisplayed = processSearchTerm(searchTerm, RoughlyEnoughItemsCore.getItemRegisterer().getItemList(), GuiHelper.inventoryStacks);
+ this.widgets = Lists.newLinkedList();
this.page = page;
calculateListSize(rectangle);
double startX = rectangle.getCenterX() - width * 9;
@@ -90,8 +82,7 @@ public class ItemListOverlay extends Gui implements IWidget {
return false;
}
};
- if (this.rectangle.contains(slotWidget.getBounds()))
- widgets.add(slotWidget);
+ widgets.add(slotWidget);
}
}
@@ -154,9 +145,9 @@ public class ItemListOverlay extends Gui implements IWidget {
private boolean filterItem(ItemStack itemStack, List<SearchArgument> arguments) {
String mod = ClientHelper.getModFromItemStack(itemStack);
- List<String> toolTipsList = getStackTooltip(itemStack);
+ List<String> toolTipsList = Minecraft.getInstance().currentScreen.getItemToolTip(itemStack);
String toolTipsMixed = toolTipsList.stream().skip(1).collect(Collectors.joining()).toLowerCase();
- String allMixed = Stream.of(itemStack.getDisplayName().getString(), toolTipsMixed).collect(Collectors.joining()).toLowerCase();
+ String allMixed = Stream.of(itemStack.getDisplayName().getFormattedText(), toolTipsMixed).collect(Collectors.joining()).toLowerCase();
for(SearchArgument searchArgument : arguments.stream().filter(searchArgument -> !searchArgument.isInclude()).collect(Collectors.toList())) {
if (searchArgument.getArgumentType().equals(SearchArgument.ArgumentType.MOD))
if (mod.toLowerCase().contains(searchArgument.getText().toLowerCase()))
@@ -182,11 +173,6 @@ public class ItemListOverlay extends Gui implements IWidget {
return true;
}
- private List<String> getStackTooltip(ItemStack itemStack) {
- Minecraft client = Minecraft.getInstance();
- return itemStack.getTooltip(client.player, client.gameSettings.advancedItemTooltips ? ITooltipFlag.TooltipFlags.ADVANCED : ITooltipFlag.TooltipFlags.NORMAL).stream().map(ITextComponent::getFormattedText).collect(Collectors.toList());
- }
-
private void calculateListSize(Rectangle rect) {
int xOffset = 0, yOffset = 0;
this.width = 0;
@@ -207,19 +193,20 @@ public class ItemListOverlay extends Gui implements IWidget {
@Override
public boolean mouseClicked(double double_1, double double_2, int int_1) {
- EntityPlayerSP player = Minecraft.getInstance().player;
- if (rectangle.contains(double_1, double_2))
+ if (rectangle.contains(double_1, double_2)) {
+ EntityPlayerSP player = Minecraft.getInstance().player;
if (ClientHelper.isCheating() && !player.inventory.getItemStack().isEmpty() && Minecraft.getInstance().isSingleplayer()) {
ClientHelper.sendDeletePacket();
return true;
}
- if (!player.inventory.getItemStack().isEmpty() && Minecraft.getInstance().isSingleplayer())
- return false;
- if (onMouseClick(int_1, double_1, double_2))
- return true;
- for(IWidget widget : getListeners())
- if (widget.mouseClicked(double_1, double_2, int_1))
+ if (!player.inventory.getItemStack().isEmpty() && Minecraft.getInstance().isSingleplayer())
+ return false;
+ if (onMouseClick(int_1, double_1, double_2))
return true;
+ for(IWidget widget : getListeners())
+ if (widget.mouseClicked(double_1, double_2, int_1))
+ return true;
+ }
return false;
}
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 127341a39..656c44d15 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java
@@ -5,6 +5,7 @@ import me.shedaniel.rei.client.ClientHelper;
import me.shedaniel.rei.client.GuiHelper;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Gui;
+import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.ItemRenderer;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.init.Items;
@@ -23,7 +24,7 @@ public class ItemSlotWidget extends Gui implements HighlightableWidget {
private static final ResourceLocation RECIPE_GUI = new ResourceLocation("roughlyenoughitems", "textures/gui/recipecontainer.png");
private List<ItemStack> itemList = new LinkedList<>();
- private boolean drawBackground, showToolTips, clickToMoreRecipes;
+ private boolean drawBackground, showToolTips, clickToMoreRecipes, drawHighlightedBackground;
private int x, y;
public ItemSlotWidget(int x, int y, ItemStack itemStack, boolean drawBackground, boolean showToolTips) {
@@ -37,6 +38,7 @@ public class ItemSlotWidget extends Gui implements HighlightableWidget {
this.x = x;
this.y = y;
this.clickToMoreRecipes = false;
+ this.drawHighlightedBackground = true;
}
public ItemSlotWidget(int x, int y, List<ItemStack> itemList, boolean drawBackground, boolean showToolTips, boolean clickToMoreRecipes) {
@@ -44,6 +46,10 @@ public class ItemSlotWidget extends Gui implements HighlightableWidget {
this.clickToMoreRecipes = clickToMoreRecipes;
}
+ public void setDrawHighlightedBackground(boolean drawHighlightedBackground) {
+ this.drawHighlightedBackground = drawHighlightedBackground;
+ }
+
public boolean isDrawBackground() {
return drawBackground;
}
@@ -60,15 +66,24 @@ public class ItemSlotWidget extends Gui implements HighlightableWidget {
Minecraft.getInstance().getTextureManager().bindTexture(RECIPE_GUI);
drawTexturedModalRect(this.x - 1, this.y - 1, 0, 222, 18, 18);
}
- if (itemStack.isEmpty())
- return;
- RenderHelper.enableGUIStandardItemLighting();
- ItemRenderer itemRenderer = Minecraft.getInstance().getItemRenderer();
- itemRenderer.zLevel = 200.0F;
- itemRenderer.renderItemAndEffectIntoGUI(itemStack, x, y);
- itemRenderer.renderItemOverlayIntoGUI(Minecraft.getInstance().fontRenderer, itemStack, x, y, getItemCountOverlay(itemStack));
- itemRenderer.zLevel = 0.0F;
- if (isHighlighted(mouseX, mouseY) && showToolTips)
+ if (drawHighlightedBackground && isHighlighted(mouseX, mouseY)) {
+ GlStateManager.disableLighting();
+ GlStateManager.disableDepthTest();
+ GlStateManager.colorMask(true, true, true, false);
+ drawGradientRect(x, y, x + 16, y + 16, -2130706433, -2130706433);
+ GlStateManager.colorMask(true, true, true, true);
+ GlStateManager.enableLighting();
+ GlStateManager.enableDepthTest();
+ }
+ if (!itemStack.isEmpty()) {
+ RenderHelper.enableGUIStandardItemLighting();
+ ItemRenderer itemRenderer = Minecraft.getInstance().getItemRenderer();
+ itemRenderer.zLevel = 200.0F;
+ itemRenderer.renderItemAndEffectIntoGUI(itemStack, x, y);
+ itemRenderer.renderItemOverlayIntoGUI(Minecraft.getInstance().fontRenderer, itemStack, x, y, getItemCountOverlay(itemStack));
+ itemRenderer.zLevel = 0.0F;
+ }
+ if (!itemStack.isEmpty() && isHighlighted(mouseX, mouseY) && showToolTips)
drawToolTip(itemStack);
}
@@ -82,7 +97,7 @@ public class ItemSlotWidget extends Gui implements HighlightableWidget {
Minecraft mc = Minecraft.getInstance();
List<String> toolTip = Lists.newArrayList();
try {
- toolTip = GuiHelper.getLastOverlay().getItemToolTip(itemStack).stream().filter(s -> !s.equals(modString)).collect(Collectors.toList());
+ toolTip = Minecraft.getInstance().currentScreen.getItemToolTip(itemStack).stream().filter(s -> !s.equals(modString)).collect(Collectors.toList());
} catch (Exception e) {
toolTip.add(itemStack.getDisplayName().getFormattedText());
}
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/RecipeViewingWidgetGui.java b/src/main/java/me/shedaniel/rei/gui/widget/RecipeViewingWidgetGui.java
index 22bc5d03c..5ecd7fe8c 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/RecipeViewingWidgetGui.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/RecipeViewingWidgetGui.java
@@ -19,6 +19,7 @@ import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.init.SoundEvents;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.MathHelper;
+import net.minecraft.util.text.TextComponentTranslation;
import java.awt.*;
import java.util.ArrayList;
@@ -70,6 +71,7 @@ public class RecipeViewingWidgetGui extends GuiScreen {
public boolean keyPressed(int int_1, int int_2, int int_3) {
if ((int_1 == 256 || mc.gameSettings.keyBindInventory.matchesKey(int_1, int_2)) && this.allowCloseWithEscape()) {
Minecraft.getInstance().displayGuiScreen(GuiHelper.getLastGuiContainer());
+ GuiHelper.getLastOverlay().onInitialized();
return true;
}
for(IGuiEventListener listener : children)
@@ -90,7 +92,7 @@ public class RecipeViewingWidgetGui extends GuiScreen {
this.widgets.clear();
this.bounds = new Rectangle(window.getScaledWidth() / 2 - guiWidth / 2, window.getScaledHeight() / 2 - guiHeight / 2, guiWidth, guiHeight);
- widgets.add(categoryBack = new ButtonWidget((int) bounds.getX() + 5, (int) bounds.getY() + 5, 12, 12, "<") {
+ widgets.add(categoryBack = new ButtonWidget((int) bounds.getX() + 5, (int) bounds.getY() + 5, 12, 12, new TextComponentTranslation("text.rei.left_arrow")) {
@Override
public void onPressed(int button, double mouseX, double mouseY) {
int currentCategoryIndex = categories.indexOf(selectedCategory);
@@ -102,7 +104,7 @@ public class RecipeViewingWidgetGui extends GuiScreen {
RecipeViewingWidgetGui.this.initGui();
}
});
- widgets.add(categoryNext = new ButtonWidget((int) bounds.getX() + 159, (int) bounds.getY() + 5, 12, 12, ">") {
+ widgets.add(categoryNext = new ButtonWidget((int) bounds.getX() + 159, (int) bounds.getY() + 5, 12, 12, new TextComponentTranslation("text.rei.right_arrow")) {
@Override
public void onPressed(int button, double mouseX, double mouseY) {
int currentCategoryIndex = categories.indexOf(selectedCategory);
@@ -117,7 +119,7 @@ public class RecipeViewingWidgetGui extends GuiScreen {
categoryBack.enabled = categories.size() > 1;
categoryNext.enabled = categories.size() > 1;
- widgets.add(recipeBack = new ButtonWidget((int) bounds.getX() + 5, (int) bounds.getY() + 21, 12, 12, "<") {
+ widgets.add(recipeBack = new ButtonWidget((int) bounds.getX() + 5, (int) bounds.getY() + 21, 12, 12, new TextComponentTranslation("text.rei.left_arrow")) {
@Override
public void onPressed(int button, double mouseX, double mouseY) {
page--;
@@ -126,7 +128,7 @@ public class RecipeViewingWidgetGui extends GuiScreen {
RecipeViewingWidgetGui.this.initGui();
}
});
- widgets.add(recipeNext = new ButtonWidget((int) bounds.getX() + 159, (int) bounds.getY() + 21, 12, 12, ">") {
+ widgets.add(recipeNext = new ButtonWidget((int) bounds.getX() + 159, (int) bounds.getY() + 21, 12, 12, new TextComponentTranslation("text.rei.right_arrow")) {
@Override
public void onPressed(int button, double mouseX, double mouseY) {
page++;
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 aefca5018..de77b8592 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/SpeedCraftingButtonWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/SpeedCraftingButtonWidget.java
@@ -25,6 +25,7 @@ public class SpeedCraftingButtonWidget extends ButtonWidget {
@Override
public void onPressed(int button, double mouseX, double mouseY) {
Minecraft.getInstance().displayGuiScreen(GuiHelper.getLastGuiContainer());
+ GuiHelper.getLastOverlay().onInitialized();
functional.performAutoCraft(GuiHelper.getLastGuiContainer(), displaySupplier.get());
}