diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2019-06-18 23:04:37 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2019-06-18 23:04:37 +0800 |
| commit | 5a75d9d47c41cacc7dc7c695ce7f7cd840f51991 (patch) | |
| tree | 8bcf1af4dc3846c1669e0f7767fa8e9ddc1a1f6c /src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java | |
| parent | e3c936978b5b79cef6b937ab0cedf208d80da714 (diff) | |
| download | RoughlyEnoughItems-5a75d9d47c41cacc7dc7c695ce7f7cd840f51991.tar.gz RoughlyEnoughItems-5a75d9d47c41cacc7dc7c695ce7f7cd840f51991.tar.bz2 RoughlyEnoughItems-5a75d9d47c41cacc7dc7c695ce7f7cd840f51991.zip | |
click on arrows
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java b/src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java new file mode 100644 index 000000000..8f7fe1a50 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java @@ -0,0 +1,74 @@ +/* + * Roughly Enough Items by Danielshe. + * Licensed under the MIT License. + */ + +package me.shedaniel.rei.gui.renderers; + +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) { + 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; + 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<String> getTooltip(ItemStack itemStack) { + final String modString = ClientHelper.getInstance().getFormattedModFromItem(itemStack.getItem()); + List<String> 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<String> getExtraToolTips(ItemStack stack) { + return Collections.emptyList(); + } + + public abstract ItemStack getItemStack(); + +} |
