package mods.eln.gui; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; import org.lwjgl.opengl.GL11; import java.util.ArrayList; public class GuiVerticalProgressBar extends Gui implements IGuiObject { boolean visible; public int width, height, xPosition, yPosition; float value; int color; GuiHelper helper; public void setValue(float newValue) { this.value = newValue; if (value < 0f) value = 0f; if (value > 1f) value = 1f; } public void setColor(float r, float g, float b) { color = (0xFF << 24) + (((int) (r * 255)) << 16) + (((int) (g * 255)) << 8) + (((int) (b * 255)) << 0); } @Override public int getYMax() { return yPosition + height; } public GuiVerticalProgressBar(int xPosition, int yPosition, int width, int height, GuiHelper helper) { this.width = width; this.height = height; this.xPosition = xPosition; this.yPosition = yPosition; visible = true; setColor(1, 1, 1); this.helper = helper; } ArrayList<String> comment = new ArrayList<String>(); public void setComment(String[] comment) { for (String str : comment) { this.comment.add(str); } } @Override public void idraw(int x, int y, float f) { if (!visible) return; GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); // this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, 46 + 1 * 20, this.width / 2, this.height); // this.drawTexturedModalRect(this.xPosition + this.width / 2, this.yPosition, 200 - this.width / 2, 46 + 1 * 20, this.width / 2, this.height); //this.drawTexturedModalRect(this.xPosition + (int)(0.2 * (float)(this.width - 8)), this.yPosition, 0, 66, 4, 20); // this.drawTexturedModalRect(this.xPosition + (int)(0.2 * (float)(this.width - 8)) + 4, this.yPosition, 196, 66, 4, 20); drawRect(xPosition, yPosition, xPosition + width, yPosition + height, 0xFF404040); drawRect(xPosition + 1, yPosition + 1, xPosition + width - 1, yPosition + height - 1, 0xFF606060); drawRect(xPosition + 2, yPosition + 2, xPosition + width - 2, yPosition + height - 2, 0xFF808080); int yPos = (int) (-value * (height - 4) + yPosition + height - 2); drawRect(xPosition + 2, yPos, xPosition + width - 2, yPosition + height - 2, color); } @Override public boolean ikeyTyped(char key, int code) { return false; } @Override public void imouseClicked(int x, int y, int code) { } @Override public void imouseMove(int x, int y) { } @Override public void imouseMovedOrUp(int x, int y, int witch) { } @Override public void idraw2(int x, int y) { if (visible && x >= xPosition && y >= yPosition && x < xPosition + width && y < yPosition + height) helper.drawHoveringText(comment, x, y, Minecraft.getMinecraft().fontRenderer); } public void setComment(int line, String comment) { if (this.comment.size() < line + 1) this.comment.add(line, comment); else this.comment.set(line, comment); } public double getValue() { return value; } @Override public void translate(int x, int y) { this.xPosition += x; this.yPosition += y; } }