Implementing components

This commit is contained in:
2026-03-07 00:49:31 +01:00
parent eca1be7d81
commit 3aa98d458d
14 changed files with 16 additions and 9 deletions
@@ -15,4 +15,6 @@ public abstract class MinecraftProvider {
public abstract int getWidth(String text, int font); public abstract int getWidth(String text, int font);
public abstract void registerBufferedImageTexture(SaturnIdentifier i, BufferedImage bi); public abstract void registerBufferedImageTexture(SaturnIdentifier i, BufferedImage bi);
public abstract String getKeyName(int key);
} }
@@ -1,8 +1,7 @@
package org.saturnclient.ui.components.inputs; package org.saturnclient.ui.components.inputs;
import org.lwjgl.glfw.GLFW;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.config.Theme; import org.saturnclient.config.Theme;
import org.saturnclient.config.manager.Key;
import org.saturnclient.ui.Element; import org.saturnclient.ui.Element;
import org.saturnclient.ui.ElementContext; import org.saturnclient.ui.ElementContext;
import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.RenderScope;
@@ -22,18 +21,18 @@ public abstract class Input extends Element {
@Override @Override
public void keyPressed(int keyCode, int scanCode, int modifiers) { public void keyPressed(int keyCode, int scanCode, int modifiers) {
if (keyCode == GLFW.GLFW_KEY_BACKSPACE) { if (keyCode == Key.GLFW_KEY_BACKSPACE) {
if (cursorPosition > 0 && validateBackspace()) { if (cursorPosition > 0 && validateBackspace()) {
text = text.substring(0, cursorPosition - 1) + text = text.substring(0, cursorPosition - 1) +
text.substring(cursorPosition); text.substring(cursorPosition);
cursorPosition--; cursorPosition--;
backspace(); backspace();
} }
} else if (keyCode == GLFW.GLFW_KEY_LEFT) { } else if (keyCode == Key.GLFW_KEY_LEFT) {
if (cursorPosition > 0) { if (cursorPosition > 0) {
cursorPosition--; cursorPosition--;
} }
} else if (keyCode == GLFW.GLFW_KEY_RIGHT) { } else if (keyCode == Key.GLFW_KEY_RIGHT) {
if (cursorPosition < text.length()) { if (cursorPosition < text.length()) {
cursorPosition++; cursorPosition++;
} }
@@ -49,7 +48,7 @@ public abstract class Input extends Element {
float textWidth = 0; float textWidth = 0;
for (int i = 0; i < visibleText.length(); i++) { for (int i = 0; i < visibleText.length(); i++) {
textWidth = SaturnClient.client.textRenderer.getWidth(visibleText.substring(0, i + 1)) * 0.6f; textWidth = Fonts.getWidth(visibleText.substring(0, i + 1), Theme.FONT.value) * 0.6f;
if (textWidth > mouseX) { if (textWidth > mouseX) {
break; break;
@@ -1,7 +1,8 @@
package org.saturnclient.ui.components.inputs; package org.saturnclient.ui.components.inputs;
import org.lwjgl.glfw.GLFW; import org.saturnclient.common.minecraft.MinecraftProvider;
import org.saturnclient.config.Theme; import org.saturnclient.config.Theme;
import org.saturnclient.config.manager.Key;
import org.saturnclient.config.manager.Property; import org.saturnclient.config.manager.Property;
import org.saturnclient.ui.Element; import org.saturnclient.ui.Element;
import org.saturnclient.ui.ElementContext; import org.saturnclient.ui.ElementContext;
@@ -21,7 +22,7 @@ public class KeybindingSelector extends Element {
public void render(RenderScope renderScope, ElementContext ctx) { public void render(RenderScope renderScope, ElementContext ctx) {
int textColor = focused ? 0xFFFFFF : 0xAAAAAA; int textColor = focused ? 0xFFFFFF : 0xAAAAAA;
renderScope.drawRoundedRectangle(0, 0, width, height, 10, 0xFF000000); renderScope.drawRoundedRectangle(0, 0, width, height, 10, 0xFF000000);
String name = GLFW.glfwGetKeyName(prop.value, GLFW.glfwGetKeyScancode(prop.value)); String name = MinecraftProvider.PROVIDER.getKeyName(prop.value);
renderScope.drawText(0.6f, renderScope.drawText(0.6f,
prop.value == -1 ? "<NONE>" prop.value == -1 ? "<NONE>"
@@ -31,7 +32,7 @@ public class KeybindingSelector extends Element {
@Override @Override
public void keyPressed(int keyCode, int scanCode, int modifiers) { public void keyPressed(int keyCode, int scanCode, int modifiers) {
if (keyCode == GLFW.GLFW_KEY_BACKSPACE) { if (keyCode == Key.GLFW_KEY_BACKSPACE) {
prop.value = -1; prop.value = -1;
} else { } else {
prop.value = keyCode; prop.value = keyCode;
@@ -38,4 +38,9 @@ public class SaturnClientProvider extends MinecraftProvider {
public void registerBufferedImageTexture(SaturnIdentifier i, BufferedImage bi) { public void registerBufferedImageTexture(SaturnIdentifier i, BufferedImage bi) {
IdentifierUtils.registerBufferedImageTextureFast((Identifier) i.inner, bi); IdentifierUtils.registerBufferedImageTextureFast((Identifier) i.inner, bi);
} }
@Override
public String getKeyName(int key) {
return GLFW.glfwGetKeyName(key, GLFW.glfwGetKeyScancode(key));
}
} }