1+ package com .falsepattern .lib .compat ;
2+
3+ import com .google .common .collect .Lists ;
4+ import java .util .List ;
5+
6+ import cpw .mods .fml .relauncher .Side ;
7+ import cpw .mods .fml .relauncher .SideOnly ;
8+ import net .minecraft .client .Minecraft ;
9+ import net .minecraft .client .gui .FontRenderer ;
10+ import net .minecraft .client .gui .Gui ;
11+ import net .minecraft .client .renderer .OpenGlHelper ;
12+ import net .minecraft .client .resources .I18n ;
13+ import org .lwjgl .opengl .GL11 ;
14+
15+ @ SideOnly (Side .CLIENT )
16+ public class GuiLabel extends Gui
17+ {
18+ protected int width ;
19+ protected int height ;
20+ public int x ;
21+ public int y ;
22+ private final List <String > labels ;
23+ public int id ;
24+ private boolean centered ;
25+ public boolean visible = true ;
26+ private final boolean labelBgEnabled ;
27+ private final int textColor ;
28+ private final int backColor ;
29+ private final int ulColor ;
30+ private final int brColor ;
31+ private final FontRenderer fontRenderer ;
32+ private final int border ;
33+
34+ public GuiLabel (FontRenderer fontRendererObj , int p_i45540_2_ , int p_i45540_3_ , int p_i45540_4_ , int p_i45540_5_ , int p_i45540_6_ , int p_i45540_7_ )
35+ {
36+ this .fontRenderer = fontRendererObj ;
37+ this .id = p_i45540_2_ ;
38+ this .x = p_i45540_3_ ;
39+ this .y = p_i45540_4_ ;
40+ this .width = p_i45540_5_ ;
41+ this .height = p_i45540_6_ ;
42+ this .labels = Lists .newArrayList ();
43+ this .centered = false ;
44+ this .labelBgEnabled = false ;
45+ this .textColor = p_i45540_7_ ;
46+ this .backColor = -1 ;
47+ this .ulColor = -1 ;
48+ this .brColor = -1 ;
49+ this .border = 0 ;
50+ }
51+
52+ public void addLine (String p_175202_1_ )
53+ {
54+ this .labels .add (I18n .format (p_175202_1_ ));
55+ }
56+
57+ /**
58+ * Sets the Label to be centered
59+ */
60+ public GuiLabel setCentered ()
61+ {
62+ this .centered = true ;
63+ return this ;
64+ }
65+
66+ public void drawLabel (Minecraft mc , int mouseX , int mouseY )
67+ {
68+ if (this .visible )
69+ {
70+ GL11 .glEnable (GL11 .GL_BLEND );
71+ OpenGlHelper .glBlendFunc (770 , 771 , 1 , 0 );
72+ GL11 .glBlendFunc (GL11 .GL_SRC_ALPHA , GL11 .GL_ONE_MINUS_SRC_ALPHA );
73+ this .drawLabelBackground (mc , mouseX , mouseY );
74+ int i = this .y + this .height / 2 + this .border / 2 ;
75+ int j = i - this .labels .size () * 10 / 2 ;
76+
77+ for (int k = 0 ; k < this .labels .size (); ++k )
78+ {
79+ if (this .centered )
80+ {
81+ this .drawCenteredString (this .fontRenderer , this .labels .get (k ), this .x + this .width / 2 , j + k * 10 , this .textColor );
82+ }
83+ else
84+ {
85+ this .drawString (this .fontRenderer , this .labels .get (k ), this .x , j + k * 10 , this .textColor );
86+ }
87+ }
88+ }
89+ }
90+
91+ protected void drawLabelBackground (Minecraft mcIn , int mouseX , int mouseY )
92+ {
93+ if (this .labelBgEnabled )
94+ {
95+ int i = this .width + this .border * 2 ;
96+ int j = this .height + this .border * 2 ;
97+ int k = this .x - this .border ;
98+ int l = this .y - this .border ;
99+ drawRect (k , l , k + i , l + j , this .backColor );
100+ this .drawHorizontalLine (k , k + i , l , this .ulColor );
101+ this .drawHorizontalLine (k , k + i , l + j , this .brColor );
102+ this .drawVerticalLine (k , l , l + j , this .ulColor );
103+ this .drawVerticalLine (k + i , l , l + j , this .brColor );
104+ }
105+ }
106+ }
0 commit comments