Worked more on GuiBar prefab

Changed the name since it has other uses than power. Though i'll need to
make a way to change the texture used to render the bar.
This commit is contained in:
Robert 2013-11-09 13:13:56 -05:00
parent f1376aba74
commit 3d84ad3749
2 changed files with 79 additions and 22 deletions

View file

@ -0,0 +1,79 @@
package dark.core.prefab.invgui;
import java.awt.Color;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.util.ResourceLocation;
import universalelectricity.core.vector.Vector2;
import dark.core.common.DarkMain;
/** When done should be a prefab that can be used to render a power bar on the screen
*
* @author DarkGuardsman */
public class GuiBar extends Gui
{
public static final ResourceLocation TEXTURE = new ResourceLocation(DarkMain.getInstance().DOMAIN, DarkMain.GUI_DIRECTORY + "bar.png");
protected float currentLevel = 0;
protected float maxLevel = 10;
protected float scale = 1.0f;
protected Vector2 position;
protected Color color = Color.red;
protected boolean horizontal = true;
private final int desiredH = 240;
private final int desiredW = 427;
public GuiBar(int xx, int yy, float scale, boolean horizontal)
{
this.position = new Vector2(xx, yy);
this.scale = scale;
this.horizontal = horizontal;
}
public GuiBar setColor(Color color)
{
this.color = color;
return this;
}
/** Sets the parms for the bar that determ the length of the bar
*
* @param current - current level of the reading
* @param max - max level of the reading; */
public GuiBar setMeter(float current, float max)
{
this.currentLevel = current;
this.maxLevel = max;
return this;
}
public void draw(Minecraft minecraft)
{
GL11.glPushMatrix();
if (scale != 1.0f)
{
//With everything scaled the gui will not align like a normal one so use a scaled distance from the main GUI
ScaledResolution scaledresolution = new ScaledResolution(minecraft.gameSettings, minecraft.displayWidth, minecraft.displayHeight);
int scaleH = scaledresolution.getScaledHeight();
int scaleW = scaledresolution.getScaledWidth();
//this.drawCenteredString(minecraft.fontRenderer, "Scale - " + scaleW + "x " + scaleH + "y", 100, 100, color);
float sh = (scaleH / desiredH) / scale;
float sW = (scaleW / desiredW) / scale;
//Start drawing after everying is scaled down
GL11.glScalef(scale, scale, scale);
this.drawCenteredString(minecraft.fontRenderer, "Scale - " + scaleW + "x " + scaleH + "y", 100, 100, Color.blue.getRGB());
}
Gui.drawRect(this.position.intX(), this.position.intY(), this.position.intX() + (horizontal ? 10 : 3), this.position.intY() + (!horizontal ? 10 : 3), Color.black.getRGB());
}
}

View file

@ -1,22 +0,0 @@
package dark.core.prefab.invgui;
import universalelectricity.core.vector.Vector2;
import net.minecraft.client.gui.Gui;
/** When done should be a prefab that can be used to render a power bar on the screen
*
* @author DarkGuardsman */
public class GuiPowerBar extends Gui
{
float currentLevel = 0;
float maxLevel = 10;
protected Vector2 size;
protected Vector2 position;
public GuiPowerBar(int xx, int yy, int width, int height)
{
this.size = new Vector2(width, height);
this.position = new Vector2(xx, yy);
}
}