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:
parent
f1376aba74
commit
3d84ad3749
2 changed files with 79 additions and 22 deletions
79
src/dark/core/prefab/invgui/GuiBar.java
Normal file
79
src/dark/core/prefab/invgui/GuiBar.java
Normal 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());
|
||||
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue