Reimplemented drawHoveringText (#7268)
This commit is contained in:
parent
11e3281b3f
commit
873c490470
1 changed files with 18 additions and 10 deletions
|
@ -21,18 +21,28 @@ package net.minecraftforge.fml.client.gui;
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.AbstractGui;
|
import net.minecraft.client.gui.AbstractGui;
|
||||||
|
import net.minecraft.client.gui.FontRenderer;
|
||||||
|
import net.minecraft.client.renderer.IRenderTypeBuffer;
|
||||||
import net.minecraft.client.renderer.Tessellator;
|
import net.minecraft.client.renderer.Tessellator;
|
||||||
import net.minecraft.client.renderer.BufferBuilder;
|
import net.minecraft.client.renderer.BufferBuilder;
|
||||||
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraft.util.math.vector.Matrix4f;
|
import net.minecraft.util.math.vector.Matrix4f;
|
||||||
|
import net.minecraft.util.text.ITextProperties;
|
||||||
|
import net.minecraft.util.text.LanguageMap;
|
||||||
|
import net.minecraft.util.text.Style;
|
||||||
|
import net.minecraftforge.client.event.RenderTooltipEvent;
|
||||||
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
import com.mojang.blaze3d.matrix.MatrixStack;
|
import com.mojang.blaze3d.matrix.MatrixStack;
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class provides several methods and constants used by the Config GUI classes.
|
* This class provides several methods and constants used by the Config GUI classes.
|
||||||
|
@ -232,8 +242,7 @@ public class GuiUtils
|
||||||
cachedTooltipStack = ItemStack.EMPTY;
|
cachedTooltipStack = ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
public static void drawHoveringText(MatrixStack mStack, List<? extends ITextProperties> textLines, int mouseX, int mouseY, int screenWidth, int screenHeight, int maxTextWidth, FontRenderer font)
|
||||||
public static void drawHoveringText(MatrixStack mStack, List<? extends IReorderingProcessor> textLines, int mouseX, int mouseY, int screenWidth, int screenHeight, int maxTextWidth, FontRenderer font)
|
|
||||||
{
|
{
|
||||||
drawHoveringText(mStack, textLines, mouseX, mouseY, screenWidth, screenHeight, maxTextWidth, DEFAULT_BACKGROUND_COLOR, DEFAULT_BORDER_COLOR_START, DEFAULT_BORDER_COLOR_END, font);
|
drawHoveringText(mStack, textLines, mouseX, mouseY, screenWidth, screenHeight, maxTextWidth, DEFAULT_BACKGROUND_COLOR, DEFAULT_BORDER_COLOR_START, DEFAULT_BORDER_COLOR_END, font);
|
||||||
}
|
}
|
||||||
|
@ -256,8 +265,8 @@ public class GuiUtils
|
||||||
* @param borderColorEnd The ending color of the box border. The border color will be smoothly interpolated
|
* @param borderColorEnd The ending color of the box border. The border color will be smoothly interpolated
|
||||||
* between the start and end values.
|
* between the start and end values.
|
||||||
* @param font the font for drawing the text in the tooltip box
|
* @param font the font for drawing the text in the tooltip box
|
||||||
* /
|
*/
|
||||||
public static void drawHoveringText(MatrixStack mStack, List<? extends IReorderingProcessor> textLines, int mouseX, int mouseY, int screenWidth, int screenHeight,
|
public static void drawHoveringText(MatrixStack mStack, List<? extends ITextProperties> textLines, int mouseX, int mouseY, int screenWidth, int screenHeight,
|
||||||
int maxTextWidth, int backgroundColor, int borderColorStart, int borderColorEnd, FontRenderer font)
|
int maxTextWidth, int backgroundColor, int borderColorStart, int borderColorEnd, FontRenderer font)
|
||||||
{
|
{
|
||||||
drawHoveringText(cachedTooltipStack, mStack, textLines, mouseX, mouseY, screenWidth, screenHeight, maxTextWidth, backgroundColor, borderColorStart, borderColorEnd, font);
|
drawHoveringText(cachedTooltipStack, mStack, textLines, mouseX, mouseY, screenWidth, screenHeight, maxTextWidth, backgroundColor, borderColorStart, borderColorEnd, font);
|
||||||
|
@ -272,9 +281,9 @@ public class GuiUtils
|
||||||
* Use this version if calling from somewhere where ItemStack context is available.
|
* Use this version if calling from somewhere where ItemStack context is available.
|
||||||
*
|
*
|
||||||
* @see #drawHoveringText(MatrixStack, List, int, int, int, int, int, int, int, int, FontRenderer)
|
* @see #drawHoveringText(MatrixStack, List, int, int, int, int, int, int, int, int, FontRenderer)
|
||||||
* /
|
*/
|
||||||
//TODO, Validate rendering is the same as the original
|
//TODO, Validate rendering is the same as the original
|
||||||
public static void drawHoveringText(@Nonnull final ItemStack stack, MatrixStack mStack, List<? extends IReorderingProcessor> textLines, int mouseX, int mouseY,
|
public static void drawHoveringText(@Nonnull final ItemStack stack, MatrixStack mStack, List<? extends ITextProperties> textLines, int mouseX, int mouseY,
|
||||||
int screenWidth, int screenHeight, int maxTextWidth,
|
int screenWidth, int screenHeight, int maxTextWidth,
|
||||||
int backgroundColor, int borderColorStart, int borderColorEnd, FontRenderer font)
|
int backgroundColor, int borderColorStart, int borderColorEnd, FontRenderer font)
|
||||||
{
|
{
|
||||||
|
@ -294,7 +303,7 @@ public class GuiUtils
|
||||||
RenderSystem.disableDepthTest();
|
RenderSystem.disableDepthTest();
|
||||||
int tooltipTextWidth = 0;
|
int tooltipTextWidth = 0;
|
||||||
|
|
||||||
for (IReorderingProcessor textLine : textLines)
|
for (ITextProperties textLine : textLines)
|
||||||
{
|
{
|
||||||
int textLineWidth = font.func_238414_a_(textLine);
|
int textLineWidth = font.func_238414_a_(textLine);
|
||||||
if (textLineWidth > tooltipTextWidth)
|
if (textLineWidth > tooltipTextWidth)
|
||||||
|
@ -331,7 +340,7 @@ public class GuiUtils
|
||||||
for (int i = 0; i < textLines.size(); i++)
|
for (int i = 0; i < textLines.size(); i++)
|
||||||
{
|
{
|
||||||
ITextProperties textLine = textLines.get(i);
|
ITextProperties textLine = textLines.get(i);
|
||||||
List<ITextProperties> wrappedLine = font.func_238425_b_(textLine, tooltipTextWidth);
|
List<ITextProperties> wrappedLine = font.func_238420_b_().func_238362_b_(textLine, tooltipTextWidth, Style.field_240709_b_);
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
titleLinesCount = wrappedLine.size();
|
titleLinesCount = wrappedLine.size();
|
||||||
|
|
||||||
|
@ -398,7 +407,7 @@ public class GuiUtils
|
||||||
{
|
{
|
||||||
ITextProperties line = textLines.get(lineNumber);
|
ITextProperties line = textLines.get(lineNumber);
|
||||||
if (line != null)
|
if (line != null)
|
||||||
font.func_238416_a_(line, (float)tooltipX, (float)tooltipY, -1, true, mat, renderType, false, 0, 15728880);
|
font.func_238416_a_(LanguageMap.getInstance().func_241870_a(line), (float)tooltipX, (float)tooltipY, -1, true, mat, renderType, false, 0, 15728880);
|
||||||
|
|
||||||
if (lineNumber + 1 == titleLinesCount)
|
if (lineNumber + 1 == titleLinesCount)
|
||||||
tooltipY += 2;
|
tooltipY += 2;
|
||||||
|
@ -415,7 +424,6 @@ public class GuiUtils
|
||||||
RenderSystem.enableRescaleNormal();
|
RenderSystem.enableRescaleNormal();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public static void drawGradientRect(Matrix4f mat, int zLevel, int left, int top, int right, int bottom, int startColor, int endColor)
|
public static void drawGradientRect(Matrix4f mat, int zLevel, int left, int top, int right, int bottom, int startColor, int endColor)
|
||||||
|
|
Loading…
Reference in a new issue