package org.ultramine.gui;
import org.lwjgl.opengl.GL11;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.Minecraft;
import net.minecraft.util.ResourceLocation;
@SideOnly(Side.CLIENT)
public class ElementEnergyPanel implements IGuiElement
{
protected static final ResourceLocation texture = new ResourceLocation("privreg:textures/gui/icons.png");
private int xRel;
private int yRel;
private int xPos;
private int yPos;
private int height;
private int maxCharge;
private int charge;
public ElementEnergyPanel(int x, int y, int height, int maxEnergy)
{
this.xRel = x;
this.yRel = y;
this.height = height;
this.maxCharge = maxEnergy;
}
public ElementEnergyPanel(int x, int y, int height, int maxEnergy, int charge)
{
this(x, y, height, maxEnergy);
this.charge = charge;
}
public int setCharge(int charge)
{
if(charge <= this.maxCharge)
{
this.charge = charge;
return 0;
}
else
{
this.charge = this.maxCharge;
return charge - this.maxCharge;
}
}
public void setMaxCharge(int maxCharge)
{
this.maxCharge = maxCharge;
}
@Override
public void init(IActionListener container, int guiWidth, int guiHeight, int guiLeft, int guiTop)
{
xPos = xRel + guiLeft;
yPos = yRel + guiTop;
}
@Override
public void draw(Minecraft mc, int mx, int my)
{
mc.renderEngine.bindTexture(texture);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
//background
GuiUtils.drawTexturedModalRect(xPos, yPos, 230, 0, 17, 4);
int toheight = 4;
while(true)
{
toheight += 13;
if(toheight < height-4)
{
GuiUtils.drawTexturedModalRect(xPos, yPos+height-toheight, 230, 4, 17, 13);
}
else
{
toheight = (height - 4) - (toheight - 13);
GuiUtils.drawTexturedModalRect(xPos, yPos+4, 230, 17-toheight, 17, 13);
break;
}
}
GuiUtils.drawTexturedModalRect(xPos, yPos+height-4, 230, 17, 17, 4);
//charge
int energyHeight = (int)((float)charge/(float)maxCharge*(height-8));
if(energyHeight == 0 && charge > 0) energyHeight++;
toheight = 0;
while(true)
{
toheight += 13;
if(toheight < energyHeight)
{
GuiUtils.drawTexturedModalRect(xPos+4, yPos+height-toheight-4, 247, 0, 9, 13);
}
else
{
toheight = energyHeight - (toheight - 13);
GuiUtils.drawTexturedModalRect(xPos+4, yPos+height-energyHeight-4, 247, 13-toheight, 9, 13);
break;
}
}
}
@Override
public void keyTyped(char c, int code)
{
}
@Override
public void mouseClicked(int mx, int my, int buttonCode)
{
}
@Override
public void update()
{
}
}