mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-23 04:34:58 -04:00
73 lines
2.3 KiB
C#
73 lines
2.3 KiB
C#
using System;
|
|
using OpenTK.Input;
|
|
|
|
namespace ClassicalSharp.Hotkeys {
|
|
|
|
/// <summary> Maps LWJGL keycodes to OpenTK keys. </summary>
|
|
public static class LwjglToKey {
|
|
|
|
public static Key[] Map = new Key[256];
|
|
|
|
static int curIndex = 0;
|
|
static void Add( Key key ) {
|
|
Map[curIndex++] = key;
|
|
}
|
|
|
|
static void Add( string value ) {
|
|
for( int i = 0; i < value.Length; i++ ) {
|
|
Add( (Key)(value[i] - 'A' + (int)Key.A) );
|
|
}
|
|
}
|
|
|
|
static void Skip( int amount ) {
|
|
curIndex += amount;
|
|
}
|
|
|
|
static LwjglToKey() {
|
|
Add( Key.Unknown ); Add( Key.Escape );
|
|
for( int i = 0; i < 9; i++ )
|
|
Add( (Key)(i + Key.Number1) );
|
|
Add( Key.Number0 ); Add( Key.Minus );
|
|
Add( Key.Plus ); Add( Key.BackSpace );
|
|
Add( Key.Tab ); Add( "QWERTYUIOP" );
|
|
Add( Key.BracketLeft ); Add( Key.BracketRight );
|
|
Add( Key.Enter ); Add( Key.ControlLeft );
|
|
Add( "ASDFGHJKL" ); Add( Key.Semicolon );
|
|
Add( Key.Quote ); Add( Key.Tilde );
|
|
Add( Key.ShiftLeft ); Add( Key.BackSlash );
|
|
Add( "ZXCVBNM" ); Add( Key.Comma );
|
|
Add( Key.Period ); Add( Key.Slash );
|
|
Add( Key.ShiftRight ); Skip( 1 ); // TODO: multiply
|
|
Add( Key.AltLeft ); Add( Key.Space );
|
|
Add( Key.CapsLock );
|
|
for( int i = 0; i < 10; i++ )
|
|
Add( (Key)(i + Key.F1) );
|
|
Add( Key.NumLock ); Add( Key.ScrollLock );
|
|
Add( Key.Number7 ); Add( Key.Number8 );
|
|
Add( Key.Number9 ); Add( Key.KeypadSubtract );
|
|
Add( Key.Number4 ); Add( Key.Number5 );
|
|
Add( Key.Number6 ); Add( Key.KeypadAdd );
|
|
Add( Key.Number1 ); Add( Key.Number2 );
|
|
Add( Key.Number3 ); Add( Key.Number0 );
|
|
Add( Key.KeypadDecimal ); Skip( 3 );
|
|
Add( Key.F11 ); Add( Key.F12 );
|
|
Skip( 11 );
|
|
for( int i = 0; i < 6; i++ )
|
|
Add( (Key)(i + Key.F13) );
|
|
Skip( 35 ); Add( Key.KeypadAdd );
|
|
Skip( 14 ); Add( Key.KeypadEnter );
|
|
Add( Key.ControlRight ); Skip( 23 );
|
|
Add( Key.KeypadDivide ); Skip( 2 );
|
|
Add( Key.AltRight ); Skip( 12 );
|
|
Add( Key.Pause ); Skip( 1 );
|
|
Add( Key.Home ); Add( Key.Up );
|
|
Add( Key.PageUp ); Skip( 1 );
|
|
Add( Key.Left ); Skip( 1 );
|
|
Add( Key.Right ); Skip( 1 );
|
|
Add( Key.End ); Add( Key.Down );
|
|
Add( Key.PageDown ); Add( Key.Insert );
|
|
Add( Key.Delete ); Skip( 7 );
|
|
Add( Key.WinLeft ); Add( Key.WinRight );
|
|
}
|
|
}
|
|
} |