package openmods.gui.component; import net.minecraft.client.Minecraft; import openmods.api.IValueReceiver; import org.lwjgl.opengl.GL11; public class GuiComponentProgress extends BaseComponent { private int progress; private float scale; public GuiComponentProgress(int x, int y, int maxProgress) { super(x, y); setMaxProgress(maxProgress); } @Override public void render(Minecraft minecraft, int offsetX, int offsetY, int mouseX, int mouseY) { bindComponentsSheet(); GL11.glColor3f(1, 1, 1); drawTexturedModalRect(offsetX + x, offsetY + y, 0, 38, getWidth(), getHeight()); int pxProgress = Math.round(progress * scale); drawTexturedModalRect(offsetX + x, offsetY + y, 0, 50, pxProgress, getHeight()); } @Override public void renderOverlay(Minecraft minecraft, int offsetX, int offsetY, int mouseX, int mouseY) {} @Override public int getWidth() { return 29; } @Override public int getHeight() { return 12; } public void setProgress(int progress) { this.progress = progress; } public void setMaxProgress(int maxProgress) { this.scale = (float)getWidth() / maxProgress; } public IValueReceiver<Integer> progressReceiver() { return new IValueReceiver<Integer>() { @Override public void setValue(Integer value) { progress = value; } }; } public IValueReceiver<Integer> maxProgressReceiver() { return new IValueReceiver<Integer>() { @Override public void setValue(Integer value) { setMaxProgress(value); } }; } }