package org.halvors.electrometrics.client.gui.component;
import cofh.api.energy.IEnergyStorage;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.ResourceLocation;
import org.halvors.electrometrics.client.gui.IGui;
import org.halvors.electrometrics.common.util.energy.EnergyUtils;
@SideOnly(Side.CLIENT)
public class GuiPowerBar extends GuiComponentBase implements IGuiComponent {
private IPowerInfoHandler powerInfoHandler;
private int x;
private int y;
private int width = 6;
private int height = 56;
private int innerOffsetY = 2;
public GuiPowerBar(IGui gui, IPowerInfoHandler powerInfoHandler, ResourceLocation defaultResource, int x, int y) {
super("PowerBar.png", gui, defaultResource);
this.powerInfoHandler = powerInfoHandler;
this.x = x;
this.y = y;
}
public GuiPowerBar(IGui gui, final IEnergyStorage energyStorage, ResourceLocation defaultResource, int x, int y) {
this(gui, new IPowerInfoHandler() {
@Override
public String getTooltip() {
return EnergyUtils.getEnergyDisplay(energyStorage.getEnergyStored());
}
@Override
public double getLevel() {
return energyStorage.getEnergyStored() / energyStorage.getMaxEnergyStored();
}
}, defaultResource, x, y);
}
@Override
public void renderBackground(int xAxis, int yAxis, int xOrigin, int yOrigin, int guiWidthSize, int guiHeightSize) {
game.renderEngine.bindTexture(resource);
gui.drawTexturedRect(xOrigin + x, yOrigin + y, 0, 0, width, height);
if (powerInfoHandler.getLevel() > 0) {
int displayInt = (int) (powerInfoHandler.getLevel() * 52) + innerOffsetY;
gui.drawTexturedRect(xOrigin + x, yOrigin + y + height - displayInt, 6, height - displayInt, width, displayInt);
}
super.renderBackground(xAxis, yAxis, xOrigin, yOrigin, guiWidthSize, guiHeightSize);
}
@Override
public void renderForeground(int xAxis, int yAxis, int xSize, int ySize) {
game.renderEngine.bindTexture(resource);
if (powerInfoHandler.getTooltip() != null && xAxis >= x && xAxis <= x + width && yAxis >= y && yAxis <= y + height) {
displayTooltip(powerInfoHandler.getTooltip(), xAxis, yAxis);
}
super.renderForeground(xAxis, yAxis, xSize, ySize);
}
@Override
public void preMouseClicked(int xAxis, int yAxis, int guiWidth, int guiHeight, int button) {
}
@Override
public void mouseClicked(int xAxis, int yAxis, int guiWidth, int guiHeight, int button) {
}
@Override
public void mouseClickMove(int mouseX, int mouseY, int button, long ticks) {
}
@Override
public void mouseReleased(int x, int y, int type) {
}
}