diff options
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java | 35 |
1 files changed, 15 insertions, 20 deletions
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 e2d6a6bdb..127341a39 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java @@ -3,7 +3,6 @@ package me.shedaniel.rei.gui.widget; import com.google.common.collect.Lists; import me.shedaniel.rei.client.ClientHelper; import me.shedaniel.rei.client.GuiHelper; -import me.shedaniel.rei.listeners.IMixinGuiContainer; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; import net.minecraft.client.renderer.ItemRenderer; @@ -26,24 +25,22 @@ public class ItemSlotWidget extends Gui implements HighlightableWidget { private List<ItemStack> itemList = new LinkedList<>(); private boolean drawBackground, showToolTips, clickToMoreRecipes; private int x, y; - private IMixinGuiContainer containerGui; - public ItemSlotWidget(int x, int y, ItemStack itemStack, boolean drawBackground, boolean showToolTips, IMixinGuiContainer containerGui) { - this(x, y, Arrays.asList(itemStack), drawBackground, showToolTips, containerGui); + public ItemSlotWidget(int x, int y, ItemStack itemStack, boolean drawBackground, boolean showToolTips) { + this(x, y, Arrays.asList(itemStack), drawBackground, showToolTips); } - public ItemSlotWidget(int x, int y, List<ItemStack> itemList, boolean drawBackground, boolean showToolTips, IMixinGuiContainer containerGui) { + public ItemSlotWidget(int x, int y, List<ItemStack> itemList, boolean drawBackground, boolean showToolTips) { this.itemList = itemList; this.drawBackground = drawBackground; this.showToolTips = showToolTips; this.x = x; this.y = y; - this.containerGui = containerGui; this.clickToMoreRecipes = false; } - public ItemSlotWidget(int x, int y, List<ItemStack> itemList, boolean drawBackground, boolean showToolTips, IMixinGuiContainer containerGui, boolean clickToMoreRecipes) { - this(x, y, itemList, drawBackground, showToolTips, containerGui); + public ItemSlotWidget(int x, int y, List<ItemStack> itemList, boolean drawBackground, boolean showToolTips, boolean clickToMoreRecipes) { + this(x, y, itemList, drawBackground, showToolTips); this.clickToMoreRecipes = clickToMoreRecipes; } @@ -69,11 +66,7 @@ public class ItemSlotWidget extends Gui implements HighlightableWidget { ItemRenderer itemRenderer = Minecraft.getInstance().getItemRenderer(); itemRenderer.zLevel = 200.0F; itemRenderer.renderItemAndEffectIntoGUI(itemStack, x, y); - assert containerGui != null; - if (containerGui.getDraggedStack().isEmpty()) - itemRenderer.renderItemOverlayIntoGUI(Minecraft.getInstance().fontRenderer, itemStack, x, y - 0, getItemCountOverlay(itemStack)); - else - itemRenderer.renderItemOverlayIntoGUI(Minecraft.getInstance().fontRenderer, itemStack, x, y - 8, getItemCountOverlay(itemStack)); + itemRenderer.renderItemOverlayIntoGUI(Minecraft.getInstance().fontRenderer, itemStack, x, y, getItemCountOverlay(itemStack)); itemRenderer.zLevel = 0.0F; if (isHighlighted(mouseX, mouseY) && showToolTips) drawToolTip(itemStack); @@ -81,16 +74,18 @@ public class ItemSlotWidget extends Gui implements HighlightableWidget { protected void drawToolTip(ItemStack itemStack) { List<String> toolTip = getTooltip(itemStack); - GuiHelper.getOverlay(containerGui.getContainerGui()).addTooltip(new QueuedTooltip(ClientHelper.getMouseLocation(), toolTip)); + GuiHelper.getLastOverlay().addTooltip(new QueuedTooltip(ClientHelper.getMouseLocation(), toolTip)); } protected List<String> getTooltip(ItemStack itemStack) { final String modString = "§9§o" + ClientHelper.getModFromItemStack(itemStack); Minecraft mc = Minecraft.getInstance(); List<String> toolTip = Lists.newArrayList(); - if (containerGui != null) - toolTip = containerGui.getContainerGui().getItemToolTip(itemStack).stream().filter(s -> !s.equals(modString)).collect(Collectors.toList()); - else toolTip.add(itemStack.getDisplayName().getFormattedText()); + try { + toolTip = GuiHelper.getLastOverlay().getItemToolTip(itemStack).stream().filter(s -> !s.equals(modString)).collect(Collectors.toList()); + } catch (Exception e) { + toolTip.add(itemStack.getDisplayName().getFormattedText()); + } toolTip.addAll(getExtraToolTips(itemStack)); toolTip.add(modString); return toolTip; @@ -116,7 +111,7 @@ public class ItemSlotWidget extends Gui implements HighlightableWidget { @Override public Rectangle getBounds() { - return new Rectangle(this.x, this.y, 18, 18); + return new Rectangle(this.x - 1, this.y - 1, 18, 18); } @Override @@ -125,9 +120,9 @@ public class ItemSlotWidget extends Gui implements HighlightableWidget { return false; if (getBounds().contains(mouseX, mouseY)) { if (button == 0) - return ClientHelper.executeRecipeKeyBind(GuiHelper.getOverlay(containerGui.getContainerGui()), getCurrentStack().copy(), containerGui); + return ClientHelper.executeRecipeKeyBind(GuiHelper.getLastOverlay(), getCurrentStack().copy()); else if (button == 1) - return ClientHelper.executeUsageKeyBind(GuiHelper.getOverlay(containerGui.getContainerGui()), getCurrentStack().copy(), containerGui); + return ClientHelper.executeUsageKeyBind(GuiHelper.getLastOverlay(), getCurrentStack().copy()); } return false; } |
