mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-09 01:54:04 +09:00
motherfucking git
This commit is contained in:
BIN
assets/graphics/gui/ui_config_keymap_keycap.tga
LFS
Normal file
BIN
assets/graphics/gui/ui_config_keymap_keycap.tga
LFS
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,52 +0,0 @@
|
|||||||
{
|
|
||||||
"qwerty": {
|
|
||||||
"layout": "1234567890-=QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,./",
|
|
||||||
"capslock": "Caps",
|
|
||||||
"name": "QWERTY"
|
|
||||||
},
|
|
||||||
"qwertz": {
|
|
||||||
"layout": "1234567890-=QWERTZUIOP[]ASDFGHJKL;'YXCVBNM,./",
|
|
||||||
"capslock": "Caps",
|
|
||||||
"name": "QWERTZ"
|
|
||||||
},
|
|
||||||
"azerty": {
|
|
||||||
"layout": "1234567890-=AZERTYUIOP[]QSDFGHJKL;'WXCVBNM,./",
|
|
||||||
"capslock": "Caps",
|
|
||||||
"name": "AZERTY"
|
|
||||||
},
|
|
||||||
"colemak": {
|
|
||||||
"layout": "1234567890-=QWFPGJLUY;[]ARSTDHNEIO'ZXCVBKM,./",
|
|
||||||
"capslock": "Back",
|
|
||||||
"name": "Colemak"
|
|
||||||
},
|
|
||||||
"workman": {
|
|
||||||
"layout": "1234567890-=QDRWBJFUP;[]ASHTGYNEOI'ZXMCVKL,./",
|
|
||||||
"capslock": "Back",
|
|
||||||
"name": "Workman"
|
|
||||||
},
|
|
||||||
"dvorak": {
|
|
||||||
"layout": "1234567890[]',.PYFGCRL/=AOEUIDHTNS-;QJKXBMWVZ",
|
|
||||||
"capslock": "Caps",
|
|
||||||
"name": "Dvorak"
|
|
||||||
},
|
|
||||||
"bepo": {
|
|
||||||
"layout": "1234567890=%BÉPOÈ!VDLJZWAUIE,CTSRNMÀYX.K'QGHF",
|
|
||||||
"capslock": "Caps",
|
|
||||||
"name": "Bépo"
|
|
||||||
},
|
|
||||||
"turk-f": {
|
|
||||||
"layout": "1234567890/-FGĞIODRNHPQWUİEAÜTKMLYŞJÖVCÇZSB.,",
|
|
||||||
"capslock": "Caps",
|
|
||||||
"name": "F klavye"
|
|
||||||
},
|
|
||||||
"qwerty-jis-apple": {
|
|
||||||
"layout": "1234567890-=QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,./",
|
|
||||||
"capslock": "Ctrl",
|
|
||||||
"name": "Apple 日本語"
|
|
||||||
},
|
|
||||||
"hhkb": {
|
|
||||||
"layout": "1234567890-=QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,./",
|
|
||||||
"capslock": "Ctrl",
|
|
||||||
"name": "HHKB2"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
6
assets/keylayout/colemak.properties
Normal file
6
assets/keylayout/colemak.properties
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
layout_name=Colemak
|
||||||
|
ROW1=4s;4qNUM_1;4qNUM_2;4qNUM_3;4qNUM_4;4qNUM_5;4qNUM_6;4qNUM_7;4qNUM_8;4qNUM_9;4qNUM_0;4qMINUS;4qEQUALS;6qBACKSPACE
|
||||||
|
ROW2=6qTAB;4qQ;4qW;4qF;4qP;4qG;4qJ;4qL;4qU;4qY;4qSEMICOLON;4qLEFT_BRACKET;4qRIGHT_BRACKET;4qBACKSLASH
|
||||||
|
ROW3=7qCAPS_LOCK;4qA;4qR;4qS;4qT;4qD;4qH;4qN;4qE;4qI;4qO;4qAPOSTROPHE;7qENTER
|
||||||
|
ROW4=9qSHIFT_LEFT;4qZ;4qX;4qC;4qV;4qB;4qK;4qM;4qCOMMA;4qPERIOD;4qSLASH;9qSHIFT_RIGHT
|
||||||
|
ROW5=15s;28qSPACE
|
||||||
6
assets/keylayout/dvorak.properties
Normal file
6
assets/keylayout/dvorak.properties
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
layout_name=Dvorak Simplified
|
||||||
|
ROW1=4s;4qNUM_1;4qNUM_2;4qNUM_3;4qNUM_4;4qNUM_5;4qNUM_6;4qNUM_7;4qNUM_8;4qNUM_9;4qNUM_0;4qLEFT_BRACKET;4qRIGHT_BRACKET;6qBACKSPACE
|
||||||
|
ROW2=6qTAB;4qAPOSTROPHE;4qCOMMA;4qPERIOD;4qP;4qY;4qF;4qG;4qC;4qR;4qL;4qSLASH;4qEQUALS;4qBACKSLASH
|
||||||
|
ROW3=7qCAPS_LOCK;4qA;4qO;4qE;4qU;4qI;4qD;4qH;4qT;4qN;4qS;4qMINUS;7qENTER
|
||||||
|
ROW4=9qSHIFT_LEFT;4qSEMICOLON;4qQ;4qJ;4qK;4qX;4qB;4qM;4qW;4qV;4qZ;9qSHIFT_RIGHT
|
||||||
|
ROW5=15s;28qSPACE
|
||||||
6
assets/keylayout/malt89.properties
Normal file
6
assets/keylayout/malt89.properties
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
layout_name=Maltron 89
|
||||||
|
ROW1=4qNUM_1;4qNUM_2;4qNUM_3;4qNUM_4;4qNUM_5;10s;4qNUM_6;4qNUM_7;4qNUM_8;4qNUM_9;4qNUM_0
|
||||||
|
ROW2=4qQ;4qP;4qY;4qC;4qB;10s;4qV;4qM;4qU;4qZ;4qL
|
||||||
|
ROW3=4qA;4qN;4qI;4qS;4qF;10s;4qD;4qT;4qH;4qO;4qR
|
||||||
|
ROW4=4qCOMMA;4qPERIOD;4qJ;4qG;4qSEMICOLON;10s;4qAPOSTROPHE;4qW;4qK;4qX;4qNULL
|
||||||
|
ROW5=4qSHIFT_LEFT;4qBACKSLASH;4qLEFT_BRACKET;4qMINUS;3s;4qE;4s;4qENTER;3s;4qEQUALS;4qRIGHT_BACKET;4qSLASH;4qSHIFT_RIGHT
|
||||||
13
assets/keylayout/qwerty.properties
Normal file
13
assets/keylayout/qwerty.properties
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
! generic QWERTY keyboard
|
||||||
|
|
||||||
|
! row format: (n)q(keyname)
|
||||||
|
! n: width of a key, 4 for regular key (1.0u). Value smaller than 4 will break the UI, so DON'T
|
||||||
|
! keyname: name of the key that is recognised by the UI parser.
|
||||||
|
! each key in the row is separated by one semicolon.
|
||||||
|
|
||||||
|
layout_name=QWERTY
|
||||||
|
ROW1=4s;4qNUM_1;4qNUM_2;4qNUM_3;4qNUM_4;4qNUM_5;4qNUM_6;4qNUM_7;4qNUM_8;4qNUM_9;4qNUM_0;4qMINUS;4qEQUALS;6qBACKSPACE
|
||||||
|
ROW2=6qTAB;4qQ;4qW;4qE;4qR;4qT;4qY;4qU;4qI;4qO;4qP;4qLEFT_BRACKET;4qRIGHT_BRACKET;4qBACKSLASH
|
||||||
|
ROW3=7qCAPS_LOCK;4qA;4qS;4qD;4qF;4qG;4qH;4qJ;4qK;4qL;4qSEMICOLON;4qAPOSTROPHE;7qENTER
|
||||||
|
ROW4=9qSHIFT_LEFT;4qZ;4qX;4qC;4qV;4qB;4qN;4qM;4qCOMMA;4qPERIOD;4qSLASH;9qSHIFT_RIGHT
|
||||||
|
ROW5=15s;28qSPACE
|
||||||
9
assets/reflect.frag
Normal file
9
assets/reflect.frag
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
varying vec4 v_color;
|
||||||
|
varying vec2 v_texCoords;
|
||||||
|
uniform sampler2D u_texture;
|
||||||
|
|
||||||
|
void main(void) {
|
||||||
|
vec4 color = texture2D(u_texture, vec2(v_texCoords.x, 1.0 - v_texCoords.y));
|
||||||
|
vec4 alphamul = vec4(1.0, 1.0, 1.0, 0.5 * (1.0 - v_texCoords.y));
|
||||||
|
gl_FragColor = color * alphamul;
|
||||||
|
}
|
||||||
@@ -217,6 +217,7 @@ public class AppLoader implements ApplicationListener {
|
|||||||
public static ShaderProgram shaderHicolour;
|
public static ShaderProgram shaderHicolour;
|
||||||
public static ShaderProgram shaderPassthruRGB;
|
public static ShaderProgram shaderPassthruRGB;
|
||||||
public static ShaderProgram shaderColLUT;
|
public static ShaderProgram shaderColLUT;
|
||||||
|
public static ShaderProgram shaderReflect;
|
||||||
|
|
||||||
public static Mesh fullscreenQuad;
|
public static Mesh fullscreenQuad;
|
||||||
private static OrthographicCamera camera;
|
private static OrthographicCamera camera;
|
||||||
@@ -388,6 +389,7 @@ public class AppLoader implements ApplicationListener {
|
|||||||
shaderHicolour = loadShader("assets/4096.vert", "assets/hicolour.frag");
|
shaderHicolour = loadShader("assets/4096.vert", "assets/hicolour.frag");
|
||||||
shaderPassthruRGB = loadShader("assets/4096.vert", "assets/passthrurgb.frag");
|
shaderPassthruRGB = loadShader("assets/4096.vert", "assets/passthrurgb.frag");
|
||||||
shaderColLUT = loadShader("assets/4096.vert", "assets/passthrurgb.frag");
|
shaderColLUT = loadShader("assets/4096.vert", "assets/passthrurgb.frag");
|
||||||
|
shaderReflect = loadShader("assets/4096.vert", "assets/reflect.frag");
|
||||||
|
|
||||||
fullscreenQuad = new Mesh(
|
fullscreenQuad = new Mesh(
|
||||||
true, 4, 6,
|
true, 4, 6,
|
||||||
@@ -561,18 +563,35 @@ public class AppLoader implements ApplicationListener {
|
|||||||
fullscreenQuad.render(shaderBayerSkyboxFill, GL20.GL_TRIANGLES);
|
fullscreenQuad.render(shaderBayerSkyboxFill, GL20.GL_TRIANGLES);
|
||||||
shaderBayerSkyboxFill.end();
|
shaderBayerSkyboxFill.end();
|
||||||
|
|
||||||
logoBatch.begin();
|
|
||||||
logoBatch.setColor(Color.WHITE);
|
|
||||||
//blendNormal();
|
|
||||||
logoBatch.setShader(null);
|
|
||||||
|
|
||||||
setCameraPosition(0f, 0f);
|
setCameraPosition(0f, 0f);
|
||||||
|
|
||||||
|
int safetyTextLen = fontGame.getWidth(Lang.INSTANCE.get("APP_WARNING_HEALTH_AND_SAFETY"));
|
||||||
|
int logoPosX = (appConfig.width - logo.getRegionWidth() - safetyTextLen) >>> 1;
|
||||||
|
int logoPosY = Math.round(appConfig.height / 15f);
|
||||||
|
int textY = logoPosY + logo.getRegionHeight() - 16;
|
||||||
|
|
||||||
|
// draw logo reflection
|
||||||
|
logoBatch.setShader(shaderReflect);
|
||||||
|
logoBatch.setColor(Color.WHITE);
|
||||||
|
logoBatch.begin();
|
||||||
|
|
||||||
|
if (getConfigBoolean("showhealthmessageonstartup")) {
|
||||||
|
logoBatch.draw(logo, logoPosX, logoPosY + logo.getRegionHeight());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
logoBatch.draw(logo, (appConfig.width - logo.getRegionWidth()) / 2f,
|
||||||
|
(appConfig.height - logo.getRegionHeight() * 2) / 2f + logo.getRegionHeight()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
logoBatch.end();
|
||||||
|
|
||||||
|
// draw health messages
|
||||||
|
logoBatch.setShader(null);
|
||||||
|
logoBatch.begin();
|
||||||
|
|
||||||
if (getConfigBoolean("showhealthmessageonstartup")) {
|
if (getConfigBoolean("showhealthmessageonstartup")) {
|
||||||
int safetyTextLen = fontGame.getWidth(Lang.INSTANCE.get("APP_WARNING_HEALTH_AND_SAFETY"));
|
|
||||||
int logoPosX = (appConfig.width - logo.getRegionWidth() - safetyTextLen) >>> 1;
|
|
||||||
int logoPosY = Math.round(appConfig.height / 15f);
|
|
||||||
int textY = logoPosY + (logo.getRegionHeight() >>> 1) - 16;
|
|
||||||
|
|
||||||
logoBatch.draw(logo, logoPosX, logoPosY);
|
logoBatch.draw(logo, logoPosX, logoPosY);
|
||||||
logoBatch.setColor(new Color(0x666666ff));
|
logoBatch.setColor(new Color(0x666666ff));
|
||||||
@@ -600,10 +619,11 @@ public class AppLoader implements ApplicationListener {
|
|||||||
int virtualHeightOffset = appConfig.height - virtualHeight;
|
int virtualHeightOffset = appConfig.height - virtualHeight;
|
||||||
logoBatch.draw(tex1, (appConfig.width - tex1.getWidth()) >>> 1, virtualHeightOffset + (virtualHeight >>> 1) - 16, tex1.getWidth(), -tex1.getHeight());
|
logoBatch.draw(tex1, (appConfig.width - tex1.getWidth()) >>> 1, virtualHeightOffset + (virtualHeight >>> 1) - 16, tex1.getWidth(), -tex1.getHeight());
|
||||||
logoBatch.draw(tex2, (appConfig.width - tex2.getWidth()) >>> 1, virtualHeightOffset + (virtualHeight >>> 1) + 16 + tex2.getHeight(), tex2.getWidth(), -tex2.getHeight());
|
logoBatch.draw(tex2, (appConfig.width - tex2.getWidth()) >>> 1, virtualHeightOffset + (virtualHeight >>> 1) + 16 + tex2.getHeight(), tex2.getWidth(), -tex2.getHeight());
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
logoBatch.draw(logo, (appConfig.width - logo.getRegionWidth()) / 2f,
|
logoBatch.draw(logo, (appConfig.width - logo.getRegionWidth()) / 2f,
|
||||||
(appConfig.height - logo.getRegionHeight()) / 2f
|
(appConfig.height - logo.getRegionHeight() * 2) / 2f
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -114,8 +114,6 @@ class TitleScreen(batch: SpriteBatch) : IngameInstance(batch) {
|
|||||||
private val gradWhiteBottom = Color(0xd8d8d8ff.toInt())
|
private val gradWhiteBottom = Color(0xd8d8d8ff.toInt())
|
||||||
|
|
||||||
|
|
||||||
lateinit var logo: TextureRegion
|
|
||||||
|
|
||||||
val uiContainer = ArrayList<UICanvas?>()
|
val uiContainer = ArrayList<UICanvas?>()
|
||||||
private lateinit var uiMenu: UICanvas
|
private lateinit var uiMenu: UICanvas
|
||||||
|
|
||||||
@@ -174,9 +172,6 @@ class TitleScreen(batch: SpriteBatch) : IngameInstance(batch) {
|
|||||||
|
|
||||||
initViewPort(AppLoader.screenW, AppLoader.screenH)
|
initViewPort(AppLoader.screenW, AppLoader.screenH)
|
||||||
|
|
||||||
logo = TextureRegion(Texture(Gdx.files.internal("assets/graphics/logo_placeholder.tga")))
|
|
||||||
logo.flip(false, true)
|
|
||||||
|
|
||||||
|
|
||||||
Gdx.input.inputProcessor = TitleScreenController(this)
|
Gdx.input.inputProcessor = TitleScreenController(this)
|
||||||
|
|
||||||
@@ -317,7 +312,6 @@ class TitleScreen(batch: SpriteBatch) : IngameInstance(batch) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun dispose() {
|
override fun dispose() {
|
||||||
logo.texture.dispose()
|
|
||||||
uiMenu.dispose()
|
uiMenu.dispose()
|
||||||
demoWorld.dispose()
|
demoWorld.dispose()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ class UIItemInventoryEquippedView(
|
|||||||
|
|
||||||
val spriteViewBackCol: Color = CELLCOLOUR_BLACK
|
val spriteViewBackCol: Color = CELLCOLOUR_BLACK
|
||||||
|
|
||||||
private val equipPosIcon = TextureRegionPack("./assets/graphics/gui/inventory/equip_position.tga", 18, 18)
|
private val equipPosIcon = CommonResourcePool.getAsTextureRegionPack("inventory_caticons")
|
||||||
private val cellToIcon = intArrayOf(0,1,2,3,4,5,6,7,6,7,6,7)
|
private val cellToIcon = intArrayOf(0,1,2,3,4,5,6,7,6,7,6,7)
|
||||||
private val equipPosIconCol = Color(0xdddddd7f.toInt())
|
private val equipPosIconCol = Color(0xdddddd7f.toInt())
|
||||||
|
|
||||||
@@ -107,7 +107,7 @@ class UIItemInventoryEquippedView(
|
|||||||
cell.render(batch, camera)
|
cell.render(batch, camera)
|
||||||
if (cell.item == null) {
|
if (cell.item == null) {
|
||||||
batch.color = equipPosIconCol
|
batch.color = equipPosIconCol
|
||||||
batch.draw(equipPosIcon.get(cellToIcon[index], 0), 15f + cell.posX, 15f + cell.posY)
|
batch.draw(equipPosIcon.get(cellToIcon[index], 1), 15f + cell.posX, 15f + cell.posY)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
235
src/net/torvald/terrarum/tests/KeyLayoutParserTest.kt
Normal file
235
src/net/torvald/terrarum/tests/KeyLayoutParserTest.kt
Normal file
@@ -0,0 +1,235 @@
|
|||||||
|
package net.torvald.terrarum.tests
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx
|
||||||
|
import com.badlogic.gdx.Input
|
||||||
|
import java.io.FileReader
|
||||||
|
import java.lang.StringBuilder
|
||||||
|
import java.util.*
|
||||||
|
import kotlin.collections.ArrayList
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
val prop = Properties()
|
||||||
|
prop.load(FileReader("./assets/keylayout/colemak.properties"))
|
||||||
|
val layout = KeyboardLayout(prop)
|
||||||
|
|
||||||
|
layout.drawToASCII()
|
||||||
|
}
|
||||||
|
|
||||||
|
class KeyboardLayout(layoutDesc: Properties) {
|
||||||
|
data class Keycap(val width: Int, val label: String, val keycode: Int, val isSpace: Boolean, val isBlockedKey: Boolean)
|
||||||
|
|
||||||
|
val keys = Array(5) { rowNum ->
|
||||||
|
val rowNum = rowNum + 1
|
||||||
|
val eachKeys = ArrayList<Keycap>()
|
||||||
|
|
||||||
|
(layoutDesc["ROW$rowNum"] ?: "").toString().split(';').forEach {
|
||||||
|
// text parsing machine
|
||||||
|
val _size = StringBuilder()
|
||||||
|
val _keyID = StringBuilder()
|
||||||
|
var isSpace = false
|
||||||
|
var delimiterLatched = false
|
||||||
|
it.forEachIndexed { index, c ->
|
||||||
|
if (!delimiterLatched && (c == 'q' || c == 's')) {
|
||||||
|
delimiterLatched = true
|
||||||
|
|
||||||
|
if (c == 's') isSpace = true
|
||||||
|
}
|
||||||
|
else if (!delimiterLatched) {
|
||||||
|
_size.append(c)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
_keyID.append(c)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val size = _size.toString().toInt()
|
||||||
|
val keyID = _keyID.toString()
|
||||||
|
|
||||||
|
eachKeys.add(Keycap(size, toLabel(keyID), toKeycode(keyID), isSpace, keyID == "NULL"))
|
||||||
|
}
|
||||||
|
|
||||||
|
eachKeys.toTypedArray()
|
||||||
|
}
|
||||||
|
|
||||||
|
internal fun drawToASCII() {
|
||||||
|
keys.forEach { row ->
|
||||||
|
row.forEach {
|
||||||
|
for (c in -1 until it.width - 1) {
|
||||||
|
if (c == -1 && !it.isSpace) {
|
||||||
|
print("|")
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (it.isBlockedKey) {
|
||||||
|
print("#")
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
print(it.label[c])
|
||||||
|
}
|
||||||
|
catch (_: IndexOutOfBoundsException) {
|
||||||
|
print(" ")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
println("|")
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun toLabel(keyID: String) = when (keyID) {
|
||||||
|
"" -> " "
|
||||||
|
"MINUS" -> "-"
|
||||||
|
"EQUAL" -> "="
|
||||||
|
"QUOTE" -> "\""
|
||||||
|
"SEMICOLON" -> ";"
|
||||||
|
"LEFT_BRACKET" -> "["
|
||||||
|
"RIGHT_BRACKET" -> "]"
|
||||||
|
"COMMA" -> ","
|
||||||
|
"PERIOD" -> "."
|
||||||
|
"SLASH" -> "/"
|
||||||
|
"BACKSLASH" -> "\\"
|
||||||
|
else -> keyID
|
||||||
|
}
|
||||||
|
private fun toKeycode(keyID: String) = when (keyID) {
|
||||||
|
else -> 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// NOTE: this keydict does NOT have numpad_0..numpad_9
|
||||||
|
val keyDict = arrayOf( // arrayOf(keyID, keycode, keylabel(CP437))
|
||||||
|
arrayOf("NUM_0", Input.Keys.NUM_0, "0"), // use toUppercase() if necessary
|
||||||
|
arrayOf("NUM_1", Input.Keys.NUM_1, "1"),
|
||||||
|
arrayOf("NUM_2", Input.Keys.NUM_2, "2"),
|
||||||
|
arrayOf("NUM_3", Input.Keys.NUM_3, "3"),
|
||||||
|
arrayOf("NUM_4", Input.Keys.NUM_4, "4"),
|
||||||
|
arrayOf("NUM_5", Input.Keys.NUM_5, "5"),
|
||||||
|
arrayOf("NUM_6", Input.Keys.NUM_6, "6"),
|
||||||
|
arrayOf("NUM_7", Input.Keys.NUM_7, "7"),
|
||||||
|
arrayOf("NUM_8", Input.Keys.NUM_8, "8"),
|
||||||
|
arrayOf("NUM_9", Input.Keys.NUM_9, "9"),
|
||||||
|
arrayOf("A", Input.Keys.A, "A"),
|
||||||
|
arrayOf("ALT_LEFT", Input.Keys.ALT_LEFT, "Alt"),
|
||||||
|
arrayOf("ALT_RIGHT", Input.Keys.ALT_RIGHT, "Alt"),
|
||||||
|
arrayOf("APOSTROPHE", Input.Keys.APOSTROPHE, "'"),
|
||||||
|
arrayOf("AT", Input.Keys.AT, "@"),
|
||||||
|
arrayOf("B", Input.Keys.B, "B"),
|
||||||
|
arrayOf("BACK", Input.Keys.BACK, "Back"),
|
||||||
|
arrayOf("BACKSLASH", Input.Keys.BACKSLASH, "\\"),
|
||||||
|
arrayOf("C", Input.Keys.C, "C"),
|
||||||
|
arrayOf("CALL", Input.Keys.CALL, "Call"),
|
||||||
|
arrayOf("CAMERA", Input.Keys.CAMERA, "Cam"),
|
||||||
|
arrayOf("CLEAR", Input.Keys.CLEAR, "Clear"),
|
||||||
|
arrayOf("COMMA", Input.Keys.COMMA, "Comma"),
|
||||||
|
arrayOf("D", Input.Keys.D, "D"),
|
||||||
|
arrayOf("DEL", Input.Keys.DEL, "Del"),
|
||||||
|
arrayOf("BACKSPACE", Input.Keys.BACKSPACE, "Bksp"),
|
||||||
|
arrayOf("FORWARD_DEL", Input.Keys.FORWARD_DEL, "Del"),
|
||||||
|
arrayOf("DPAD_CENTER", Input.Keys.DPAD_CENTER, "_"),
|
||||||
|
arrayOf("DPAD_DOWN", Input.Keys.DPAD_DOWN, "_"),
|
||||||
|
arrayOf("DPAD_LEFT", Input.Keys.DPAD_LEFT, "_"),
|
||||||
|
arrayOf("DPAD_RIGHT", Input.Keys.DPAD_RIGHT, "_"),
|
||||||
|
arrayOf("DPAD_UP", Input.Keys.DPAD_UP, "_"),
|
||||||
|
arrayOf("CENTER", Input.Keys.CENTER, "_"),
|
||||||
|
arrayOf("DOWN", Input.Keys.DOWN, "${0x19.toChar()}"),
|
||||||
|
arrayOf("LEFT", Input.Keys.LEFT, "${0x1B.toChar()}"),
|
||||||
|
arrayOf("RIGHT", Input.Keys.RIGHT, "${0x1A.toChar()}"),
|
||||||
|
arrayOf("UP", Input.Keys.UP, "${0x18.toChar()}"),
|
||||||
|
arrayOf("E", Input.Keys.E, "E"),
|
||||||
|
arrayOf("ENDCALL", Input.Keys.ENDCALL, "EndCall"),
|
||||||
|
arrayOf("ENTER", Input.Keys.ENTER, "Enter"),
|
||||||
|
arrayOf("ENVELOPE", Input.Keys.ENVELOPE, "Mail"),
|
||||||
|
arrayOf("EQUALS", Input.Keys.EQUALS, "="),
|
||||||
|
arrayOf("EXPLORER", Input.Keys.EXPLORER, "Expl"),
|
||||||
|
arrayOf("F", Input.Keys.F, "F"),
|
||||||
|
arrayOf("FOCUS", Input.Keys.FOCUS, "Focus"),
|
||||||
|
arrayOf("G", Input.Keys.G, "G"),
|
||||||
|
arrayOf("GRAVE", Input.Keys.GRAVE, "`"),
|
||||||
|
arrayOf("H", Input.Keys.H, "H"),
|
||||||
|
arrayOf("HEADSETHOOK", Input.Keys.HEADSETHOOK, "Headset"),
|
||||||
|
arrayOf("HOME", Input.Keys.HOME, "Home"),
|
||||||
|
arrayOf("I", Input.Keys.I, "I"),
|
||||||
|
arrayOf("J", Input.Keys.J, "J"),
|
||||||
|
arrayOf("K", Input.Keys.K, "K"),
|
||||||
|
arrayOf("L", Input.Keys.L, "L"),
|
||||||
|
arrayOf("LEFT_BRACKET", Input.Keys.LEFT_BRACKET, "["),
|
||||||
|
arrayOf("M", Input.Keys.M, "M"),
|
||||||
|
arrayOf("MEDIA_FAST_FORWARD", Input.Keys.MEDIA_FAST_FORWARD, "${0x10.toChar()}${0x10.toChar()}"),
|
||||||
|
arrayOf("MEDIA_NEXT", Input.Keys.MEDIA_NEXT, "Next"),
|
||||||
|
arrayOf("MEDIA_PLAY_PAUSE", Input.Keys.MEDIA_PLAY_PAUSE, "${0x10.toChar()}"),
|
||||||
|
arrayOf("MEDIA_PREVIOUS", Input.Keys.MEDIA_PREVIOUS, "Prev"),
|
||||||
|
arrayOf("MEDIA_REWIND", Input.Keys.MEDIA_REWIND, "${0x11.toChar()}${0x11.toChar()}"),
|
||||||
|
arrayOf("MEDIA_STOP", Input.Keys.MEDIA_STOP, "${0xFE.toChar()}"),
|
||||||
|
arrayOf("MENU", Input.Keys.MENU, "${0xF0.toChar()}"),
|
||||||
|
arrayOf("MINUS", Input.Keys.MINUS, "-"),
|
||||||
|
arrayOf("MUTE", Input.Keys.MUTE, "Mute"),
|
||||||
|
arrayOf("N", Input.Keys.N, "M"),
|
||||||
|
arrayOf("NOTIFICATION", Input.Keys.NOTIFICATION, "Notif"),
|
||||||
|
arrayOf("NUM", Input.Keys.NUM, "Num"),
|
||||||
|
arrayOf("O", Input.Keys.O, "O"),
|
||||||
|
arrayOf("P", Input.Keys.P, "P"),
|
||||||
|
arrayOf("PERIOD", Input.Keys.PERIOD, "."),
|
||||||
|
arrayOf("PLUS", Input.Keys.PLUS, "+"),
|
||||||
|
arrayOf("POUND", Input.Keys.POUND, "#"),
|
||||||
|
arrayOf("POWER", Input.Keys.POWER, "Pwr"),
|
||||||
|
arrayOf("Q", Input.Keys.Q, "Q"),
|
||||||
|
arrayOf("R", Input.Keys.R, "R"),
|
||||||
|
arrayOf("RIGHT_BRACKET", Input.Keys.RIGHT_BRACKET, "]"),
|
||||||
|
arrayOf("S", Input.Keys.S, "S"),
|
||||||
|
arrayOf("SEARCH", Input.Keys.SEARCH, "Find"),
|
||||||
|
arrayOf("SEMICOLON", Input.Keys.SEMICOLON, ";"),
|
||||||
|
arrayOf("SHIFT_LEFT", Input.Keys.SHIFT_LEFT, "Shift"),
|
||||||
|
arrayOf("SHIFT_RIGHT", Input.Keys.SHIFT_RIGHT, "Shift"),
|
||||||
|
arrayOf("SLASH", Input.Keys.SLASH, "/"),
|
||||||
|
arrayOf("SOFT_LEFT", Input.Keys.SOFT_LEFT, "S${0x1B.toChar()}"),
|
||||||
|
arrayOf("SOFT_RIGHT", Input.Keys.SOFT_RIGHT, "S${0x1A.toChar()}"),
|
||||||
|
arrayOf("SPACE", Input.Keys.SPACE, " "),
|
||||||
|
arrayOf("STAR", Input.Keys.STAR, "*"),
|
||||||
|
arrayOf("SYM", Input.Keys.SYM, "Sym"),
|
||||||
|
arrayOf("T", Input.Keys.T, "T"),
|
||||||
|
arrayOf("TAB", Input.Keys.TAB, "Tab"),
|
||||||
|
arrayOf("U", Input.Keys.U, "U"),
|
||||||
|
arrayOf("UNKNOWN", Input.Keys.UNKNOWN, "??"),
|
||||||
|
arrayOf("V", Input.Keys.V, "V"),
|
||||||
|
arrayOf("VOLUME_DOWN", Input.Keys.VOLUME_DOWN, "V-"),
|
||||||
|
arrayOf("VOLUME_UP", Input.Keys.VOLUME_UP, "V+"),
|
||||||
|
arrayOf("W", Input.Keys.W, "W"),
|
||||||
|
arrayOf("X", Input.Keys.X, "X"),
|
||||||
|
arrayOf("Y", Input.Keys.Y, "Y"),
|
||||||
|
arrayOf("Z", Input.Keys.Z, "Z"),
|
||||||
|
arrayOf("META_ALT_LEFT_ON", Input.Keys.META_ALT_LEFT_ON, "_"),
|
||||||
|
arrayOf("META_ALT_ON", Input.Keys.META_ALT_ON, "_"),
|
||||||
|
arrayOf("META_ALT_RIGHT_ON", Input.Keys.META_ALT_RIGHT_ON, "_"),
|
||||||
|
arrayOf("META_SHIFT_LEFT_ON", Input.Keys.META_SHIFT_LEFT_ON, "_"),
|
||||||
|
arrayOf("META_SHIFT_ON", Input.Keys.META_SHIFT_ON, "_"),
|
||||||
|
arrayOf("META_SHIFT_RIGHT_ON", Input.Keys.META_SHIFT_RIGHT_ON, "_"),
|
||||||
|
arrayOf("META_SYM_ON", Input.Keys.META_SYM_ON, "_"),
|
||||||
|
arrayOf("CONTROL_LEFT", Input.Keys.CONTROL_LEFT, "Ctr"),
|
||||||
|
arrayOf("CONTROL_RIGHT", Input.Keys.CONTROL_RIGHT, "Ctr"),
|
||||||
|
arrayOf("ESCAPE", Input.Keys.ESCAPE, "Esc"),
|
||||||
|
arrayOf("END", Input.Keys.END, "End"),
|
||||||
|
arrayOf("INSERT", Input.Keys.INSERT, "Ins"),
|
||||||
|
arrayOf("PAGE_UP", Input.Keys.PAGE_UP, "P${0x18.toChar()}"),
|
||||||
|
arrayOf("PAGE_DOWN", Input.Keys.PAGE_DOWN, "P${0x19.toChar()}"),
|
||||||
|
arrayOf("PICTSYMBOLS", Input.Keys.PICTSYMBOLS, "_"),
|
||||||
|
arrayOf("SWITCH_CHARSET", Input.Keys.SWITCH_CHARSET, "Lang"),
|
||||||
|
arrayOf("BUTTON_CIRCLE", Input.Keys.BUTTON_CIRCLE, "_"),
|
||||||
|
arrayOf("BUTTON_A", Input.Keys.BUTTON_A, "_"),
|
||||||
|
arrayOf("BUTTON_B", Input.Keys.BUTTON_B, "_"),
|
||||||
|
arrayOf("BUTTON_C", Input.Keys.BUTTON_C, "_"),
|
||||||
|
arrayOf("BUTTON_X", Input.Keys.BUTTON_X, "_"),
|
||||||
|
arrayOf("BUTTON_Y", Input.Keys.BUTTON_Y, "_"),
|
||||||
|
arrayOf("BUTTON_Z", Input.Keys.BUTTON_Z, "_"),
|
||||||
|
arrayOf("BUTTON_L1", Input.Keys.BUTTON_L1, "_"),
|
||||||
|
arrayOf("BUTTON_R1", Input.Keys.BUTTON_R1, "_"),
|
||||||
|
arrayOf("BUTTON_L2", Input.Keys.BUTTON_L2, "_"),
|
||||||
|
arrayOf("BUTTON_R2", Input.Keys.BUTTON_R2, "_"),
|
||||||
|
arrayOf("BUTTON_THUMBL", Input.Keys.BUTTON_THUMBL, "_"),
|
||||||
|
arrayOf("BUTTON_THUMBR", Input.Keys.BUTTON_THUMBR, "_"),
|
||||||
|
arrayOf("BUTTON_START", Input.Keys.BUTTON_START, "_"),
|
||||||
|
arrayOf("BUTTON_SELECT", Input.Keys.BUTTON_SELECT, "_"),
|
||||||
|
arrayOf("BUTTON_MODE", Input.Keys.BUTTON_MODE, "_")
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user