diff --git a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java index 4c02940..9a216d6 100644 --- a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java +++ b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java @@ -4,12 +4,11 @@ import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents; import net.minecraft.client.font.TextRenderer; import net.minecraft.util.math.ColorHelper; - +import org.saturnclient.saturnclient.auth.SaturnSocket; import org.saturnclient.saturnclient.cloaks.Cloaks; import org.saturnclient.saturnclient.config.ConfigManager; import org.saturnclient.saturnclient.event.KeyInputHandler; import org.saturnclient.saturnmods.ModManager; -import org.saturnclient.saturnclient.auth.SaturnSocket; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -18,19 +17,26 @@ import org.slf4j.LoggerFactory; * Originally created by IIpho3nix and modified for Saturn Client by leo. */ public class SaturnClient implements ModInitializer { + public static final String MOD_ID = "saturnclient"; public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID); public static int COLOR = ColorHelper.getArgb(255, 251, 60, 79); public static int WHITE = ColorHelper.getArgb(255, 255, 255, 255); + public static int NORMAL = ColorHelper.getArgb(255, 182, 182, 182); public static TextRenderer textRenderer = null; + public static int getWhite(float alpha) { + return ((int) (alpha * 255) << 24) | (NORMAL & 0x00FFFFFF); + } + @Override public void onInitialize() { LOGGER.info("Initializing " + MOD_ID); ModManager.init(); ConfigManager.load(); - ClientLifecycleEvents.CLIENT_STOPPING.register(c -> ConfigManager.save()); + ClientLifecycleEvents.CLIENT_STOPPING.register(c -> ConfigManager.save() + ); KeyInputHandler.register(); if (SaturnSocket.authenticate()) { diff --git a/src/main/java/org/saturnclient/ui/SaturnAnimation.java b/src/main/java/org/saturnclient/ui/SaturnAnimation.java index c09d09b..61ea141 100644 --- a/src/main/java/org/saturnclient/ui/SaturnAnimation.java +++ b/src/main/java/org/saturnclient/ui/SaturnAnimation.java @@ -1,11 +1,11 @@ package org.saturnclient.ui; public class SaturnAnimation { + public int delay = 0; public int lastTick = 0; - public void init(SaturnWidget widget) { - } + public void init(SaturnWidget widget) {} public boolean run(SaturnWidget widget, int tick) { return true; diff --git a/src/main/java/org/saturnclient/ui/SaturnWidget.java b/src/main/java/org/saturnclient/ui/SaturnWidget.java index 12a42ae..efaf8f1 100644 --- a/src/main/java/org/saturnclient/ui/SaturnWidget.java +++ b/src/main/java/org/saturnclient/ui/SaturnWidget.java @@ -3,6 +3,7 @@ package org.saturnclient.ui; import net.minecraft.client.gui.DrawContext; public class SaturnWidget { + public int x = 0; public int y = 0; public int width = 0; @@ -11,24 +12,27 @@ public class SaturnWidget { public SaturnAnimation[] animations = null; public boolean visible = true; - public void init() { - } + public void init() {} - public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) { - } + public void render( + DrawContext context, + boolean hovering, + int mouseX, + int mouseY + ) {} - public void click(int mouseX, int mouseY) { - } + public void click(int mouseX, int mouseY) {} - public void keyPressed(int keyCode, int scanCode, int modifiers) { - } + public void keyPressed(int keyCode, int scanCode, int modifiers) {} - public void charTyped(char typedChar) { - } + public void charTyped(char typedChar) {} - public void mouseScrolled(int mouseX, int mouseY, double horizontalAmount, - double verticalAmount) { - } + public void mouseScrolled( + int mouseX, + int mouseY, + double horizontalAmount, + double verticalAmount + ) {} public SaturnWidget setX(int x) { this.x = x; diff --git a/src/main/java/org/saturnclient/ui/components/SaturnModComp.java b/src/main/java/org/saturnclient/ui/components/SaturnModComp.java index edb1c51..afd40cb 100644 --- a/src/main/java/org/saturnclient/ui/components/SaturnModComp.java +++ b/src/main/java/org/saturnclient/ui/components/SaturnModComp.java @@ -1,5 +1,9 @@ package org.saturnclient.ui.components; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.util.math.ColorHelper; import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.saturnclient.menus.ConfigEditor; import org.saturnclient.saturnmods.SaturnMod; @@ -7,12 +11,8 @@ import org.saturnclient.ui.SaturnUi; import org.saturnclient.ui.SaturnWidget; import org.saturnclient.ui.Textures; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.util.math.ColorHelper; - public class SaturnModComp extends SaturnWidget { + SaturnMod mod; public SaturnModComp(SaturnMod mod) { @@ -20,39 +20,97 @@ public class SaturnModComp extends SaturnWidget { } @Override - public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) { + public void render( + DrawContext context, + boolean hovering, + int mouseX, + int mouseY + ) { boolean enabled = mod.isEnabled(); boolean hovering_settings = settingsHovering(mouseX, mouseY); - int color = !hovering_settings && (enabled || hovering) ? SaturnClient.COLOR : ColorHelper.getWhite(alpha); + int color = !hovering_settings && (enabled || hovering) + ? SaturnClient.COLOR + : SaturnClient.getWhite(alpha); int size = 12; if (enabled) { - context.drawTexture(RenderLayer::getGuiTextured, Textures.MOD_BG, x, y, 0, 0, 86, 20, 86, - 20, SaturnClient.COLOR); + context.drawTexture( + RenderLayer::getGuiTextured, + Textures.MOD_BG, + x, + y, + 0, + 0, + 86, + 20, + 86, + 20, + SaturnClient.COLOR + ); } - context.drawTexture(RenderLayer::getGuiTextured, Textures.MOD, x, y, 0, 0, 86, 20, 86, - 20, color); + context.drawTexture( + RenderLayer::getGuiTextured, + Textures.MOD, + x, + y, + 0, + 0, + 86, + 20, + 86, + 20, + color + ); - context.drawTexture(RenderLayer::getGuiTextured, mod.getIconTexture(), x + 4, y + 4, 0, 0, size, size, - size, - size, color); + context.drawTexture( + RenderLayer::getGuiTextured, + mod.getIconTexture(), + x + 4, + y + 4, + 0, + 0, + size, + size, + size, + size, + color + ); - context.drawText(SaturnClient.textRenderer, SaturnUi.text(mod.getName()), x + 20, - y + (21 - SaturnClient.textRenderer.fontHeight) / 2, - color, false); + context.drawText( + SaturnClient.textRenderer, + SaturnUi.text(mod.getName()), + x + 20, + y + (21 - SaturnClient.textRenderer.fontHeight) / 2, + color, + false + ); - context.drawTexture(RenderLayer::getGuiTextured, Textures.SETTINGS, x + 77, - y + 11, 0, 0, 7, 7, 7, 7, hovering_settings ? SaturnClient.COLOR : ColorHelper.getWhite(alpha)); + context.drawTexture( + RenderLayer::getGuiTextured, + Textures.SETTINGS, + x + 77, + y + 11, + 0, + 0, + 7, + 7, + 7, + 7, + hovering_settings + ? SaturnClient.COLOR + : SaturnClient.getWhite(alpha) + ); } @Override public void click(int mouseX, int mouseY) { if (settingsHovering(mouseX, mouseY)) { - MinecraftClient.getInstance().setScreen(new ConfigEditor(mod.getConfig())); + MinecraftClient.getInstance() + .setScreen(new ConfigEditor(mod.getConfig())); } else { mod.setEnabled(!mod.isEnabled()); } @@ -63,7 +121,11 @@ public class SaturnModComp extends SaturnWidget { int sY = y + 11; int size = 7; - return sX < mouseX && sX + size > mouseX - && sY < mouseY && sY + size > mouseY; + return ( + sX < mouseX && + sX + size > mouseX && + sY < mouseY && + sY + size > mouseY + ); } } diff --git a/src/main/java/org/saturnclient/ui/components/SaturnToggle.java b/src/main/java/org/saturnclient/ui/components/SaturnToggle.java index 196e3b8..c2c77a6 100644 --- a/src/main/java/org/saturnclient/ui/components/SaturnToggle.java +++ b/src/main/java/org/saturnclient/ui/components/SaturnToggle.java @@ -1,15 +1,15 @@ package org.saturnclient.ui.components; +import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.util.math.ColorHelper; import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.saturnclient.config.Property; import org.saturnclient.ui.SaturnWidget; import org.saturnclient.ui.Textures; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.util.math.ColorHelper; - public class SaturnToggle extends SaturnWidget { + Property prop; public SaturnToggle(Property prop) { @@ -19,17 +19,46 @@ public class SaturnToggle extends SaturnWidget { } @Override - public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) { - int color = prop.value ? SaturnClient.COLOR : ColorHelper.getWhite(alpha); + public void render( + DrawContext context, + boolean hovering, + int mouseX, + int mouseY + ) { + int color = prop.value + ? SaturnClient.COLOR + : SaturnClient.getWhite(alpha); int w = 16; int h = 6; int s = 8; - context.drawTexture(RenderLayer::getGuiTextured, Textures.TOGGLE_BG, x, - y + 1, 0, 0, w, h, w, h, color); + context.drawTexture( + RenderLayer::getGuiTextured, + Textures.TOGGLE_BG, + x, + y + 1, + 0, + 0, + w, + h, + w, + h, + color + ); - context.drawTexture(RenderLayer::getGuiTextured, Textures.TOGGLE_INDICATOR, prop.value ? x + 8 : x, - y, 0, 0, s, s, s, s, color); + context.drawTexture( + RenderLayer::getGuiTextured, + Textures.TOGGLE_INDICATOR, + prop.value ? x + 8 : x, + y, + 0, + 0, + s, + s, + s, + s, + color + ); } @Override diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java b/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java index 22f2eb4..e6b1173 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java @@ -1,19 +1,20 @@ package org.saturnclient.ui.widgets; -import java.util.function.Consumer; -import org.lwjgl.opengl.GL11; -import org.saturnclient.saturnclient.SaturnClient; -import org.saturnclient.ui.SaturnUi; -import org.saturnclient.ui.SaturnWidget; -import org.saturnclient.ui.Textures; import com.mojang.blaze3d.systems.RenderSystem; +import java.util.function.Consumer; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.render.RenderLayer; import net.minecraft.util.math.ColorHelper; 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; +import org.saturnclient.ui.Textures; public class SaturnButton extends SaturnWidget { + public boolean active = true; public String text; public Consumer onPress; @@ -25,37 +26,73 @@ public class SaturnButton extends SaturnWidget { } public SaturnButton(String text, Runnable onPress) { - this(text, (b) -> { + this(text, b -> { onPress.run(); }); } @Override - public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) { + public void render( + DrawContext context, + boolean hovering, + int mouseX, + int mouseY + ) { MinecraftClient minecraftClient = MinecraftClient.getInstance(); - int hoverColor = ((int) (alpha * 255) << 24) | (SaturnClient.COLOR & 0x00FFFFFF); + int hoverColor = + ((int) (alpha * 255) << 24) | (SaturnClient.COLOR & 0x00FFFFFF); if (background) { RenderSystem.setShaderTexture(0, Textures.BUTTON); - RenderSystem.texParameter(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR_MIPMAP_LINEAR); + RenderSystem.texParameter( + GL11.GL_TEXTURE_2D, + GL11.GL_TEXTURE_MIN_FILTER, + GL11.GL_LINEAR_MIPMAP_LINEAR + ); - context.drawGuiTexture(RenderLayer::getGuiTextured, Textures.BUTTON, this.x, - this.y, this.width, this.height, ColorHelper.getWhite(this.alpha)); + context.drawGuiTexture( + RenderLayer::getGuiTextured, + Textures.BUTTON, + this.x, + this.y, + this.width, + this.height, + SaturnClient.getWhite(this.alpha) + ); if (hovering) { - context.drawGuiTexture(RenderLayer::getGuiTextured, Textures.BUTTON_BORDER, this.x, - this.y, this.width, this.height, hoverColor); + context.drawGuiTexture( + RenderLayer::getGuiTextured, + Textures.BUTTON_BORDER, + this.x, + this.y, + this.width, + this.height, + hoverColor + ); } } if (alpha != 0.0f) { int i = this.active ? 16777215 : 10526880; - context.drawText(minecraftClient.textRenderer, - SaturnUi.text(text), - this.x + ((this.width - minecraftClient.textRenderer.getWidth(SaturnUi.text(text))) / 2), - this.y + ((this.height - minecraftClient.textRenderer.fontHeight + 1) / 2), - hovering ? hoverColor : i | MathHelper.ceil(this.alpha * 255.0F) << 24, false); + context.drawText( + minecraftClient.textRenderer, + SaturnUi.text(text), + this.x + + ((this.width - + minecraftClient.textRenderer.getWidth( + SaturnUi.text(text) + )) / + 2), + this.y + + ((this.height - minecraftClient.textRenderer.fontHeight + 1) / + 2), + hovering + ? hoverColor + : i | (MathHelper.ceil(this.alpha * 255.0F) << 24), + false + ); } } diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnClickableImage.java b/src/main/java/org/saturnclient/ui/widgets/SaturnClickableImage.java index 390761c..6fda52d 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnClickableImage.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnClickableImage.java @@ -1,38 +1,57 @@ package org.saturnclient.ui.widgets; import java.util.function.Consumer; - -import org.saturnclient.saturnclient.SaturnClient; -import org.saturnclient.ui.SaturnWidget; - import net.minecraft.client.gui.DrawContext; import net.minecraft.client.render.RenderLayer; import net.minecraft.util.Identifier; import net.minecraft.util.math.ColorHelper; import net.minecraft.util.math.MathHelper; +import org.saturnclient.saturnclient.SaturnClient; +import org.saturnclient.ui.SaturnWidget; public class SaturnClickableImage extends SaturnWidget { + public Identifier texture; public boolean selected = false; public Consumer onPress; - public int color = ColorHelper.getWhite(1.0f); + public int color = SaturnClient.getWhite(1.0f); public int hoverColor = SaturnClient.COLOR; - public SaturnClickableImage(Identifier texture, Consumer onPress) { + public SaturnClickableImage( + Identifier texture, + Consumer onPress + ) { this.texture = texture; this.onPress = onPress; } public SaturnClickableImage(Identifier texture, Runnable onPress) { - this(texture, (m) -> { + this(texture, m -> { onPress.run(); }); } @Override - public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) { - context.drawTexture(RenderLayer::getGuiTextured, texture, x, y, 0, 0, width, height, width, - height, (hovering || selected ? hoverColor : color) | MathHelper.ceil(this.alpha * 255.0F) << 24); + public void render( + DrawContext context, + boolean hovering, + int mouseX, + int mouseY + ) { + context.drawTexture( + RenderLayer::getGuiTextured, + texture, + x, + y, + 0, + 0, + width, + height, + width, + height, + (hovering || selected ? hoverColor : color) | + (MathHelper.ceil(this.alpha * 255.0F) << 24) + ); } @Override @@ -44,5 +63,4 @@ public class SaturnClickableImage extends SaturnWidget { this.selected = selected; return this; } - } diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnClickableSprite.java b/src/main/java/org/saturnclient/ui/widgets/SaturnClickableSprite.java index 0b25af9..db399d4 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnClickableSprite.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnClickableSprite.java @@ -1,39 +1,53 @@ package org.saturnclient.ui.widgets; import java.util.function.Consumer; - -import org.saturnclient.saturnclient.SaturnClient; -import org.saturnclient.ui.SaturnWidget; - import net.minecraft.client.gui.DrawContext; import net.minecraft.client.render.RenderLayer; import net.minecraft.util.Identifier; import net.minecraft.util.math.ColorHelper; import net.minecraft.util.math.MathHelper; +import org.saturnclient.saturnclient.SaturnClient; +import org.saturnclient.ui.SaturnWidget; public class SaturnClickableSprite extends SaturnWidget { + public Identifier sprite; public boolean selected = false; public Consumer onPress; - public int color = ColorHelper.getWhite(1.0f); + public int color = SaturnClient.getWhite(1.0f); public int hoverColor = SaturnClient.COLOR; - public SaturnClickableSprite(Identifier sprite, Consumer onPress) { + public SaturnClickableSprite( + Identifier sprite, + Consumer onPress + ) { this.sprite = sprite; this.onPress = onPress; } public SaturnClickableSprite(Identifier sprite, Runnable onPress) { - this(sprite, (m) -> { + this(sprite, m -> { onPress.run(); }); } @Override - public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) { - context.drawGuiTexture(RenderLayer::getGuiTextured, sprite, this.x, - this.y, this.width, this.height, - (hovering || selected ? hoverColor : color) | MathHelper.ceil(this.alpha * 255.0F) << 24); + public void render( + DrawContext context, + boolean hovering, + int mouseX, + int mouseY + ) { + context.drawGuiTexture( + RenderLayer::getGuiTextured, + sprite, + this.x, + this.y, + this.width, + this.height, + (hovering || selected ? hoverColor : color) | + (MathHelper.ceil(this.alpha * 255.0F) << 24) + ); } @Override diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnImage.java b/src/main/java/org/saturnclient/ui/widgets/SaturnImage.java index 995731b..300c6da 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnImage.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnImage.java @@ -1,13 +1,14 @@ package org.saturnclient.ui.widgets; -import org.saturnclient.ui.SaturnWidget; - import net.minecraft.client.gui.DrawContext; import net.minecraft.client.render.RenderLayer; import net.minecraft.util.Identifier; import net.minecraft.util.math.ColorHelper; +import org.saturnclient.saturnclient.SaturnClient; +import org.saturnclient.ui.SaturnWidget; public class SaturnImage extends SaturnWidget { + private final Identifier sprite; public SaturnImage(Identifier sprite) { @@ -15,8 +16,24 @@ public class SaturnImage extends SaturnWidget { } @Override - public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) { - context.drawTexture(RenderLayer::getGuiTextured, sprite, x, y, 0, 0, width, height, width, - height, ColorHelper.getWhite(alpha)); + public void render( + DrawContext context, + boolean hovering, + int mouseX, + int mouseY + ) { + context.drawTexture( + RenderLayer::getGuiTextured, + sprite, + x, + y, + 0, + 0, + width, + height, + width, + height, + ColorHelper.getWhite(alpha) + ); } } diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnImageButton.java b/src/main/java/org/saturnclient/ui/widgets/SaturnImageButton.java index e5c5239..be65ef0 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnImageButton.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnImageButton.java @@ -1,42 +1,68 @@ package org.saturnclient.ui.widgets; import java.util.function.Consumer; -import org.saturnclient.saturnclient.SaturnClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.render.RenderLayer; import net.minecraft.util.Identifier; import net.minecraft.util.math.ColorHelper; +import org.saturnclient.saturnclient.SaturnClient; public class SaturnImageButton extends SaturnButton { + public Identifier sprite; public int imageWidth; public int imageHeight; public Consumer onPress; - public SaturnImageButton(Identifier sprite, int imageWidth, int imageHeight, Consumer onPress) { - super("", (b) -> { - }); + public SaturnImageButton( + Identifier sprite, + int imageWidth, + int imageHeight, + Consumer onPress + ) { + super("", b -> {}); this.sprite = sprite; this.imageWidth = imageWidth; this.imageHeight = imageHeight; this.onPress = onPress; } - public SaturnImageButton(Identifier sprite, int imageWidth, int imageHeight, Runnable onPress) { - this(sprite, imageWidth, imageHeight, (b) -> { + public SaturnImageButton( + Identifier sprite, + int imageWidth, + int imageHeight, + Runnable onPress + ) { + this(sprite, imageWidth, imageHeight, b -> { onPress.run(); }); } @Override - public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) { + public void render( + DrawContext context, + boolean hovering, + int mouseX, + int mouseY + ) { super.render(context, hovering, mouseX, mouseY); - int hoverColor = ((int) (alpha * 255) << 24) | (SaturnClient.COLOR & 0x00FFFFFF); + int hoverColor = + ((int) (alpha * 255) << 24) | (SaturnClient.COLOR & 0x00FFFFFF); - context.drawTexture(RenderLayer::getGuiTextured, sprite, (x + (width - imageWidth) / 2), - (y + (height - imageHeight) / 2), 0, 0, imageWidth, imageHeight, imageWidth, - imageHeight, hovering ? hoverColor : ColorHelper.getWhite(alpha)); + context.drawTexture( + RenderLayer::getGuiTextured, + sprite, + (x + (width - imageWidth) / 2), + (y + (height - imageHeight) / 2), + 0, + 0, + imageWidth, + imageHeight, + imageWidth, + imageHeight, + hovering ? hoverColor : SaturnClient.getWhite(alpha) + ); } @Override diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnInputBox.java b/src/main/java/org/saturnclient/ui/widgets/SaturnInputBox.java index 5fc8b4e..1bd959b 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnInputBox.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnInputBox.java @@ -1,24 +1,32 @@ package org.saturnclient.ui.widgets; -import org.lwjgl.glfw.GLFW; -import org.saturnclient.ui.SaturnUi; -import org.saturnclient.ui.SaturnWidget; -import org.saturnclient.ui.Textures; - import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.render.RenderLayer; import net.minecraft.util.math.ColorHelper; +import org.lwjgl.glfw.GLFW; +import org.saturnclient.saturnclient.SaturnClient; +import org.saturnclient.ui.SaturnUi; +import org.saturnclient.ui.SaturnWidget; +import org.saturnclient.ui.Textures; public class SaturnInputBox extends SaturnWidget { + public String text = ""; public String placeholder = ""; public int cursorPosition = 0; public boolean focused = false; - private TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; + private TextRenderer textRenderer = MinecraftClient.getInstance() + .textRenderer; - public SaturnInputBox(String placeholder, int x, int y, int width, int height) { + public SaturnInputBox( + String placeholder, + int x, + int y, + int width, + int height + ) { this.x = x; this.y = y; this.width = width; @@ -34,8 +42,10 @@ public class SaturnInputBox extends SaturnWidget { @Override public void charTyped(char chr) { if (focused) { - text = text.substring(0, cursorPosition) + chr - + text.substring(cursorPosition); + text = + text.substring(0, cursorPosition) + + chr + + text.substring(cursorPosition); cursorPosition++; } @@ -46,7 +56,9 @@ public class SaturnInputBox extends SaturnWidget { if (focused) { if (keyCode == GLFW.GLFW_KEY_BACKSPACE) { if (cursorPosition > 0) { - text = text.substring(0, cursorPosition - 1) + text.substring(cursorPosition); + text = + text.substring(0, cursorPosition - 1) + + text.substring(cursorPosition); cursorPosition--; } } else if (keyCode == GLFW.GLFW_KEY_LEFT) { @@ -62,22 +74,51 @@ public class SaturnInputBox extends SaturnWidget { } @Override - public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) { - context.drawGuiTexture(RenderLayer::getGuiTextured, Textures.BUTTON, this.x, - this.y, this.width, this.height, ColorHelper.getWhite(this.alpha)); + public void render( + DrawContext context, + boolean hovering, + int mouseX, + int mouseY + ) { + context.drawGuiTexture( + RenderLayer::getGuiTextured, + Textures.BUTTON, + this.x, + this.y, + this.width, + this.height, + SaturnClient.getWhite(this.alpha) + ); int scrollOffset = getScrollOffset(); String visibleText = text.substring(scrollOffset); int textColor = focused ? 0xFFFFFF : 0xAAAAAA; - context.drawText(textRenderer, - SaturnUi.text(visibleText), x + 5, - y + 5, textColor, false); + context.drawText( + textRenderer, + SaturnUi.text(visibleText), + x + 5, + y + 5, + textColor, + false + ); if (focused) { - int cursorX = x + 5 - + textRenderer.getWidth(SaturnUi.text(visibleText.substring(0, cursorPosition - scrollOffset))); - context.fill(cursorX, y + 3, cursorX + 1, y + height - 3, 0xFFFFFFFF); + int cursorX = + x + + 5 + + textRenderer.getWidth( + SaturnUi.text( + visibleText.substring(0, cursorPosition - scrollOffset) + ) + ); + context.fill( + cursorX, + y + 3, + cursorX + 1, + y + height - 3, + 0xFFFFFFFF + ); } } @@ -94,11 +135,19 @@ public class SaturnInputBox extends SaturnWidget { int offset = 0; if (cursorPosition == text.length()) { - while (textRenderer.getWidth(SaturnUi.text(text.substring(offset))) > width) { + while ( + textRenderer.getWidth(SaturnUi.text(text.substring(offset))) > + width + ) { offset++; } } else { - while (textRenderer.getWidth(SaturnUi.text(text.substring(offset, cursorPosition))) > width) { + while ( + textRenderer.getWidth( + SaturnUi.text(text.substring(offset, cursorPosition)) + ) > + width + ) { offset++; } } diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnSprite.java b/src/main/java/org/saturnclient/ui/widgets/SaturnSprite.java index 162c829..fdc047e 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnSprite.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnSprite.java @@ -1,13 +1,14 @@ package org.saturnclient.ui.widgets; -import org.saturnclient.ui.SaturnWidget; - import net.minecraft.client.gui.DrawContext; import net.minecraft.client.render.RenderLayer; import net.minecraft.util.Identifier; import net.minecraft.util.math.ColorHelper; +import org.saturnclient.saturnclient.SaturnClient; +import org.saturnclient.ui.SaturnWidget; public class SaturnSprite extends SaturnWidget { + private final Identifier sprite; public SaturnSprite(Identifier sprite) { @@ -15,8 +16,20 @@ public class SaturnSprite extends SaturnWidget { } @Override - public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) { - context.drawGuiTexture(RenderLayer::getGuiTextured, sprite, this.x, - this.y, this.width, this.height, ColorHelper.getWhite(this.alpha)); + public void render( + DrawContext context, + boolean hovering, + int mouseX, + int mouseY + ) { + context.drawGuiTexture( + RenderLayer::getGuiTextured, + sprite, + this.x, + this.y, + this.width, + this.height, + ColorHelper.getWhite(this.alpha) + ); } } diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnText.java b/src/main/java/org/saturnclient/ui/widgets/SaturnText.java index 93f4f26..b29e822 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnText.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnText.java @@ -1,12 +1,13 @@ package org.saturnclient.ui.widgets; +import net.minecraft.client.gui.DrawContext; +import net.minecraft.util.math.ColorHelper; import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.ui.SaturnUi; import org.saturnclient.ui.SaturnWidget; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.util.math.ColorHelper; public class SaturnText extends SaturnWidget { + private String text; public SaturnText(String text) { @@ -20,9 +21,19 @@ public class SaturnText extends SaturnWidget { } @Override - public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) { - context.drawText(SaturnClient.textRenderer, - SaturnUi.text(text), x, y, - ColorHelper.getWhite(alpha), false); + public void render( + DrawContext context, + boolean hovering, + int mouseX, + int mouseY + ) { + context.drawText( + SaturnClient.textRenderer, + SaturnUi.text(text), + x, + y, + SaturnClient.getWhite(alpha), + false + ); } }