tcr/java/src/game/window/Keysym.java
2025-03-18 11:02:39 +01:00

157 lines
4.4 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package game.window;
import static org.lwjgl.glfw.GLFW.*;
public enum Keysym implements Input {
N0('0', GLFW_KEY_0),
N1('1', GLFW_KEY_1),
N2('2', GLFW_KEY_2),
N3('3', GLFW_KEY_3),
N4('4', GLFW_KEY_4),
N5('5', GLFW_KEY_5),
N6('6', GLFW_KEY_6),
N7('7', GLFW_KEY_7),
N8('8', GLFW_KEY_8),
N9('9', GLFW_KEY_9),
A('a', GLFW_KEY_A),
B('b', GLFW_KEY_B),
C('c', GLFW_KEY_C),
D('d', GLFW_KEY_D),
E('e', GLFW_KEY_E),
F('f', GLFW_KEY_F),
G('g', GLFW_KEY_G),
H('h', GLFW_KEY_H),
I('i', GLFW_KEY_I),
J('j', GLFW_KEY_J),
K('k', GLFW_KEY_K),
L('l', GLFW_KEY_L),
M('m', GLFW_KEY_M),
N('n', GLFW_KEY_N),
O('o', GLFW_KEY_O),
P('p', GLFW_KEY_P),
Q('q', GLFW_KEY_Q),
R('r', GLFW_KEY_R),
S('s', GLFW_KEY_S),
T('t', GLFW_KEY_T),
U('u', GLFW_KEY_U),
V('v', GLFW_KEY_V),
W('w', GLFW_KEY_W),
X('x', GLFW_KEY_X),
Y('y', GLFW_KEY_Z),
Z('z', GLFW_KEY_Y),
F1("f1", "F1", GLFW_KEY_F1),
F2("f2", "F2", GLFW_KEY_F2),
F3("f3", "F3", GLFW_KEY_F3),
F4("f4", "F4", GLFW_KEY_F4),
F5("f5", "F5", GLFW_KEY_F5),
F6("f6", "F6", GLFW_KEY_F6),
F7("f7", "F7", GLFW_KEY_F7),
F8("f8", "F8", GLFW_KEY_F8),
F9("f9", "F9", GLFW_KEY_F9),
F10("f10", "F10", GLFW_KEY_F10),
F11("f11", "F11", GLFW_KEY_F11),
F12("f12", "F12", GLFW_KEY_F12),
KP_0("kp0", "Num 0", GLFW_KEY_KP_0),
KP_1("kp1", "Num 1", GLFW_KEY_KP_1),
KP_2("kp2", "Num 2", GLFW_KEY_KP_2),
KP_3("kp3", "Num 3", GLFW_KEY_KP_3),
KP_4("kp4", "Num 4", GLFW_KEY_KP_4),
KP_5("kp5", "Num 5", GLFW_KEY_KP_5),
KP_6("kp6", "Num 6", GLFW_KEY_KP_6),
KP_7("kp7", "Num 7", GLFW_KEY_KP_7),
KP_8("kp8", "Num 8", GLFW_KEY_KP_8),
KP_9("kp9", "Num 9", GLFW_KEY_KP_9),
SPACE("space", "Leertaste", GLFW_KEY_SPACE),
CIRCUMFLEX('^', GLFW_KEY_GRAVE_ACCENT),
SHARP_S('ß', GLFW_KEY_MINUS),
ACUTE('´', GLFW_KEY_EQUAL),
UE('ü', GLFW_KEY_LEFT_BRACKET),
PLUS('+', GLFW_KEY_RIGHT_BRACKET),
OE('ö', GLFW_KEY_SEMICOLON),
AE('ä', GLFW_KEY_APOSTROPHE),
NUMBER_SIGN('#', GLFW_KEY_BACKSLASH),
LESS_THAN('<', GLFW_KEY_WORLD_1),
COMMA(',', GLFW_KEY_COMMA),
PERIOD('.', GLFW_KEY_PERIOD),
HYPHEN('-', GLFW_KEY_SLASH),
KP_DECIMAL("kp.", "Num .", GLFW_KEY_KP_DECIMAL),
KP_DIVIDE("kp/", "Num /", GLFW_KEY_KP_DIVIDE),
KP_MULTIPLY("kp*", "Num *", GLFW_KEY_KP_MULTIPLY),
KP_SUBTRACT("kp-", "Num -", GLFW_KEY_KP_SUBTRACT),
KP_ADD("kp+", "Num +", GLFW_KEY_KP_ADD),
KP_ENTER("enter", "Num Enter", GLFW_KEY_KP_ENTER),
KP_EQUAL("kp=", "Num =", GLFW_KEY_KP_EQUAL),
CAPS_LOCK("caps", "Feststellen", GLFW_KEY_CAPS_LOCK),
SCROLL_LOCK("scroll", "Scroll Lock", GLFW_KEY_SCROLL_LOCK),
NUM_LOCK("num", "Num Lock", GLFW_KEY_NUM_LOCK),
ESCAPE("esc", "Esc", GLFW_KEY_ESCAPE),
RETURN("return", "Enter", GLFW_KEY_ENTER),
TAB("tab", "Tab", GLFW_KEY_TAB),
BACKSPACE("bksp", "Rücktaste", GLFW_KEY_BACKSPACE),
INSERT("ins", "Einfg", GLFW_KEY_INSERT),
DELETE("del", "Entf", GLFW_KEY_DELETE),
RIGHT("right", "Pfeil rechts", GLFW_KEY_RIGHT),
LEFT("left", "Pfeil links", GLFW_KEY_LEFT),
DOWN("down", "Pfeil unten", GLFW_KEY_DOWN),
UP("up", "Pfeil oben", GLFW_KEY_UP),
PAGE_UP("pgup", "Bild auf", GLFW_KEY_PAGE_UP),
PAGE_DOWN("pgdn", "Bild ab", GLFW_KEY_PAGE_DOWN),
HOME("home", "Pos1", GLFW_KEY_HOME),
END("end", "Ende", GLFW_KEY_END),
PRINT_SCREEN("print", "Druck", GLFW_KEY_PRINT_SCREEN),
PAUSE("pause", "Pause", GLFW_KEY_PAUSE),
LEFT_SHIFT("lshift", "Umschalt links", GLFW_KEY_LEFT_SHIFT),
LEFT_CONTROL("lctrl", "Strg links", GLFW_KEY_LEFT_CONTROL),
ALT("alt", "Alt", GLFW_KEY_LEFT_ALT),
LEFT_SUPER("lsuper", "Super links", GLFW_KEY_LEFT_SUPER),
RIGHT_SHIFT("rshift", "Umschalt rechts", GLFW_KEY_RIGHT_SHIFT),
RIGHT_CONTROL("rctrl", "Strg rechts", GLFW_KEY_RIGHT_CONTROL),
ALT_GRAPH("altgr", "Alt Gr", GLFW_KEY_RIGHT_ALT),
RIGHT_SUPER("rsuper", "Super rechts", GLFW_KEY_RIGHT_SUPER),
MENU("menu", "Menü", GLFW_KEY_MENU);
private static final Keysym[] KEYS = new Keysym[GLFW_KEY_LAST];
private final String id;
private final String name;
private final int code;
static {
for(Keysym key : values()) {
KEYS[key.code - 1] = key;
}
}
public static Keysym getForCode(int code) {
return code > 0 && code <= KEYS.length ? KEYS[code - 1] : null;
}
private Keysym(String id, String name, int code) {
this.id = id;
this.name = name;
this.code = code;
}
private Keysym(char character, int code) {
this(Character.toString(character), "<" + Character.toUpperCase(character) + ">", code);
}
public String getName() {
return this.id;
}
public String getDisplay() {
return this.name;
}
public boolean read() {
return Window.getKey(this.code);
}
}