-
Notifications
You must be signed in to change notification settings - Fork 152
Expand file tree
/
Copy pathLabelWidget.java
More file actions
73 lines (61 loc) · 2.39 KB
/
LabelWidget.java
File metadata and controls
73 lines (61 loc) · 2.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package gregtech.api.gui.widgets;
import gregtech.api.gui.IRenderContext;
import gregtech.api.gui.Widget;
import gregtech.api.util.LocalisationUtils;
import gregtech.api.util.Position;
import gregtech.api.util.Size;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class LabelWidget extends Widget {
protected boolean xCentered = false;
protected String text;
protected Object[] formatting;
private int color;
public LabelWidget(int xPosition, int yPosition, String text, Object... formatting) {
this(xPosition, yPosition, text, 0x404040, formatting);
}
public LabelWidget(int xPosition, int yPosition, String text, int color) {
this(xPosition, yPosition, text, color, new Object[0]);
}
public LabelWidget(int xPosition, int yPosition, String text, int color, Object[] formatting) {
super(new Position(xPosition, yPosition), Size.ZERO);
this.text = text;
this.color = color;
this.formatting = formatting;
recomputeSize();
}
private String getResultText() {
return LocalisationUtils.format(text, formatting);
}
private void recomputeSize() {
if (isClientSide()) {
FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer;
String resultText = getResultText();
setSize(new Size(fontRenderer.getStringWidth(resultText), fontRenderer.FONT_HEIGHT));
if (uiAccess != null) {
uiAccess.notifySizeChange();
}
}
}
public LabelWidget setXCentered(boolean xCentered) {
this.xCentered = xCentered;
return this;
}
@Override
@SideOnly(Side.CLIENT)
public void drawInBackground(int mouseX, int mouseY, IRenderContext context) {
String resultText = getResultText();
FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer;
Position pos = getPosition();
if (!xCentered) {
fontRenderer.drawString(resultText, pos.x, pos.y, color);
} else {
fontRenderer.drawString(resultText,
pos.x - fontRenderer.getStringWidth(resultText) / 2, pos.y, color);
}
GlStateManager.color(1.0f, 1.0f, 1.0f);
}
}