diff --git a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java index 3fb6d39..35e3a2b 100644 --- a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java +++ b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java @@ -19,7 +19,6 @@ import org.slf4j.LoggerFactory; /** * Main class for the Saturn Client mod. - * Originally created by IIpho3nix and modified for Saturn Client by leo. */ public class SaturnClient implements ModInitializer { diff --git a/src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/Cloaks.java b/src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/Cloaks.java index 7ad1b8a..2362677 100644 --- a/src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/Cloaks.java +++ b/src/main/java/org/saturnclient/saturnclient/cosmetics/cloaks/Cloaks.java @@ -17,6 +17,7 @@ import java.util.concurrent.ConcurrentHashMap; /** * Manages the cloak system for Saturn Client. * Handles loading and caching of player cloaks. + * Originally created by IIpho3nix and modified for Saturn Client by leo. */ public class Cloaks { private static final String[] ANIMATED_CLOAKS = { "glitch" }; diff --git a/src/main/java/org/saturnclient/saturnclient/menus/MainMenu.java b/src/main/java/org/saturnclient/saturnclient/menus/MainMenu.java index c815f1c..f69bdca 100644 --- a/src/main/java/org/saturnclient/saturnclient/menus/MainMenu.java +++ b/src/main/java/org/saturnclient/saturnclient/menus/MainMenu.java @@ -25,57 +25,52 @@ public class MainMenu extends SaturnUi { int buttonHeight = 25; draw( - new SaturnButton("Mods", () -> { - client.setScreen(new ModMenu()); - }) - .setX((width - buttonWidth) / 2) - .setY((height - buttonHeight) / 2) - .setWidth(buttonWidth) - .setHeight(buttonHeight) - .setAnimations(new FadeIn(2)) - ); + new SaturnButton("Mods", () -> { + client.setScreen(new ModMenu()); + }) + .setX((width - buttonWidth) / 2) + .setY((height - buttonHeight) / 2) + .setWidth(buttonWidth) + .setHeight(buttonHeight) + .setAnimations(new FadeIn(2))); draw( - new SaturnImageButton(Textures.HUD_ICON, 14, 14, () -> { - client.setScreen(new HudEditor()); - }) - .setX((width - buttonWidth - (buttonHeight * 2) - 6) / 2) - .setY((height - buttonHeight) / 2) - .setWidth(buttonHeight) - .setHeight(buttonHeight) - .setAnimations(new FadeIn(2)) - ); + new SaturnImageButton(Textures.HUD_ICON, 14, 14, () -> { + client.setScreen(new HudEditor()); + }) + .setX((width - buttonWidth - (buttonHeight * 2) - 6) / 2) + .setY((height - buttonHeight) / 2) + .setWidth(buttonHeight) + .setHeight(buttonHeight) + .setAnimations(new FadeIn(2))); draw( - new SaturnImageButton(Textures.COSMETICS, 14, 14, () -> { - client.setScreen(new CloaksMenu()); - }) - .setX((width / 2) + (buttonWidth / 2) + 3) - .setY((height - buttonHeight) / 2) - .setWidth(buttonHeight) - .setHeight(buttonHeight) - .setAnimations(new FadeIn(2)) - ); + new SaturnImageButton(Textures.COSMETICS, 14, 14, () -> { + client.setScreen(new CloaksMenu()); + }) + .setX((width / 2) + (buttonWidth / 2) + 3) + .setY((height - buttonHeight) / 2) + .setWidth(buttonHeight) + .setHeight(buttonHeight) + .setAnimations(new FadeIn(2))); int logoSize = 49; draw( - new SaturnImage(Textures.LOGO_TEXT) - .setX((width - logoSize) / 2) - .setY((height - 8) / 2 - 23) - .setWidth(logoSize) - .setHeight(8) - .setAnimations(new FadeIn(2)) - ); + new SaturnImage(Textures.LOGO_TEXT) + .setX((width - logoSize) / 2) + .setY((height - 8) / 2 - 23) + .setWidth(logoSize) + .setHeight(8) + .setAnimations(new FadeIn(2))); draw( - new SaturnImage(Textures.LOGO) - .setX((width - logoSize) / 2) - .setY(height / 2 - logoSize - 24) - .setWidth(logoSize) - .setHeight(logoSize) - .setAnimations(new Slide(2, 14)) - ); + new SaturnImage(Textures.LOGO) + .setX((width - logoSize) / 2) + .setY(height / 2 - logoSize - 24) + .setWidth(logoSize) + .setHeight(logoSize) + .setAnimations(new Slide(2, 14))); super.init(); } diff --git a/src/main/java/org/saturnclient/ui/SaturnUi.java b/src/main/java/org/saturnclient/ui/SaturnUi.java index dd40fe0..d00ba99 100644 --- a/src/main/java/org/saturnclient/ui/SaturnUi.java +++ b/src/main/java/org/saturnclient/ui/SaturnUi.java @@ -7,6 +7,7 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.render.RenderLayer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.MutableText; import net.minecraft.text.Style; @@ -23,6 +24,45 @@ public class SaturnUi extends Screen { Style.EMPTY.withFont(Identifier.of("saturnclient:panton"))); } + public static void drawHighResTexture(DrawContext context, Identifier t, int x, int y, int w, int h) { + MatrixStack matricies = context.getMatrices(); + matricies.push(); + matricies.scale(.25f, .25f, 1.0f); + + context.drawTexture(RenderLayer::getGuiTextured, t, x, y, 0, 0, + w * 4, h * 4, w * 4, h * 4); + + matricies.pop(); + } + + public static void drawHighResTexture(DrawContext context, Identifier t, int x, int y, int w, int h, int c) { + MatrixStack matricies = context.getMatrices(); + matricies.push(); + matricies.scale(.25f, .25f, 1.0f); + + context.drawTexture(RenderLayer::getGuiTextured, t, x, y, 0, 0, + w * 4, h * 4, w * 4, h * 4, c); + + matricies.pop(); + } + + public static void drawHighResGuiTexture(DrawContext context, Identifier t, int x, int y, int w, int h, int c) { + MatrixStack matricies = context.getMatrices(); + matricies.push(); + matricies.scale(.25f, .25f, 1.0f); + + context.drawGuiTexture( + RenderLayer::getGuiTextured, + t, + x, + y, + w * 4, + h * 4, + c); + + matricies.pop(); + } + public List widgets = new ArrayList<>(); private int tick = 0; diff --git a/src/main/java/org/saturnclient/ui/components/SaturnFloat.java b/src/main/java/org/saturnclient/ui/components/SaturnFloat.java index 86d6237..229507d 100644 --- a/src/main/java/org/saturnclient/ui/components/SaturnFloat.java +++ b/src/main/java/org/saturnclient/ui/components/SaturnFloat.java @@ -3,7 +3,6 @@ package org.saturnclient.ui.components; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.RenderLayer; import org.lwjgl.glfw.GLFW; import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.saturnclient.config.Property; @@ -16,8 +15,7 @@ public class SaturnFloat extends SaturnWidget { String text = ""; public Property prop; public int cursorPosition = 0; - private TextRenderer textRenderer = MinecraftClient.getInstance() - .textRenderer; + private TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; public SaturnFloat(Property prop, int x, int y, int width) { this.x = x; @@ -56,10 +54,9 @@ public class SaturnFloat extends SaturnWidget { if (text.equals("0") && cursorPosition == 1) { text = "" + chr; } else { - text = - text.substring(0, cursorPosition) + - chr + - text.substring(cursorPosition); + text = text.substring(0, cursorPosition) + + chr + + text.substring(cursorPosition); prop.value = text.isEmpty() ? 0 : Float.parseFloat(text); @@ -72,9 +69,8 @@ public class SaturnFloat extends SaturnWidget { public void keyPressed(int keyCode, int scanCode, int modifiers) { 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--; if (text.length() == 0) { text = "0"; @@ -95,51 +91,44 @@ public class SaturnFloat extends SaturnWidget { @Override public void render( - DrawContext context, - boolean hovering, - int mouseX, - int mouseY - ) { - context.drawGuiTexture( - RenderLayer::getGuiTextured, - Textures.BUTTON_BORDER, - 0, - 0, - this.width, - this.height, - focused - ? SaturnClient.COLOR.value - : SaturnClient.getWhite(this.alpha) - ); + DrawContext context, + boolean hovering, + int mouseX, + int mouseY) { + SaturnUi.drawHighResGuiTexture( + context, + Textures.BUTTON_BORDER, + 0, + 0, + this.width, + this.height, + focused + ? SaturnClient.COLOR.value + : SaturnClient.getWhite(this.alpha)); int scrollOffset = getScrollOffset(); String visibleText = getVisibleText(scrollOffset); int textColor = focused ? 0xFFFFFF : 0xAAAAAA; context.drawText( - textRenderer, - SaturnUi.text(visibleText), - 2, - 2, - textColor, - false - ); + textRenderer, + SaturnUi.text(visibleText), + 2, + 2, + textColor, + false); if (focused) { - int cursorX = - 2 + - textRenderer.getWidth( - SaturnUi.text( - visibleText.substring(0, cursorPosition - scrollOffset) - ) - ); + int cursorX = 2 + + textRenderer.getWidth( + SaturnUi.text( + visibleText.substring(0, cursorPosition - scrollOffset))); context.fill( - cursorX, - 2, - cursorX + 1, - textRenderer.fontHeight + 4, - 0xFFFFFFFF - ); + cursorX, + 2, + cursorX + 1, + textRenderer.fontHeight + 4, + 0xFFFFFFFF); } } @@ -172,12 +161,8 @@ public class SaturnFloat extends SaturnWidget { // Ensure text does not overflow past the available width for (int i = 1; i <= visibleText.length(); i++) { - if ( - textRenderer.getWidth( - SaturnUi.text(visibleText.substring(0, i)) - ) > - width - 4 - ) { + if (textRenderer.getWidth( + SaturnUi.text(visibleText.substring(0, i))) > width - 4) { return visibleText.substring(0, i - 1); // Trim overflow } } diff --git a/src/main/java/org/saturnclient/ui/components/SaturnHex.java b/src/main/java/org/saturnclient/ui/components/SaturnHex.java index c60ea73..3b1fce6 100644 --- a/src/main/java/org/saturnclient/ui/components/SaturnHex.java +++ b/src/main/java/org/saturnclient/ui/components/SaturnHex.java @@ -3,7 +3,6 @@ package org.saturnclient.ui.components; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.RenderLayer; import org.lwjgl.glfw.GLFW; import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.saturnclient.config.Property; @@ -16,8 +15,7 @@ public class SaturnHex extends SaturnWidget { private String text = "#"; // Always starts with '#' public Property prop; public int cursorPosition = 1; // After '#' - private final TextRenderer textRenderer = MinecraftClient.getInstance() - .textRenderer; + private final TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; public SaturnHex(Property prop, int x, int y, int width) { this.x = x; @@ -37,10 +35,9 @@ public class SaturnHex extends SaturnWidget { @Override public void charTyped(char chr) { if (isHexChar(chr) && text.length() < 7) { // Limit to 6 hex digits + '#' - text = - text.substring(0, cursorPosition) + - chr + - text.substring(cursorPosition); + text = text.substring(0, cursorPosition) + + chr + + text.substring(cursorPosition); cursorPosition++; if (text.length() == 7) { // Only update value when full hex is entered @@ -52,15 +49,12 @@ public class SaturnHex extends SaturnWidget { @Override public void keyPressed(int keyCode, int scanCode, int modifiers) { if (keyCode == GLFW.GLFW_KEY_BACKSPACE && cursorPosition > 1) { // Prevent deleting '#' - 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 && cursorPosition > 1) { cursorPosition--; - } else if ( - keyCode == GLFW.GLFW_KEY_RIGHT && cursorPosition < text.length() - ) { + } else if (keyCode == GLFW.GLFW_KEY_RIGHT && cursorPosition < text.length()) { cursorPosition++; } @@ -76,46 +70,40 @@ public class SaturnHex extends SaturnWidget { @Override public void render( - DrawContext context, - boolean hovering, - int mouseX, - int mouseY - ) { - context.drawGuiTexture( - RenderLayer::getGuiTextured, - Textures.BUTTON_BORDER, - 0, - 0, - this.width, - this.height, - focused - ? SaturnClient.COLOR.value - : SaturnClient.getWhite(this.alpha) - ); + DrawContext context, + boolean hovering, + int mouseX, + int mouseY) { + SaturnUi.drawHighResGuiTexture( + context, + Textures.BUTTON_BORDER, + 0, + 0, + this.width, + this.height, + focused + ? SaturnClient.COLOR.value + : SaturnClient.getWhite(this.alpha)); int textColor = focused ? 0xFFFFFF : 0xAAAAAA; context.drawText( - textRenderer, - SaturnUi.text(text), - 2, - 2, - textColor, - false - ); + textRenderer, + SaturnUi.text(text), + 2, + 2, + textColor, + false); if (focused) { - int cursorX = - 2 + - textRenderer.getWidth( - SaturnUi.text(text.substring(0, cursorPosition)) - ); + int cursorX = 2 + + textRenderer.getWidth( + SaturnUi.text(text.substring(0, cursorPosition))); context.fill( - cursorX, - 2, - cursorX + 1, - textRenderer.fontHeight + 4, - 0xFFFFFFFF - ); + cursorX, + 2, + cursorX + 1, + textRenderer.fontHeight + 4, + 0xFFFFFFFF); } } @@ -126,11 +114,9 @@ public class SaturnHex extends SaturnWidget { } private boolean isHexChar(char chr) { - return ( - (chr >= '0' && chr <= '9') || - (chr >= 'A' && chr <= 'F') || - (chr >= 'a' && chr <= 'f') - ); + return ((chr >= '0' && chr <= '9') || + (chr >= 'A' && chr <= 'F') || + (chr >= 'a' && chr <= 'f')); } public static int hexToInt(String hex) { diff --git a/src/main/java/org/saturnclient/ui/components/SaturnInteger.java b/src/main/java/org/saturnclient/ui/components/SaturnInteger.java index 7cf749c..82b2a7c 100644 --- a/src/main/java/org/saturnclient/ui/components/SaturnInteger.java +++ b/src/main/java/org/saturnclient/ui/components/SaturnInteger.java @@ -3,7 +3,6 @@ package org.saturnclient.ui.components; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.RenderLayer; import org.lwjgl.glfw.GLFW; import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.saturnclient.config.Property; @@ -16,8 +15,7 @@ public class SaturnInteger extends SaturnWidget { String text = ""; public Property prop; public int cursorPosition = 0; - private TextRenderer textRenderer = MinecraftClient.getInstance() - .textRenderer; + private TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; public SaturnInteger(Property prop, int x, int y, int width) { this.x = x; @@ -56,10 +54,9 @@ public class SaturnInteger extends SaturnWidget { if (text.equals("0") && cursorPosition == 1) { text = "" + chr; } else { - text = - text.substring(0, cursorPosition) + - chr + - text.substring(cursorPosition); + text = text.substring(0, cursorPosition) + + chr + + text.substring(cursorPosition); prop.value = text.isEmpty() ? 0 : Integer.parseInt(text); @@ -72,9 +69,8 @@ public class SaturnInteger extends SaturnWidget { public void keyPressed(int keyCode, int scanCode, int modifiers) { 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--; if (text.length() == 0) { text = "0"; @@ -95,51 +91,44 @@ public class SaturnInteger extends SaturnWidget { @Override public void render( - DrawContext context, - boolean hovering, - int mouseX, - int mouseY - ) { - context.drawGuiTexture( - RenderLayer::getGuiTextured, - Textures.BUTTON_BORDER, - 0, - 0, - this.width, - this.height, - focused - ? SaturnClient.COLOR.value - : SaturnClient.getWhite(this.alpha) - ); + DrawContext context, + boolean hovering, + int mouseX, + int mouseY) { + SaturnUi.drawHighResGuiTexture( + context, + Textures.BUTTON_BORDER, + 0, + 0, + this.width, + this.height, + focused + ? SaturnClient.COLOR.value + : SaturnClient.getWhite(this.alpha)); int scrollOffset = getScrollOffset(); String visibleText = getVisibleText(scrollOffset); int textColor = focused ? 0xFFFFFF : 0xAAAAAA; context.drawText( - textRenderer, - SaturnUi.text(visibleText), - 2, - 2, - textColor, - false - ); + textRenderer, + SaturnUi.text(visibleText), + 2, + 2, + textColor, + false); if (focused) { - int cursorX = - 2 + - textRenderer.getWidth( - SaturnUi.text( - visibleText.substring(0, cursorPosition - scrollOffset) - ) - ); + int cursorX = 2 + + textRenderer.getWidth( + SaturnUi.text( + visibleText.substring(0, cursorPosition - scrollOffset))); context.fill( - cursorX, - 2, - cursorX + 1, - textRenderer.fontHeight + 4, - 0xFFFFFFFF - ); + cursorX, + 2, + cursorX + 1, + textRenderer.fontHeight + 4, + 0xFFFFFFFF); } } @@ -172,12 +161,8 @@ public class SaturnInteger extends SaturnWidget { // Ensure text does not overflow past the available width for (int i = 1; i <= visibleText.length(); i++) { - if ( - textRenderer.getWidth( - SaturnUi.text(visibleText.substring(0, i)) - ) > - width - 4 - ) { + if (textRenderer.getWidth( + SaturnUi.text(visibleText.substring(0, i))) > width - 4) { return visibleText.substring(0, i - 1); // Trim overflow } } diff --git a/src/main/java/org/saturnclient/ui/components/SaturnModComp.java b/src/main/java/org/saturnclient/ui/components/SaturnModComp.java index c38b881..637063a 100644 --- a/src/main/java/org/saturnclient/ui/components/SaturnModComp.java +++ b/src/main/java/org/saturnclient/ui/components/SaturnModComp.java @@ -2,7 +2,6 @@ package org.saturnclient.ui.components; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.RenderLayer; import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.saturnclient.menus.ConfigEditor; import org.saturnclient.saturnmods.SaturnMod; @@ -20,96 +19,74 @@ public class SaturnModComp extends SaturnWidget { @Override public void render( - DrawContext context, - boolean hovering, - int mouseX, - int mouseY - ) { + 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.value - : SaturnClient.getWhite(alpha); + ? SaturnClient.COLOR.value + : SaturnClient.getWhite(alpha); int size = 12; if (enabled) { - context.drawTexture( - RenderLayer::getGuiTextured, - Textures.MOD_BG, - 0, - 0, - 0, - 0, - 86, - 20, - 86, - 20, - SaturnClient.COLOR.value - ); + SaturnUi.drawHighResTexture( + context, + Textures.MOD_BG, + 0, + 0, + 86, + 20, + SaturnClient.COLOR.value); } - context.drawTexture( - RenderLayer::getGuiTextured, - Textures.MOD, - 0, - 0, - 0, - 0, - 86, - 20, - 86, - 20, - color - ); + SaturnUi.drawHighResTexture( + context, + Textures.MOD, + 0, + 0, + 86, + 20, + color); - context.drawTexture( - RenderLayer::getGuiTextured, - mod.getIconTexture(), - 4, - 4, - 0, - 0, - size, - size, - size, - size, - color - ); + SaturnUi.drawHighResTexture( + context, + mod.getIconTexture(), + 4, + 4, + size, + size, + color); context.drawText( - SaturnClient.textRenderer, - SaturnUi.text(mod.getName()), - 20, - (21 - SaturnClient.textRenderer.fontHeight) / 2, - color, - false - ); + SaturnClient.textRenderer, + SaturnUi.text(mod.getName()), + 20, + (21 - SaturnClient.textRenderer.fontHeight) / 2, + color, + false); - context.drawTexture( - RenderLayer::getGuiTextured, - Textures.SETTINGS, - 77, - 11, - 0, - 0, - 7, - 7, - 7, - 7, - hovering_settings - ? SaturnClient.COLOR.value - : SaturnClient.getWhite(alpha) - ); + SaturnUi.drawHighResTexture( + context, + Textures.SETTINGS, + 77, + 11, + 7, + 7, + hovering_settings + ? SaturnClient.COLOR.value + : SaturnClient.getWhite(alpha)); } @Override public void click(int mouseX, int mouseY) { if (settingsHovering(mouseX, mouseY)) { MinecraftClient.getInstance() - .setScreen(new ConfigEditor(mod.getConfig())); + .setScreen(new ConfigEditor(mod.getConfig())); } else { mod.setEnabled(!mod.isEnabled()); } @@ -120,11 +97,9 @@ public class SaturnModComp extends SaturnWidget { int sY = 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/SaturnString.java b/src/main/java/org/saturnclient/ui/components/SaturnString.java index cfb980d..38b157c 100644 --- a/src/main/java/org/saturnclient/ui/components/SaturnString.java +++ b/src/main/java/org/saturnclient/ui/components/SaturnString.java @@ -3,7 +3,6 @@ package org.saturnclient.ui.components; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.RenderLayer; import org.lwjgl.glfw.GLFW; import org.saturnclient.saturnclient.SaturnClient; import org.saturnclient.saturnclient.config.Property; @@ -15,8 +14,7 @@ public class SaturnString extends SaturnWidget { public Property prop; public int cursorPosition = 0; - private TextRenderer textRenderer = MinecraftClient.getInstance() - .textRenderer; + private TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; public SaturnString(Property prop, int x, int y, int width) { this.x = x; @@ -50,10 +48,9 @@ public class SaturnString extends SaturnWidget { @Override public void charTyped(char chr) { - prop.value = - prop.value.substring(0, cursorPosition) + - chr + - prop.value.substring(cursorPosition); + prop.value = prop.value.substring(0, cursorPosition) + + chr + + prop.value.substring(cursorPosition); cursorPosition++; } @@ -62,9 +59,8 @@ public class SaturnString extends SaturnWidget { public void keyPressed(int keyCode, int scanCode, int modifiers) { if (keyCode == GLFW.GLFW_KEY_BACKSPACE) { if (cursorPosition > 0) { - prop.value = - prop.value.substring(0, cursorPosition - 1) + - prop.value.substring(cursorPosition); + prop.value = prop.value.substring(0, cursorPosition - 1) + + prop.value.substring(cursorPosition); cursorPosition--; } } else if (keyCode == GLFW.GLFW_KEY_LEFT) { @@ -80,51 +76,44 @@ public class SaturnString extends SaturnWidget { @Override public void render( - DrawContext context, - boolean hovering, - int mouseX, - int mouseY - ) { - context.drawGuiTexture( - RenderLayer::getGuiTextured, - Textures.BUTTON_BORDER, - 0, - 0, - this.width, - this.height, - focused - ? SaturnClient.COLOR.value - : SaturnClient.getWhite(this.alpha) - ); + DrawContext context, + boolean hovering, + int mouseX, + int mouseY) { + SaturnUi.drawHighResGuiTexture( + context, + Textures.BUTTON_BORDER, + 0, + 0, + this.width, + this.height, + focused + ? SaturnClient.COLOR.value + : SaturnClient.getWhite(this.alpha)); int scrollOffset = getScrollOffset(); String visibleText = getVisibleText(scrollOffset); int textColor = focused ? 0xFFFFFF : 0xAAAAAA; context.drawText( - textRenderer, - SaturnUi.text(visibleText), - 2, - 2, - textColor, - false - ); + textRenderer, + SaturnUi.text(visibleText), + 2, + 2, + textColor, + false); if (focused) { - int cursorX = - 2 + - textRenderer.getWidth( - SaturnUi.text( - visibleText.substring(0, cursorPosition - scrollOffset) - ) - ); + int cursorX = 2 + + textRenderer.getWidth( + SaturnUi.text( + visibleText.substring(0, cursorPosition - scrollOffset))); context.fill( - cursorX, - 2, - cursorX + 1, - textRenderer.fontHeight + 3, - 0xFFFFFFFF - ); + cursorX, + 2, + cursorX + 1, + textRenderer.fontHeight + 3, + 0xFFFFFFFF); } } @@ -156,12 +145,8 @@ public class SaturnString extends SaturnWidget { // Ensure prop.value does not overflow past the available width for (int i = 1; i <= visibleText.length(); i++) { - if ( - textRenderer.getWidth( - SaturnUi.text(visibleText.substring(0, i)) - ) > - width - 4 - ) { + if (textRenderer.getWidth( + SaturnUi.text(visibleText.substring(0, i))) > width - 4) { return visibleText.substring(0, i - 1); // Trim overflow } } diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java b/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java index fda753c..c2e0a49 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnButton.java @@ -4,7 +4,6 @@ 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.MathHelper; import org.lwjgl.opengl.GL11; import org.saturnclient.saturnclient.SaturnClient; @@ -32,65 +31,59 @@ public class SaturnButton extends SaturnWidget { @Override public void render( - DrawContext context, - boolean hovering, - int mouseX, - int mouseY - ) { + DrawContext context, + boolean hovering, + int mouseX, + int mouseY) { MinecraftClient minecraftClient = MinecraftClient.getInstance(); - int hoverColor = - ((int) (alpha * 255) << 24) | - (SaturnClient.COLOR.value & 0x00FFFFFF); + int hoverColor = ((int) (alpha * 255) << 24) | + (SaturnClient.COLOR.value & 0x00FFFFFF); if (background) { RenderSystem.setShaderTexture(0, Textures.BUTTON); RenderSystem.texParameter( - GL11.GL_TEXTURE_2D, - GL11.GL_TEXTURE_MIN_FILTER, - GL11.GL_LINEAR_MIPMAP_LINEAR - ); + GL11.GL_TEXTURE_2D, + GL11.GL_TEXTURE_MIN_FILTER, + GL11.GL_LINEAR_MIPMAP_LINEAR); - context.drawGuiTexture( - RenderLayer::getGuiTextured, - Textures.BUTTON, - 0, - 0, - this.width, - this.height, - SaturnClient.getWhite(this.alpha) - ); - - if (hovering) { - context.drawGuiTexture( - RenderLayer::getGuiTextured, - Textures.BUTTON_BORDER, + SaturnUi.drawHighResGuiTexture( + context, + Textures.BUTTON, 0, 0, this.width, this.height, - hoverColor - ); + SaturnClient.getWhite(this.alpha)); + + if (hovering) { + SaturnUi.drawHighResGuiTexture( + context, + Textures.BUTTON_BORDER, + 0, + 0, + this.width, + this.height, + hoverColor); } } if (alpha != 0.0f) { int i = this.active ? 16777215 : 10526880; context.drawText( - minecraftClient.textRenderer, - SaturnUi.text(text), - ((this.width - - minecraftClient.textRenderer.getWidth( - SaturnUi.text(text) - )) / - 2), - ((this.height - minecraftClient.textRenderer.fontHeight + 1) / - 2), - hovering - ? hoverColor - : i | (MathHelper.ceil(this.alpha * 255.0F) << 24), - false - ); + minecraftClient.textRenderer, + SaturnUi.text(text), + ((this.width - + minecraftClient.textRenderer.getWidth( + SaturnUi.text(text))) + / + 2), + ((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 823a741..efe0c99 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnClickableImage.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnClickableImage.java @@ -2,10 +2,10 @@ package org.saturnclient.ui.widgets; import java.util.function.Consumer; import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.RenderLayer; import net.minecraft.util.Identifier; import net.minecraft.util.math.MathHelper; import org.saturnclient.saturnclient.SaturnClient; +import org.saturnclient.ui.SaturnUi; import org.saturnclient.ui.SaturnWidget; public class SaturnClickableImage extends SaturnWidget { @@ -17,9 +17,8 @@ public class SaturnClickableImage extends SaturnWidget { public int hoverColor = SaturnClient.COLOR.value; public SaturnClickableImage( - Identifier texture, - Consumer onPress - ) { + Identifier texture, + Consumer onPress) { this.texture = texture; this.onPress = onPress; } @@ -32,25 +31,19 @@ public class SaturnClickableImage extends SaturnWidget { @Override public void render( - DrawContext context, - boolean hovering, - int mouseX, - int mouseY - ) { - context.drawTexture( - RenderLayer::getGuiTextured, - texture, - 0, - 0, - 0, - 0, - width, - height, - width, - height, - (hovering || selected ? hoverColor : color) | - (MathHelper.ceil(this.alpha * 255.0F) << 24) - ); + DrawContext context, + boolean hovering, + int mouseX, + int mouseY) { + SaturnUi.drawHighResTexture( + context, + texture, + 0, + 0, + width, + height, + (hovering || selected ? hoverColor : color) | + (MathHelper.ceil(this.alpha * 255.0F) << 24)); } @Override diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnClickableSprite.java b/src/main/java/org/saturnclient/ui/widgets/SaturnClickableSprite.java index 8a79060..c7075a8 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnClickableSprite.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnClickableSprite.java @@ -2,10 +2,10 @@ package org.saturnclient.ui.widgets; import java.util.function.Consumer; import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.RenderLayer; import net.minecraft.util.Identifier; import net.minecraft.util.math.MathHelper; import org.saturnclient.saturnclient.SaturnClient; +import org.saturnclient.ui.SaturnUi; import org.saturnclient.ui.SaturnWidget; public class SaturnClickableSprite extends SaturnWidget { @@ -17,9 +17,8 @@ public class SaturnClickableSprite extends SaturnWidget { public int hoverColor = SaturnClient.COLOR.value; public SaturnClickableSprite( - Identifier sprite, - Consumer onPress - ) { + Identifier sprite, + Consumer onPress) { this.sprite = sprite; this.onPress = onPress; } @@ -32,21 +31,19 @@ public class SaturnClickableSprite extends SaturnWidget { @Override public void render( - DrawContext context, - boolean hovering, - int mouseX, - int mouseY - ) { - context.drawGuiTexture( - RenderLayer::getGuiTextured, - sprite, - 0, - 0, - this.width, - this.height, - (hovering || selected ? hoverColor : color) | - (MathHelper.ceil(this.alpha * 255.0F) << 24) - ); + DrawContext context, + boolean hovering, + int mouseX, + int mouseY) { + SaturnUi.drawHighResGuiTexture( + context, + sprite, + 0, + 0, + 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 28c64f5..b86eafe 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnImage.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnImage.java @@ -1,9 +1,10 @@ package org.saturnclient.ui.widgets; 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.ui.SaturnUi; import org.saturnclient.ui.SaturnWidget; public class SaturnImage extends SaturnWidget { @@ -16,23 +17,17 @@ public class SaturnImage extends SaturnWidget { @Override public void render( - DrawContext context, - boolean hovering, - int mouseX, - int mouseY - ) { - context.drawTexture( - RenderLayer::getGuiTextured, - sprite, - 0, - 0, - 0, - 0, - width, - height, - width, - height, - ColorHelper.getWhite(alpha) - ); + DrawContext context, + boolean hovering, + int mouseX, + int mouseY) { + SaturnUi.drawHighResTexture( + context, + sprite, + 0, + 0, + width, + height, + ColorHelper.getWhite(alpha)); } } diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnInputBox.java b/src/main/java/org/saturnclient/ui/widgets/SaturnInputBox.java deleted file mode 100644 index 324134a..0000000 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnInputBox.java +++ /dev/null @@ -1,149 +0,0 @@ -package org.saturnclient.ui.widgets; - -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.RenderLayer; -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; - - public SaturnInputBox( - String placeholder, - int y, - int x, - int width, - int height - ) { - this.x = x; - this.y = y; - this.width = width; - this.height = height; - this.placeholder = placeholder; - } - - @Override - public void click(int mouseX, int mouseY) { - focused = true; - } - - @Override - public void charTyped(char chr) { - if (focused) { - text = - text.substring(0, cursorPosition) + - chr + - text.substring(cursorPosition); - - cursorPosition++; - } - } - - @Override - public void keyPressed(int keyCode, int scanCode, int modifiers) { - if (focused) { - if (keyCode == GLFW.GLFW_KEY_BACKSPACE) { - if (cursorPosition > 0) { - text = - text.substring(0, cursorPosition - 1) + - text.substring(cursorPosition); - cursorPosition--; - } - } else if (keyCode == GLFW.GLFW_KEY_LEFT) { - if (cursorPosition > 0) { - cursorPosition--; - } - } else if (keyCode == GLFW.GLFW_KEY_RIGHT) { - if (cursorPosition < text.length()) { - cursorPosition++; - } - } - } - } - - @Override - public void render( - DrawContext context, - boolean hovering, - int mouseX, - int mouseY - ) { - context.drawGuiTexture( - RenderLayer::getGuiTextured, - Textures.BUTTON, - 0, - 0, - 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), - 5, - 5, - textColor, - false - ); - - if (focused) { - int cursorX = - 5 + - textRenderer.getWidth( - SaturnUi.text( - visibleText.substring(0, cursorPosition - scrollOffset) - ) - ); - context.fill(cursorX, 3, cursorX + 1, height - 3, 0xFFFFFFFF); - } - } - - public void clearText() { - text = ""; - cursorPosition = 0; - } - - private int getScrollOffset() { - if (text.isEmpty()) { - return 0; - } - - int offset = 0; - - if (cursorPosition == text.length()) { - while ( - textRenderer.getWidth(SaturnUi.text(text.substring(offset))) > - width - ) { - offset++; - } - } else { - while ( - textRenderer.getWidth( - SaturnUi.text(text.substring(offset, cursorPosition)) - ) > - width - ) { - offset++; - } - } - - return offset; - } -} diff --git a/src/main/java/org/saturnclient/ui/widgets/SaturnSprite.java b/src/main/java/org/saturnclient/ui/widgets/SaturnSprite.java index 3f33fe7..97e067a 100644 --- a/src/main/java/org/saturnclient/ui/widgets/SaturnSprite.java +++ b/src/main/java/org/saturnclient/ui/widgets/SaturnSprite.java @@ -1,9 +1,10 @@ package org.saturnclient.ui.widgets; 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.ui.SaturnUi; import org.saturnclient.ui.SaturnWidget; public class SaturnSprite extends SaturnWidget { @@ -16,19 +17,17 @@ public class SaturnSprite extends SaturnWidget { @Override public void render( - DrawContext context, - boolean hovering, - int mouseX, - int mouseY - ) { - context.drawGuiTexture( - RenderLayer::getGuiTextured, - sprite, - 0, - 0, - this.width, - this.height, - ColorHelper.getWhite(this.alpha) - ); + DrawContext context, + boolean hovering, + int mouseX, + int mouseY) { + SaturnUi.drawHighResGuiTexture( + context, + sprite, + 0, + 0, + this.width, + this.height, + ColorHelper.getWhite(this.alpha)); } } diff --git a/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button.png b/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button.png index 93d42dd..5127a7d 100644 Binary files a/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button.png and b/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button.png differ diff --git a/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button.png.mcmeta b/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button.png.mcmeta index ed7677e..89e2e38 100644 --- a/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button.png.mcmeta +++ b/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button.png.mcmeta @@ -4,7 +4,7 @@ "type": "nine_slice", "width": 80, "height": 80, - "border": 9 + "border": 16 } } } diff --git a/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button_border.png b/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button_border.png index b3553dc..a102877 100644 Binary files a/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button_border.png and b/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button_border.png differ diff --git a/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button_border.png.mcmeta b/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button_border.png.mcmeta index ed7677e..89e2e38 100644 --- a/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button_border.png.mcmeta +++ b/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/button_border.png.mcmeta @@ -4,7 +4,7 @@ "type": "nine_slice", "width": 80, "height": 80, - "border": 9 + "border": 16 } } } diff --git a/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/settings_bg.png b/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/settings_bg.png index c9f9164..47c62d2 100644 Binary files a/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/settings_bg.png and b/src/main/resources/assets/minecraft/textures/gui/sprites/saturn/settings_bg.png differ