SimpleJavaEngine/src/main/java/speiger/src/coreengine/rendering/input/bindings/utils/BindingType.java

37 lines
1.0 KiB
Java

package speiger.src.coreengine.rendering.input.bindings.utils;
import org.lwjgl.glfw.GLFW;
import speiger.src.coreengine.rendering.input.Keyboard;
import speiger.src.coreengine.rendering.input.Mouse;
public enum BindingType
{
KEYBOARD {
@Override
public String getName(int key) {
if(key >= GLFW.GLFW_KEY_F1 && key <= GLFW.GLFW_KEY_F25) return "F"+(key - GLFW.GLFW_KEY_F1+1);
else if(key == GLFW.GLFW_KEY_DELETE) return "Delete";
String s = GLFW.glfwGetKeyName(key, GLFW.glfwGetKeyScancode(key));
return s == null ? "Unkonwn" : s.toUpperCase();
}
@Override
public boolean isPressed(int key) { return Keyboard.isKeyFullyPressed(key); }
},
MOUSE {
@Override
public String getName(int key) { return "Button: "+key; }
@Override
public boolean isPressed(int key) { return Mouse.isButtonPressed(key); }
},
NONE {
@Override
public String getName(int key) { return "None"; }
@Override
public boolean isPressed(int key) { return false; }
};
public abstract String getName(int key);
public abstract boolean isPressed(int key);
}