You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			185 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Java
		
	
			
		
		
	
	
			185 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Java
		
	
package net.minecraft.client.gui;
 | 
						|
 | 
						|
import cpw.mods.fml.relauncher.Side;
 | 
						|
import cpw.mods.fml.relauncher.SideOnly;
 | 
						|
import net.minecraft.client.renderer.OpenGlHelper;
 | 
						|
import net.minecraft.client.renderer.Tessellator;
 | 
						|
import net.minecraft.util.IIcon;
 | 
						|
import net.minecraft.util.ResourceLocation;
 | 
						|
import org.lwjgl.opengl.GL11;
 | 
						|
 | 
						|
@SideOnly(Side.CLIENT)
 | 
						|
public class Gui
 | 
						|
{
 | 
						|
    public static final ResourceLocation optionsBackground = new ResourceLocation("textures/gui/options_background.png");
 | 
						|
    public static final ResourceLocation statIcons = new ResourceLocation("textures/gui/container/stats_icons.png");
 | 
						|
    public static final ResourceLocation icons = new ResourceLocation("textures/gui/icons.png");
 | 
						|
    protected float zLevel;
 | 
						|
    private static final String __OBFID = "CL_00000662";
 | 
						|
 | 
						|
    protected void drawHorizontalLine(int startX, int endX, int y, int color)
 | 
						|
    {
 | 
						|
        if (endX < startX)
 | 
						|
        {
 | 
						|
            int i1 = startX;
 | 
						|
            startX = endX;
 | 
						|
            endX = i1;
 | 
						|
        }
 | 
						|
 | 
						|
        drawRect(startX, y, endX + 1, y + 1, color);
 | 
						|
    }
 | 
						|
 | 
						|
    protected void drawVerticalLine(int x, int startY, int endY, int color)
 | 
						|
    {
 | 
						|
        if (endY < startY)
 | 
						|
        {
 | 
						|
            int i1 = startY;
 | 
						|
            startY = endY;
 | 
						|
            endY = i1;
 | 
						|
        }
 | 
						|
 | 
						|
        drawRect(x, startY + 1, x + 1, endY, color);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Draws a solid color rectangle with the specified coordinates and color. Args: x1, y1, x2, y2, color
 | 
						|
     */
 | 
						|
    public static void drawRect(int left, int top, int right, int bottom, int color)
 | 
						|
    {
 | 
						|
        int j1;
 | 
						|
 | 
						|
        if (left < right)
 | 
						|
        {
 | 
						|
            j1 = left;
 | 
						|
            left = right;
 | 
						|
            right = j1;
 | 
						|
        }
 | 
						|
 | 
						|
        if (top < bottom)
 | 
						|
        {
 | 
						|
            j1 = top;
 | 
						|
            top = bottom;
 | 
						|
            bottom = j1;
 | 
						|
        }
 | 
						|
 | 
						|
        float f3 = (float)(color >> 24 & 255) / 255.0F;
 | 
						|
        float f = (float)(color >> 16 & 255) / 255.0F;
 | 
						|
        float f1 = (float)(color >> 8 & 255) / 255.0F;
 | 
						|
        float f2 = (float)(color & 255) / 255.0F;
 | 
						|
        Tessellator tessellator = Tessellator.instance;
 | 
						|
        GL11.glEnable(GL11.GL_BLEND);
 | 
						|
        GL11.glDisable(GL11.GL_TEXTURE_2D);
 | 
						|
        OpenGlHelper.glBlendFunc(770, 771, 1, 0);
 | 
						|
        GL11.glColor4f(f, f1, f2, f3);
 | 
						|
        tessellator.startDrawingQuads();
 | 
						|
        tessellator.addVertex((double)left, (double)bottom, 0.0D);
 | 
						|
        tessellator.addVertex((double)right, (double)bottom, 0.0D);
 | 
						|
        tessellator.addVertex((double)right, (double)top, 0.0D);
 | 
						|
        tessellator.addVertex((double)left, (double)top, 0.0D);
 | 
						|
        tessellator.draw();
 | 
						|
        GL11.glEnable(GL11.GL_TEXTURE_2D);
 | 
						|
        GL11.glDisable(GL11.GL_BLEND);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Draws a rectangle with a vertical gradient between the specified colors.
 | 
						|
     */
 | 
						|
    protected void drawGradientRect(int left, int top, int right, int bottom, int startColor, int endColor)
 | 
						|
    {
 | 
						|
        float f = (float)(startColor >> 24 & 255) / 255.0F;
 | 
						|
        float f1 = (float)(startColor >> 16 & 255) / 255.0F;
 | 
						|
        float f2 = (float)(startColor >> 8 & 255) / 255.0F;
 | 
						|
        float f3 = (float)(startColor & 255) / 255.0F;
 | 
						|
        float f4 = (float)(endColor >> 24 & 255) / 255.0F;
 | 
						|
        float f5 = (float)(endColor >> 16 & 255) / 255.0F;
 | 
						|
        float f6 = (float)(endColor >> 8 & 255) / 255.0F;
 | 
						|
        float f7 = (float)(endColor & 255) / 255.0F;
 | 
						|
        GL11.glDisable(GL11.GL_TEXTURE_2D);
 | 
						|
        GL11.glEnable(GL11.GL_BLEND);
 | 
						|
        GL11.glDisable(GL11.GL_ALPHA_TEST);
 | 
						|
        OpenGlHelper.glBlendFunc(770, 771, 1, 0);
 | 
						|
        GL11.glShadeModel(GL11.GL_SMOOTH);
 | 
						|
        Tessellator tessellator = Tessellator.instance;
 | 
						|
        tessellator.startDrawingQuads();
 | 
						|
        tessellator.setColorRGBA_F(f1, f2, f3, f);
 | 
						|
        tessellator.addVertex((double)right, (double)top, (double)this.zLevel);
 | 
						|
        tessellator.addVertex((double)left, (double)top, (double)this.zLevel);
 | 
						|
        tessellator.setColorRGBA_F(f5, f6, f7, f4);
 | 
						|
        tessellator.addVertex((double)left, (double)bottom, (double)this.zLevel);
 | 
						|
        tessellator.addVertex((double)right, (double)bottom, (double)this.zLevel);
 | 
						|
        tessellator.draw();
 | 
						|
        GL11.glShadeModel(GL11.GL_FLAT);
 | 
						|
        GL11.glDisable(GL11.GL_BLEND);
 | 
						|
        GL11.glEnable(GL11.GL_ALPHA_TEST);
 | 
						|
        GL11.glEnable(GL11.GL_TEXTURE_2D);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Renders the specified text to the screen, center-aligned.
 | 
						|
     */
 | 
						|
    public void drawCenteredString(FontRenderer fontRendererIn, String text, int x, int y, int color)
 | 
						|
    {
 | 
						|
        fontRendererIn.drawStringWithShadow(text, x - fontRendererIn.getStringWidth(text) / 2, y, color);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Renders the specified text to the screen.
 | 
						|
     */
 | 
						|
    public void drawString(FontRenderer fontRendererIn, String text, int x, int y, int color)
 | 
						|
    {
 | 
						|
        fontRendererIn.drawStringWithShadow(text, x, y, color);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Draws a textured rectangle at the stored z-value. Args: x, y, u, v, width, height
 | 
						|
     */
 | 
						|
    public void drawTexturedModalRect(int x, int y, int textureX, int textureY, int width, int height)
 | 
						|
    {
 | 
						|
        float f = 0.00390625F;
 | 
						|
        float f1 = 0.00390625F;
 | 
						|
        Tessellator tessellator = Tessellator.instance;
 | 
						|
        tessellator.startDrawingQuads();
 | 
						|
        tessellator.addVertexWithUV((double)(x + 0), (double)(y + height), (double)this.zLevel, (double)((float)(textureX + 0) * f), (double)((float)(textureY + height) * f1));
 | 
						|
        tessellator.addVertexWithUV((double)(x + width), (double)(y + height), (double)this.zLevel, (double)((float)(textureX + width) * f), (double)((float)(textureY + height) * f1));
 | 
						|
        tessellator.addVertexWithUV((double)(x + width), (double)(y + 0), (double)this.zLevel, (double)((float)(textureX + width) * f), (double)((float)(textureY + 0) * f1));
 | 
						|
        tessellator.addVertexWithUV((double)(x + 0), (double)(y + 0), (double)this.zLevel, (double)((float)(textureX + 0) * f), (double)((float)(textureY + 0) * f1));
 | 
						|
        tessellator.draw();
 | 
						|
    }
 | 
						|
 | 
						|
    public void drawTexturedModelRectFromIcon(int x, int y, IIcon icon, int width, int height)
 | 
						|
    {
 | 
						|
        Tessellator tessellator = Tessellator.instance;
 | 
						|
        tessellator.startDrawingQuads();
 | 
						|
        tessellator.addVertexWithUV((double)(x + 0), (double)(y + height), (double)this.zLevel, (double)icon.getMinU(), (double)icon.getMaxV());
 | 
						|
        tessellator.addVertexWithUV((double)(x + width), (double)(y + height), (double)this.zLevel, (double)icon.getMaxU(), (double)icon.getMaxV());
 | 
						|
        tessellator.addVertexWithUV((double)(x + width), (double)(y + 0), (double)this.zLevel, (double)icon.getMaxU(), (double)icon.getMinV());
 | 
						|
        tessellator.addVertexWithUV((double)(x + 0), (double)(y + 0), (double)this.zLevel, (double)icon.getMinU(), (double)icon.getMinV());
 | 
						|
        tessellator.draw();
 | 
						|
    }
 | 
						|
 | 
						|
    public static void func_146110_a(int x, int y, float u, float v, int width, int height, float textureWidth, float textureHeight)
 | 
						|
    {
 | 
						|
        float f4 = 1.0F / textureWidth;
 | 
						|
        float f5 = 1.0F / textureHeight;
 | 
						|
        Tessellator tessellator = Tessellator.instance;
 | 
						|
        tessellator.startDrawingQuads();
 | 
						|
        tessellator.addVertexWithUV((double)x, (double)(y + height), 0.0D, (double)(u * f4), (double)((v + (float)height) * f5));
 | 
						|
        tessellator.addVertexWithUV((double)(x + width), (double)(y + height), 0.0D, (double)((u + (float)width) * f4), (double)((v + (float)height) * f5));
 | 
						|
        tessellator.addVertexWithUV((double)(x + width), (double)y, 0.0D, (double)((u + (float)width) * f4), (double)(v * f5));
 | 
						|
        tessellator.addVertexWithUV((double)x, (double)y, 0.0D, (double)(u * f4), (double)(v * f5));
 | 
						|
        tessellator.draw();
 | 
						|
    }
 | 
						|
 | 
						|
    public static void func_152125_a(int x, int y, float u, float v, int uWidth, int vHeight, int width, int height, float tileWidth, float tileHeight)
 | 
						|
    {
 | 
						|
        float f4 = 1.0F / tileWidth;
 | 
						|
        float f5 = 1.0F / tileHeight;
 | 
						|
        Tessellator tessellator = Tessellator.instance;
 | 
						|
        tessellator.startDrawingQuads();
 | 
						|
        tessellator.addVertexWithUV((double)x, (double)(y + height), 0.0D, (double)(u * f4), (double)((v + (float)vHeight) * f5));
 | 
						|
        tessellator.addVertexWithUV((double)(x + width), (double)(y + height), 0.0D, (double)((u + (float)uWidth) * f4), (double)((v + (float)vHeight) * f5));
 | 
						|
        tessellator.addVertexWithUV((double)(x + width), (double)y, 0.0D, (double)((u + (float)uWidth) * f4), (double)(v * f5));
 | 
						|
        tessellator.addVertexWithUV((double)x, (double)y, 0.0D, (double)(u * f4), (double)(v * f5));
 | 
						|
        tessellator.draw();
 | 
						|
    }
 | 
						|
} |