Since the functionality for fixed width tooltips was unused, switched to utilizing standard tooltip rendering. This fixes issues with the screen overlay being miscolored and other item tooltips being broken.
This commit is contained in:
parent
dde6e9b9d4
commit
928f623f7e
|
@ -22,6 +22,7 @@ package appeng.client.gui;
|
|||
import java.io.IOException;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.ParseException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
|
@ -32,6 +33,7 @@ import java.util.concurrent.TimeUnit;
|
|||
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.base.Stopwatch;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import org.lwjgl.input.Keyboard;
|
||||
import org.lwjgl.input.Mouse;
|
||||
|
@ -188,7 +190,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||
final String msg = tooltip.getMessage();
|
||||
if( msg != null )
|
||||
{
|
||||
this.drawTooltip( x + 11, y + 4, 0, msg );
|
||||
this.drawTooltip( x + 11, y + 4, msg );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -196,93 +198,32 @@ public abstract class AEBaseGui extends GuiContainer
|
|||
}
|
||||
}
|
||||
|
||||
public void drawTooltip( final int par2, final int par3, final int forceWidth, final String message )
|
||||
protected void drawTooltip( int x, int y, String message )
|
||||
{
|
||||
GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS );
|
||||
GL11.glDisable( GL12.GL_RESCALE_NORMAL );
|
||||
RenderHelper.disableStandardItemLighting();
|
||||
GL11.glDisable( GL11.GL_LIGHTING );
|
||||
GL11.glDisable( GL11.GL_DEPTH_TEST );
|
||||
final String[] var4 = message.split( "\n" );
|
||||
String[] lines = message.split( "\n" );
|
||||
this.drawTooltip( x, y, Arrays.asList( lines ) );
|
||||
}
|
||||
|
||||
if( var4.length > 0 )
|
||||
protected void drawTooltip( int x, int y, List<String> lines )
|
||||
{
|
||||
if( lines.isEmpty() )
|
||||
{
|
||||
int var5 = 0;
|
||||
int var6;
|
||||
int var7;
|
||||
|
||||
for( var6 = 0; var6 < var4.length; ++var6 )
|
||||
{
|
||||
var7 = this.fontRendererObj.getStringWidth( var4[var6] );
|
||||
|
||||
if( var7 > var5 )
|
||||
{
|
||||
var5 = var7;
|
||||
}
|
||||
}
|
||||
|
||||
var6 = par2 + 12;
|
||||
var7 = par3 - 12;
|
||||
int var9 = 8;
|
||||
|
||||
if( var4.length > 1 )
|
||||
{
|
||||
var9 += 2 + ( var4.length - 1 ) * 10;
|
||||
}
|
||||
|
||||
if( this.guiTop + var7 + var9 + 6 > this.height )
|
||||
{
|
||||
var7 = this.height - var9 - this.guiTop - 6;
|
||||
}
|
||||
|
||||
if( forceWidth > 0 )
|
||||
{
|
||||
var5 = forceWidth;
|
||||
}
|
||||
|
||||
this.zLevel = 300.0F;
|
||||
this.itemRender.zLevel = 300.0F;
|
||||
final int var10 = -267386864;
|
||||
this.drawGradientRect( var6 - 3, var7 - 4, var6 + var5 + 3, var7 - 3, var10, var10 );
|
||||
this.drawGradientRect( var6 - 3, var7 + var9 + 3, var6 + var5 + 3, var7 + var9 + 4, var10, var10 );
|
||||
this.drawGradientRect( var6 - 3, var7 - 3, var6 + var5 + 3, var7 + var9 + 3, var10, var10 );
|
||||
this.drawGradientRect( var6 - 4, var7 - 3, var6 - 3, var7 + var9 + 3, var10, var10 );
|
||||
this.drawGradientRect( var6 + var5 + 3, var7 - 3, var6 + var5 + 4, var7 + var9 + 3, var10, var10 );
|
||||
final int var11 = 1347420415;
|
||||
final int var12 = ( var11 & 16711422 ) >> 1 | var11 & -16777216;
|
||||
this.drawGradientRect( var6 - 3, var7 - 3 + 1, var6 - 3 + 1, var7 + var9 + 3 - 1, var11, var12 );
|
||||
this.drawGradientRect( var6 + var5 + 2, var7 - 3 + 1, var6 + var5 + 3, var7 + var9 + 3 - 1, var11, var12 );
|
||||
this.drawGradientRect( var6 - 3, var7 - 3, var6 + var5 + 3, var7 - 3 + 1, var11, var11 );
|
||||
this.drawGradientRect( var6 - 3, var7 + var9 + 2, var6 + var5 + 3, var7 + var9 + 3, var12, var12 );
|
||||
|
||||
for( int var13 = 0; var13 < var4.length; ++var13 )
|
||||
{
|
||||
String var14 = var4[var13];
|
||||
|
||||
if( var13 == 0 )
|
||||
{
|
||||
var14 = '\u00a7' + Integer.toHexString( 15 ) + var14;
|
||||
}
|
||||
else
|
||||
{
|
||||
var14 = "\u00a77" + var14;
|
||||
}
|
||||
|
||||
this.fontRendererObj.drawStringWithShadow( var14, var6, var7, -1 );
|
||||
|
||||
if( var13 == 0 )
|
||||
{
|
||||
var7 += 2;
|
||||
}
|
||||
|
||||
var7 += 10;
|
||||
}
|
||||
|
||||
this.zLevel = 0.0F;
|
||||
this.itemRender.zLevel = 0.0F;
|
||||
return;
|
||||
}
|
||||
RenderHelper.enableStandardItemLighting();
|
||||
GL11.glPopAttrib();
|
||||
|
||||
// For an explanation of the formatting codes, see http://minecraft.gamepedia.com/Formatting_codes
|
||||
lines = Lists.newArrayList( lines ); // Make a copy
|
||||
|
||||
// Make the first line white
|
||||
lines.set( 0, "\u00a7f" + lines.get( 0 ) );
|
||||
|
||||
// All lines after the first are colored gray
|
||||
for( int i = 1; i < lines.size(); i++ )
|
||||
{
|
||||
lines.set(i, "\u00a77" + lines.get(i));
|
||||
}
|
||||
|
||||
this.drawHoveringText( lines, x, y, fontRendererObj );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -130,13 +130,13 @@ public abstract class AEBaseMEGui extends AEBaseGui
|
|||
currentToolTip.add( "Items Requestable: " + NumberFormat.getNumberInstance( Locale.US ).format( myStack.getCountRequestable() ) );
|
||||
}
|
||||
|
||||
this.drawTooltip( x, y, 0, join( currentToolTip, "\n" ) );
|
||||
this.drawTooltip( x, y, currentToolTip );
|
||||
}
|
||||
else if( stack.stackSize > BigNumber )
|
||||
{
|
||||
final List var4 = stack.getTooltip( this.mc.thePlayer, this.mc.gameSettings.advancedItemTooltips );
|
||||
List<String> var4 = stack.getTooltip( this.mc.thePlayer, this.mc.gameSettings.advancedItemTooltips );
|
||||
var4.add( "Items Stored: " + NumberFormat.getNumberInstance( Locale.US ).format( stack.stackSize ) );
|
||||
this.drawTooltip( x, y, 0, join( var4, "\n" ) );
|
||||
this.drawTooltip( x, y, var4 );
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -381,10 +381,10 @@ public class GuiCraftConfirm extends AEBaseGui
|
|||
}
|
||||
}
|
||||
|
||||
if( this.tooltip >= 0 && dspToolTip.length() > 0 )
|
||||
if( this.tooltip >= 0 && !dspToolTip.isEmpty() )
|
||||
{
|
||||
GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS );
|
||||
this.drawTooltip( toolPosX, toolPosY + 10, 0, dspToolTip );
|
||||
this.drawTooltip( toolPosX, toolPosY + 10, dspToolTip );
|
||||
GL11.glPopAttrib();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -332,10 +332,10 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource
|
|||
}
|
||||
}
|
||||
|
||||
if( this.tooltip >= 0 && dspToolTip.length() > 0 )
|
||||
if( this.tooltip >= 0 && !dspToolTip.isEmpty() )
|
||||
{
|
||||
GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS );
|
||||
this.drawTooltip( toolPosX, toolPosY + 10, 0, dspToolTip );
|
||||
this.drawTooltip( toolPosX, toolPosY + 10, dspToolTip );
|
||||
GL11.glPopAttrib();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -204,7 +204,7 @@ public class GuiNetworkStatus extends AEBaseGui implements ISortSource
|
|||
if( this.tooltip >= 0 && toolTip.length() > 0 )
|
||||
{
|
||||
GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS );
|
||||
this.drawTooltip( toolPosX, toolPosY + 10, 0, toolTip );
|
||||
this.drawTooltip( toolPosX, toolPosY + 10, toolTip );
|
||||
GL11.glPopAttrib();
|
||||
}
|
||||
}
|
||||
|
@ -286,7 +286,7 @@ public class GuiNetworkStatus extends AEBaseGui implements ISortSource
|
|||
|
||||
if( myStack != null )
|
||||
{
|
||||
final List currentToolTip = stack.getTooltip( this.mc.thePlayer, this.mc.gameSettings.advancedItemTooltips );
|
||||
List<String> currentToolTip = stack.getTooltip( this.mc.thePlayer, this.mc.gameSettings.advancedItemTooltips );
|
||||
|
||||
while( currentToolTip.size() > 1 )
|
||||
{
|
||||
|
@ -296,7 +296,7 @@ public class GuiNetworkStatus extends AEBaseGui implements ISortSource
|
|||
currentToolTip.add( GuiText.Installed.getLocal() + ": " + ( myStack.getStackSize() ) );
|
||||
currentToolTip.add( GuiText.EnergyDrain.getLocal() + ": " + Platform.formatPowerLong( myStack.getCountRequestable(), true ) );
|
||||
|
||||
this.drawTooltip( x, y, 0, join( currentToolTip, "\n" ) );
|
||||
this.drawTooltip( x, y, currentToolTip );
|
||||
}
|
||||
}
|
||||
// super.drawItemStackTooltip( stack, x, y );
|
||||
|
|
Loading…
Reference in New Issue