diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java b/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java index c2e0a49..cbb2002 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java @@ -5,7 +5,6 @@ import java.util.function.Consumer; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.util.math.MathHelper; -import org.lwjgl.opengl.GL11; import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.ui.SaturnUi; import org.saturnclient.ui.SaturnWidget; @@ -42,10 +41,6 @@ public class SaturnButton extends SaturnWidget { if (background) { RenderSystem.setShaderTexture(0, Textures.BUTTON); - RenderSystem.texParameter( - GL11.GL_TEXTURE_2D, - GL11.GL_TEXTURE_MIN_FILTER, - GL11.GL_LINEAR_MIPMAP_LINEAR); SaturnUi.drawHighResGuiTexture( context, diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnImageButton.java b/src/main/java/org/saturnclient/ui/widgets/SaturnImageButton.java index f187f91..36bb4f6 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnImageButton.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnImageButton.java @@ -5,8 +5,13 @@ import net.minecraft.client.gui.DrawContext; import net.minecraft.client.render.RenderLayer; import net.minecraft.util.Identifier; import org.saturnclient.saturnclient.SaturnClient; +import org.saturnclient.ui.SaturnUi; +import org.saturnclient.ui.SaturnWidget; +import org.saturnclient.ui.Textures; -public class SaturnImageButton extends SaturnButton { +import com.mojang.blaze3d.systems.RenderSystem; + +public class SaturnImageButton extends SaturnWidget { public Identifier sprite; public int imageWidth; @@ -14,12 +19,10 @@ public class SaturnImageButton extends SaturnButton { public Consumer onPress; public SaturnImageButton( - Identifier sprite, - int imageWidth, - int imageHeight, - Consumer onPress - ) { - super("", _o -> {}); + Identifier sprite, + int imageWidth, + int imageHeight, + Consumer onPress) { this.sprite = sprite; this.imageWidth = imageWidth; this.imageHeight = imageHeight; @@ -27,11 +30,10 @@ public class SaturnImageButton extends SaturnButton { } public SaturnImageButton( - Identifier sprite, - int imageWidth, - int imageHeight, - Runnable onPress - ) { + Identifier sprite, + int imageWidth, + int imageHeight, + Runnable onPress) { this(sprite, imageWidth, imageHeight, _o -> { onPress.run(); }); @@ -39,39 +41,50 @@ public class SaturnImageButton extends SaturnButton { @Override public void render( - DrawContext context, - boolean hovering, - int mouseX, - int mouseY - ) { - super.render(context, hovering, mouseX, mouseY); + DrawContext context, + boolean hovering, + int mouseX, + int mouseY) { + int hoverColor = ((int) (alpha * 255) << 24) | + (SaturnClient.COLOR.value & 0x00FFFFFF); + RenderSystem.setShaderTexture(0, Textures.BUTTON); - int hoverColor = - ((int) (alpha * 255) << 24) | - (SaturnClient.COLOR.value & 0x00FFFFFF); + SaturnUi.drawHighResGuiTexture( + context, + Textures.BUTTON, + 0, + 0, + this.width, + this.height, + SaturnClient.getWhite(this.alpha)); + + if (hovering) { + SaturnUi.drawHighResGuiTexture( + context, + Textures.BUTTON_BORDER, + 0, + 0, + this.width, + this.height, + hoverColor); + } context.drawTexture( - RenderLayer::getGuiTextured, - sprite, - ((width - imageWidth) / 2), - ((height - imageHeight) / 2), - 0, - 0, - imageWidth, - imageHeight, - imageWidth, - imageHeight, - hovering ? hoverColor : SaturnClient.getWhite(alpha) - ); + RenderLayer::getGuiTextured, + sprite, + ((width - imageWidth) / 2), + ((height - imageHeight) / 2), + 0, + 0, + imageWidth, + imageHeight, + imageWidth, + imageHeight, + hovering ? hoverColor : SaturnClient.getWhite(alpha)); } @Override public void click(int mouseX, int mouseY) { this.onPress.accept(this); } - - public SaturnImageButton setBackground(boolean background) { - this.background = background; - return this; - } }