Added toggleable shadows and scaling to custom GUI labels.

This commit is contained in:
luisc committed 2022-01-20 20:27:26 -06:00
1 parent 0788b2750f
commit 83756381e4
2 files changed
+26 -5

No files matched your search

@@ -28,6 +28,7 @@ public class CustomGuiLabel extends Gui implements IGuiComponent {
int id;
int border = 2;
boolean labelBgEnabled = true;
boolean labelShadowEnabled = false;
protected int field_146167_a;
protected int field_146161_f;
@@ -45,13 +46,14 @@ public class CustomGuiLabel extends Gui implements IGuiComponent {
private int field_146163_s;
private static final String __OBFID = "CL_00000671";
public CustomGuiLabel(int id, String fullLabel, int x, int y, int width, int height){
public CustomGuiLabel(int id, String fullLabel, int x, int y, int width, int height, boolean shadow){
this.id = id;
this.fullLabel = fullLabel;
this.x = x;
this.y = y;
this.width = width;
this.height = height;
this.labelShadowEnabled = shadow;
}
public void setParent(GuiCustom parent) {
@@ -75,7 +77,7 @@ public class CustomGuiLabel extends Gui implements IGuiComponent {
}
public static CustomGuiLabel fromComponent(ScriptGuiLabel component) {
CustomGuiLabel lbl = new CustomGuiLabel(component.getID(), component.getText(), GuiCustom.guiLeft + component.getPosX(), GuiCustom.guiTop + component.getPosY(), component.getWidth(), component.getHeight());
CustomGuiLabel lbl = new CustomGuiLabel(component.getID(), component.getText(), GuiCustom.guiLeft + component.getPosX(), GuiCustom.guiTop + component.getPosY(), component.getWidth(), component.getHeight(), component.hasShadow());
lbl.scale = 1.0F;
lbl.color = component.getColor();
lbl.field_146172_j = true;
@@ -83,6 +85,7 @@ public class CustomGuiLabel extends Gui implements IGuiComponent {
if (component.hasHoverText()) {
lbl.hoverText = component.getHoverText();
}
lbl.labelShadowEnabled = component.hasShadow();
return lbl;
}
@@ -90,6 +93,7 @@ public class CustomGuiLabel extends Gui implements IGuiComponent {
public ICustomGuiComponent toComponent() {
ScriptGuiLabel component = new ScriptGuiLabel(this.id, this.fullLabel, this.field_146162_g, this.field_146174_h, this.field_146167_a, this.field_146161_f, this.color);
component.setHoverText(this.hoverText);
component.enableShadow(this.labelShadowEnabled);
return component;
}
@@ -100,8 +104,13 @@ public class CustomGuiLabel extends Gui implements IGuiComponent {
GL11.glEnable(GL11.GL_BLEND);
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
this.drawLabelBackground();
this.drawString(Minecraft.getMinecraft().fontRenderer, fullLabel, this.x, this.y, this.color);
GL11.glPushMatrix();
GL11.glTranslatef(this.x,this.y,0.0F);
GL11.glScalef(this.scale, this.scale, this.scale);
Minecraft.getMinecraft().fontRenderer.drawString(fullLabel, 0, 0, this.color, this.labelShadowEnabled);
GL11.glPopMatrix();
}
}
@@ -109,8 +118,8 @@ public class CustomGuiLabel extends Gui implements IGuiComponent {
{
if (this.labelBgEnabled)
{
int k = this.width + this.border * 2;
int l = this.height + this.border * 2;
int k = (int)(this.width*this.scale) + this.border * 2;
int l = (int)(this.height*this.scale) + this.border * 2;
int i1 = this.x - this.border;
int j1 = this.y - this.border;
drawRect(i1, j1, i1 + k, j1 + l, this.color);//backColor
@@ -9,6 +9,7 @@ public class ScriptGuiLabel extends ScriptGuiComponent implements ILabel {
int height;
int color;
float scale;
boolean shadow;
public ScriptGuiLabel() {
this.color = 16777215;
@@ -22,6 +23,7 @@ public class ScriptGuiLabel extends ScriptGuiComponent implements ILabel {
this.setText(label);
this.setPos(x, y);
this.setSize(width, height);
this.enableShadow(false);
}
public ScriptGuiLabel(int id, String label, int x, int y, int width, int height, int color) {
@@ -70,6 +72,14 @@ public class ScriptGuiLabel extends ScriptGuiComponent implements ILabel {
return this;
}
public boolean hasShadow(){
return this.shadow;
}
public void enableShadow(boolean shadow){
this.shadow = shadow;
}
public int getType() {
return 1;
}
@@ -80,6 +90,7 @@ public class ScriptGuiLabel extends ScriptGuiComponent implements ILabel {
nbt.setIntArray("size", new int[]{this.width, this.height});
nbt.setInteger("color", this.color);
nbt.setFloat("scale", this.scale);
nbt.setBoolean("shadow",this.shadow);
return nbt;
}
@@ -89,6 +100,7 @@ public class ScriptGuiLabel extends ScriptGuiComponent implements ILabel {
this.setSize(nbt.getIntArray("size")[0], nbt.getIntArray("size")[1]);
this.setColor(nbt.getInteger("color"));
this.setScale(nbt.getFloat("scale"));
this.enableShadow(this.shadow);
return this;
}
}