]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blobdiff - src/main/java/com/irtimaled/bbor/client/gui/AbstractSlider.java
Change gui to use scrollable control list
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / gui / AbstractSlider.java
index 059ce943e642c636bad7d35804bca769f320ceaa..0cd402460d4aa410d31a16a9d2ddf943b18be581 100644 (file)
@@ -1,28 +1,27 @@
 package com.irtimaled.bbor.client.gui;
 
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.GuiButton;
 import net.minecraft.util.math.MathHelper;
 import org.lwjgl.opengl.GL11;
 
-abstract class AbstractSlider extends GuiButton implements IRenderableControl {
+abstract class AbstractSlider extends AbstractControl {
     double progress;
+    private boolean isDragging;
 
-    AbstractSlider(int id, int x, int y, int width) {
-        super(id, x, y, width, 20, "");
+    AbstractSlider(int x, int y, int width) {
+        super(x, y, width, "");
     }
 
     @Override
-    public void render(int mouseX, int mouseY) {
-        super.render(mouseX, mouseY, 0f);
-    }
-
-    @Override
-    protected void renderBg(Minecraft minecraft, int mouseX, int mouseY) {
-        minecraft.getTextureManager().bindTexture(BUTTON_TEXTURES);
+    protected void renderBackground(int mouseX, int mouseY) {
+        this.minecraft.getTextureManager().bindTexture(BUTTON_TEXTURES);
         GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
-        this.drawTexturedModalRect(this.x + (int) (this.progress * (double) (this.width - 8)), this.y, 0, 66, 4, 20);
-        this.drawTexturedModalRect(this.x + (int) (this.progress * (double) (this.width - 8)) + 4, this.y, 196, 66, 4, 20);
+        if(isDragging) {
+            changeProgress(mouseX);
+        }
+
+        int hoverState = super.getHoverState(this.hovered);
+        this.drawTexturedModalRect(this.x + (int) (this.progress * (double) (this.width - 8)), this.y, 0, 46 + hoverState * 20, 4, this.height);
+        this.drawTexturedModalRect(this.x + (int) (this.progress * (double) (this.width - 8)) + 4, this.y, 196, 46 + hoverState * 20, 4, 20);
     }
 
     boolean setProgress(double progress) {
@@ -49,13 +48,17 @@ abstract class AbstractSlider extends GuiButton implements IRenderableControl {
     @Override
     protected void onDrag(double mouseX, double mouseY, double deltaX, double deltaY) {
         changeProgress(mouseX);
-        super.onDrag(mouseX, mouseY, deltaX, deltaY);
     }
 
     @Override
     public void onClick(double mouseX, double mouseY) {
         changeProgress(mouseX);
-        super.onClick(mouseX, mouseY);
+        isDragging = true;
+    }
+
+    @Override
+    public void onRelease(double mouseX, double mouseY) {
+        this.isDragging = false;
     }
 
     protected abstract void updateText();