package hunternif.mc.atlas.client.gui;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.VertexBuffer;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import org.lwjgl.opengl.GL11;
class ProgressBarOverlay {
/** Total width of the progress bar. */
private final int barWidth;
/** Total height of the progress bar. */
private final int barHeight;
private final FontRenderer font;
@SideOnly(Side.CLIENT)
public ProgressBarOverlay(int barWidth, int barHeight) {
this.barWidth = barWidth;
this.barHeight = barHeight;
font = Minecraft.getMinecraft().fontRenderer;
}
/** Render progress bar on the screen. */
@SideOnly(Side.CLIENT)
public void draw(int x, int y) {
ExportUpdateListener l = ExportUpdateListener.INSTANCE;
int headerWidth = font.getStringWidth(l.header);
font.drawStringWithShadow(l.header, x + (barWidth - headerWidth)/2, y-14, 0xffffff);
int statusWidth = font.getStringWidth(l.status);
font.drawStringWithShadow(l.status, x + (barWidth - statusWidth)/2, y, 0xffffff);
y += 14;
double p = l.currentProgress/l.maxProgress;
if(l.maxProgress < 0)
p = 0;
GlStateManager.disableTexture2D();
Tessellator tessellator = Tessellator.getInstance();
VertexBuffer vb = tessellator.getBuffer();
vb.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_COLOR);
vb.pos(x, y, 0) .color(0.5f, 0.5f, 0.5f, 1).endVertex();
vb.pos(x, y+barHeight, 0) .color(0.5f, 0.5f, 0.5f, 1).endVertex();
vb.pos(x+barWidth, y+barHeight, 0) .color(0.5f, 0.5f, 0.5f, 1).endVertex();
vb.pos(x+barWidth, y, 0) .color(0.5f, 0.5f, 0.5f, 1).endVertex();
vb.pos(x, y, 0) .color(0.5f, 1, 0.5f, 1).endVertex();
vb.pos(x, y+barHeight, 0) .color(0.5f, 1, 0.5f, 1).endVertex();
vb.pos(x+barWidth*p, y+barHeight, 0).color(0.5f, 1, 0.5f, 1).endVertex();
vb.pos(x+barWidth*p, y, 0) .color(0.5f, 1, 0.5f, 1).endVertex();
tessellator.draw();
GlStateManager.enableTexture2D();
}
}