slight structure update
This commit is contained in:
@@ -1,8 +1,9 @@
|
|||||||
package org.saturnclient.saturnclient.menus;
|
package org.saturnclient.saturnclient.menus;
|
||||||
|
|
||||||
import org.saturnclient.saturnclient.widgets.SaturnButton;
|
|
||||||
import org.saturnclient.ui.SaturnAnimation;
|
import org.saturnclient.ui.SaturnAnimation;
|
||||||
import org.saturnclient.ui.SaturnUi;
|
import org.saturnclient.ui.SaturnUi;
|
||||||
|
import org.saturnclient.ui.widgets.SaturnButton;
|
||||||
|
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
|
|
||||||
public class MainMenu extends SaturnUi {
|
public class MainMenu extends SaturnUi {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package org.saturnclient.saturnclient.menus;
|
package org.saturnclient.saturnclient.menus;
|
||||||
|
|
||||||
import org.saturnclient.saturnclient.widgets.SaturnButton;
|
|
||||||
import org.saturnclient.saturnclient.widgets.SaturnImageButton;
|
|
||||||
import org.saturnclient.ui.SaturnUi;
|
import org.saturnclient.ui.SaturnUi;
|
||||||
|
import org.saturnclient.ui.widgets.SaturnButton;
|
||||||
|
import org.saturnclient.ui.widgets.SaturnImageButton;
|
||||||
|
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package org.saturnclient.ui;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.lwjgl.glfw.GLFW;
|
||||||
|
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.DrawContext;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
@@ -55,4 +57,52 @@ public class SaturnUi extends Screen {
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean keyPressed(int keyCode, int scanCode, int modifiers) {
|
||||||
|
for (SaturnWidget widget : new ArrayList<>(widgets)) {
|
||||||
|
if (!widget.visible) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
widget.keyPressed(keyCode, scanCode, modifiers);
|
||||||
|
|
||||||
|
char typedChar = getCharFromKey(keyCode, modifiers);
|
||||||
|
if (typedChar != '\0') {
|
||||||
|
widget.charTyped(typedChar);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return super.keyPressed(keyCode, scanCode, modifiers);
|
||||||
|
}
|
||||||
|
|
||||||
|
private char getCharFromKey(int keyCode, int modifiers) {
|
||||||
|
boolean shift = (modifiers & GLFW.GLFW_MOD_SHIFT) != 0;
|
||||||
|
|
||||||
|
// A-Z
|
||||||
|
if (keyCode >= GLFW.GLFW_KEY_A && keyCode <= GLFW.GLFW_KEY_Z) {
|
||||||
|
return (char) (shift ? 'A' + (keyCode - GLFW.GLFW_KEY_A) : 'a' + (keyCode - GLFW.GLFW_KEY_A));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 0-9
|
||||||
|
if (keyCode >= GLFW.GLFW_KEY_0 && keyCode <= GLFW.GLFW_KEY_9) {
|
||||||
|
return shift ? ")!@#$%^&*(".charAt(keyCode - GLFW.GLFW_KEY_0) : (char) ('0' + (keyCode - GLFW.GLFW_KEY_0));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Special characters
|
||||||
|
return switch (keyCode) {
|
||||||
|
case GLFW.GLFW_KEY_SPACE -> ' ';
|
||||||
|
case GLFW.GLFW_KEY_PERIOD -> shift ? '>' : '.';
|
||||||
|
case GLFW.GLFW_KEY_COMMA -> shift ? '<' : ',';
|
||||||
|
case GLFW.GLFW_KEY_MINUS -> shift ? '_' : '-';
|
||||||
|
case GLFW.GLFW_KEY_EQUAL -> shift ? '+' : '=';
|
||||||
|
case GLFW.GLFW_KEY_SEMICOLON -> shift ? ':' : ';';
|
||||||
|
case GLFW.GLFW_KEY_APOSTROPHE -> shift ? '"' : '\'';
|
||||||
|
case GLFW.GLFW_KEY_SLASH -> shift ? '?' : '/';
|
||||||
|
case GLFW.GLFW_KEY_BACKSLASH -> shift ? '|' : '\\';
|
||||||
|
case GLFW.GLFW_KEY_LEFT_BRACKET -> shift ? '{' : '[';
|
||||||
|
case GLFW.GLFW_KEY_RIGHT_BRACKET -> shift ? '}' : ']';
|
||||||
|
case GLFW.GLFW_KEY_GRAVE_ACCENT -> shift ? '~' : '`';
|
||||||
|
default -> '\0';
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,12 @@ public class SaturnWidget {
|
|||||||
public void click() {
|
public void click() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void keyPressed(int keyCode, int scanCode, int modifiers) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void charTyped(char typedChar) {
|
||||||
|
}
|
||||||
|
|
||||||
public SaturnWidget setX(int x) {
|
public SaturnWidget setX(int x) {
|
||||||
this.x = x;
|
this.x = x;
|
||||||
return this;
|
return this;
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package org.saturnclient.saturnclient.widgets;
|
package org.saturnclient.ui.widgets;
|
||||||
|
|
||||||
import org.saturnclient.ui.SaturnWidget;
|
import org.saturnclient.ui.SaturnWidget;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package org.saturnclient.saturnclient.widgets;
|
package org.saturnclient.ui.widgets;
|
||||||
|
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.DrawContext;
|
||||||
import net.minecraft.client.render.RenderLayer;
|
import net.minecraft.client.render.RenderLayer;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package org.saturnclient.saturnclient.widgets;
|
package org.saturnclient.ui.widgets;
|
||||||
|
|
||||||
import org.saturnclient.ui.SaturnWidget;
|
import org.saturnclient.ui.SaturnWidget;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package org.saturnclient.saturnclient.widgets;
|
package org.saturnclient.ui.widgets;
|
||||||
|
|
||||||
import org.saturnclient.ui.SaturnWidget;
|
import org.saturnclient.ui.SaturnWidget;
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.DrawContext;
|
||||||
Reference in New Issue
Block a user