72 lines
2.4 KiB
Java
Executable File
72 lines
2.4 KiB
Java
Executable File
package eu.crushedpixel.replaymod.gui;
|
|
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.gui.GuiButton;
|
|
import net.minecraft.client.renderer.GlStateManager;
|
|
import net.minecraft.util.MathHelper;
|
|
|
|
public class GuiVideoFramerateSlider extends GuiButton {
|
|
|
|
public boolean dragging;
|
|
private String displayKey;
|
|
private float sliderValue;
|
|
public GuiVideoFramerateSlider(int buttonId, int p_i45017_2_, int p_i45017_3_, int initialFramerate, String displayKey) {
|
|
super(buttonId, p_i45017_2_, p_i45017_3_, 150, 20, "");
|
|
this.sliderValue = normalizeValue(initialFramerate);
|
|
this.displayString = displayKey + ": " + translate(initialFramerate);
|
|
this.displayKey = displayKey;
|
|
}
|
|
|
|
private String translate(int value) {
|
|
return String.valueOf(value);
|
|
}
|
|
|
|
protected int getHoverState(boolean mouseOver) {
|
|
return 0;
|
|
}
|
|
|
|
@Override
|
|
protected void mouseDragged(Minecraft mc, int mouseX, int mouseY) {
|
|
if(this.visible) {
|
|
if(this.dragging) {
|
|
sliderValue = (float) (mouseX - (this.xPosition + 4)) / (float) (this.width - 8);
|
|
sliderValue = MathHelper.clamp_float(sliderValue, 0.0F, 1.0F);
|
|
int f = denormalizeValue(sliderValue);
|
|
this.displayString = displayKey + ": " + translate(f);
|
|
}
|
|
|
|
mc.getTextureManager().bindTexture(buttonTextures);
|
|
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
|
|
this.drawTexturedModalRect(this.xPosition + (int) (sliderValue * (float) (this.width - 8)), this.yPosition, 0, 66, 4, 20);
|
|
this.drawTexturedModalRect(this.xPosition + (int) (sliderValue * (float) (this.width - 8)) + 4, this.yPosition, 196, 66, 4, 20);
|
|
}
|
|
}
|
|
|
|
public int getFPS() {
|
|
return denormalizeValue(sliderValue);
|
|
}
|
|
|
|
private float normalizeValue(int val) {
|
|
return (val - 10) / 110f;
|
|
}
|
|
|
|
private int denormalizeValue(float val) {
|
|
//Transfers the value ranging from 0.0 to 1.0 to the scale of 10 to 120
|
|
float r = 110f * val;
|
|
return Math.round(10 + r);
|
|
}
|
|
|
|
public boolean mousePressed(Minecraft mc, int mouseX, int mouseY) {
|
|
if(super.mousePressed(mc, mouseX, mouseY)) {
|
|
this.dragging = true;
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public void mouseReleased(int mouseX, int mouseY) {
|
|
this.dragging = false;
|
|
}
|
|
}
|