key codes

This commit is contained in:
Sen 2025-03-18 11:02:39 +01:00
parent a2ffb2991d
commit a78f873590
2 changed files with 131 additions and 238 deletions

View file

@ -1,130 +1,146 @@
package game.window;
import static org.lwjgl.glfw.GLFW.*;
public enum Keysym implements Input {
N0('0'),
N1('1'),
N2('2'),
N3('3'),
N4('4'),
N5('5'),
N6('6'),
N7('7'),
N8('8'),
N9('9'),
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'),
B('b'),
C('c'),
D('d'),
E('e'),
F('f'),
G('g'),
H('h'),
I('i'),
J('j'),
K('k'),
L('l'),
M('m'),
N('n'),
O('o'),
P('p'),
Q('q'),
R('r'),
S('s'),
T('t'),
U('u'),
V('v'),
W('w'),
X('x'),
Y('y'),
Z('z'),
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"),
F2("f2", "F2"),
F3("f3", "F3"),
F4("f4", "F4"),
F5("f5", "F5"),
F6("f6", "F6"),
F7("f7", "F7"),
F8("f8", "F8"),
F9("f9", "F9"),
F10("f10", "F10"),
F11("f11", "F11"),
F12("f12", "F12"),
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"),
KP_1("kp1", "Num 1"),
KP_2("kp2", "Num 2"),
KP_3("kp3", "Num 3"),
KP_4("kp4", "Num 4"),
KP_5("kp5", "Num 5"),
KP_6("kp6", "Num 6"),
KP_7("kp7", "Num 7"),
KP_8("kp8", "Num 8"),
KP_9("kp9", "Num 9"),
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"),
CIRCUMFLEX('^'),
SHARP_S('ß'),
ACUTE('´'),
UE('ü'),
PLUS('+'),
OE('ö'),
AE('ä'),
NUMBER_SIGN('#'),
LESS_THAN('<'),
COMMA(','),
PERIOD('.'),
HYPHEN('-'),
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 ."),
KP_DIVIDE("kp/", "Num /"),
KP_MULTIPLY("kp*", "Num *"),
KP_SUBTRACT("kp-", "Num -"),
KP_ADD("kp+", "Num +"),
KP_ENTER("enter", "Num Enter"),
KP_EQUAL("kp=", "Num ="),
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"),
SCROLL_LOCK("scroll", "Scroll Lock"),
NUM_LOCK("num", "Num Lock"),
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"),
RETURN("return", "Enter"),
TAB("tab", "Tab"),
BACKSPACE("bksp", "Rücktaste"),
INSERT("ins", "Einfg"),
DELETE("del", "Entf"),
RIGHT("right", "Pfeil rechts"),
LEFT("left", "Pfeil links"),
DOWN("down", "Pfeil unten"),
UP("up", "Pfeil oben"),
PAGE_UP("pgup", "Bild auf"),
PAGE_DOWN("pgdn", "Bild ab"),
HOME("home", "Pos1"),
END("end", "Ende"),
PRINT_SCREEN("print", "Druck"),
PAUSE("pause", "Pause"),
LEFT_SHIFT("lshift", "Umschalt links"),
LEFT_CONTROL("lctrl", "Strg links"),
ALT("alt", "Alt"),
LEFT_SUPER("lsuper", "Super links"),
RIGHT_SHIFT("rshift", "Umschalt rechts"),
RIGHT_CONTROL("rctrl", "Strg rechts"),
ALT_GRAPH("altgr", "Alt Gr"),
RIGHT_SUPER("rsuper", "Super rechts"),
MENU("menu", "Menü");
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;
private Keysym(String id, String name) {
this.id = id;
this.name = name;
static {
for(Keysym key : values()) {
KEYS[key.code - 1] = key;
}
}
private Keysym(char character) {
this(Character.toString(character), "<" + Character.toUpperCase(character) + ">");
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() {
@ -136,6 +152,6 @@ public enum Keysym implements Input {
}
public boolean read() {
return Window.getKey(this); // .ordinal() + 1
return Window.getKey(this.code);
}
}