From 33ed36eff27c1a533dacb2fa73510687f119c12b Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 8 May 2019 01:24:22 +0800 Subject: more internal changes Fix #56 --- .../rei/gui/renderables/ItemStackRenderer.java | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/main/java/me/shedaniel/rei/gui/renderables/ItemStackRenderer.java (limited to 'src/main/java/me/shedaniel/rei/gui/renderables/ItemStackRenderer.java') diff --git a/src/main/java/me/shedaniel/rei/gui/renderables/ItemStackRenderer.java b/src/main/java/me/shedaniel/rei/gui/renderables/ItemStackRenderer.java new file mode 100644 index 000000000..139e88a19 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/gui/renderables/ItemStackRenderer.java @@ -0,0 +1,34 @@ +package me.shedaniel.rei.gui.renderables; + +import com.mojang.blaze3d.platform.GlStateManager; +import me.shedaniel.rei.api.Renderer; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.render.GuiLighting; +import net.minecraft.client.render.item.ItemRenderer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Identifier; + +public abstract class ItemStackRenderer extends Renderer { + + public static final Identifier CHEST_GUI_TEXTURE = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer.png"); + + @Override + public void render(int x, int y, double mouseX, double mouseY, float delta) { + int l = x - 8, i1 = y - 6; + GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F); + ItemRenderer itemRenderer = MinecraftClient.getInstance().getItemRenderer(); + itemRenderer.zOffset = blitOffset; + GuiLighting.enableForItems(); + GlStateManager.colorMask(true, true, true, true); + GlStateManager.enableLighting(); + GlStateManager.enableRescaleNormal(); + GlStateManager.enableDepthTest(); + itemRenderer.renderGuiItem(getItemStack(), l, i1); + itemRenderer.renderGuiItemOverlay(MinecraftClient.getInstance().textRenderer, getItemStack(), l, i1); + itemRenderer.zOffset = 0.0F; + this.blitOffset = 0; + } + + public abstract ItemStack getItemStack(); + +} -- cgit From c1b0219e8d5458ddf1eccc194d34893f698b7d88 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 9 May 2019 22:38:34 +0800 Subject: VillagerRecipeViewingScreen done --- .../rei/gui/renderables/ItemStackRenderer.java | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'src/main/java/me/shedaniel/rei/gui/renderables/ItemStackRenderer.java') diff --git a/src/main/java/me/shedaniel/rei/gui/renderables/ItemStackRenderer.java b/src/main/java/me/shedaniel/rei/gui/renderables/ItemStackRenderer.java index 139e88a19..a64196311 100644 --- a/src/main/java/me/shedaniel/rei/gui/renderables/ItemStackRenderer.java +++ b/src/main/java/me/shedaniel/rei/gui/renderables/ItemStackRenderer.java @@ -1,16 +1,25 @@ package me.shedaniel.rei.gui.renderables; +import com.google.common.collect.Lists; import com.mojang.blaze3d.platform.GlStateManager; +import me.shedaniel.rei.api.ClientHelper; import me.shedaniel.rei.api.Renderer; +import me.shedaniel.rei.client.ScreenHelper; +import me.shedaniel.rei.gui.widget.ItemListOverlay; +import me.shedaniel.rei.gui.widget.QueuedTooltip; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.GuiLighting; import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.item.ItemStack; import net.minecraft.util.Identifier; +import java.util.Collections; +import java.util.List; + public abstract class ItemStackRenderer extends Renderer { public static final Identifier CHEST_GUI_TEXTURE = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer.png"); + public boolean drawTooltip = false; @Override public void render(int x, int y, double mouseX, double mouseY, float delta) { @@ -27,6 +36,32 @@ public abstract class ItemStackRenderer extends Renderer { itemRenderer.renderGuiItemOverlay(MinecraftClient.getInstance().textRenderer, getItemStack(), l, i1); itemRenderer.zOffset = 0.0F; this.blitOffset = 0; + if (drawTooltip && mouseX >= x - 8 && mouseX <= x + 8 && mouseY >= y - 6 && mouseY <= y + 10) + queueTooltip(getItemStack(), delta); + this.drawTooltip = false; + } + + protected void queueTooltip(ItemStack itemStack, float delta) { + ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(getTooltip(itemStack))); + } + + protected List getTooltip(ItemStack itemStack) { + final String modString = ClientHelper.getInstance().getFormattedModFromItem(itemStack.getItem()); + List toolTip = Lists.newArrayList(ItemListOverlay.tryGetItemStackToolTip(itemStack, true)); + toolTip.addAll(getExtraToolTips(itemStack)); + boolean alreadyHasMod = false; + for(String s : toolTip) + if (s.equalsIgnoreCase(modString)) { + alreadyHasMod = true; + break; + } + if (!alreadyHasMod) + toolTip.add(modString); + return toolTip; + } + + protected List getExtraToolTips(ItemStack stack) { + return Collections.emptyList(); } public abstract ItemStack getItemStack(); -- cgit