control presets

This commit is contained in:
minjaesong
2023-08-24 17:24:39 +09:00
parent b2454e4ca2
commit f75a7dd812
20 changed files with 196 additions and 92 deletions

View File

@@ -5,10 +5,7 @@ import com.badlogic.gdx.Input
import com.badlogic.gdx.graphics.* import com.badlogic.gdx.graphics.*
import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.glutils.FrameBuffer import com.badlogic.gdx.graphics.glutils.FrameBuffer
import net.torvald.terrarum.App import net.torvald.terrarum.*
import net.torvald.terrarum.FlippingSpriteBatch
import net.torvald.terrarum.blendNormalStraightAlpha
import net.torvald.terrarum.inAction
import net.torvald.terrarum.langpack.Lang import net.torvald.terrarum.langpack.Lang
import net.torvald.terrarum.modulecomputers.gameactors.FixtureHomeComputer import net.torvald.terrarum.modulecomputers.gameactors.FixtureHomeComputer
import net.torvald.terrarum.ui.Toolkit import net.torvald.terrarum.ui.Toolkit
@@ -45,7 +42,7 @@ internal class UIHomeComputer : UICanvas(
private val fbo = FrameBuffer(Pixmap.Format.RGBA8888, width, height, false) private val fbo = FrameBuffer(Pixmap.Format.RGBA8888, width, height, false)
private val controlHelp = private val controlHelp =
"${getKeycapPC(App.getConfigInt("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}\u3000 " + "${getKeycapPC(ControlPresets.getKey("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}\u3000 " +
"$KEYCAP_CTRL$KEYCAP_SHIFT$KEYCAP_T$KEYCAP_R Terminate\u3000" + "$KEYCAP_CTRL$KEYCAP_SHIFT$KEYCAP_T$KEYCAP_R Terminate\u3000" +
"$KEYCAP_CTRL$KEYCAP_SHIFT$KEYCAP_R$KEYCAP_S Reset\u3000" + "$KEYCAP_CTRL$KEYCAP_SHIFT$KEYCAP_R$KEYCAP_S Reset\u3000" +
"$KEYCAP_CTRL$KEYCAP_SHIFT$KEYCAP_R$KEYCAP_Q SysRq" "$KEYCAP_CTRL$KEYCAP_SHIFT$KEYCAP_R$KEYCAP_Q SysRq"

View File

@@ -0,0 +1,90 @@
package net.torvald.terrarum
import com.badlogic.gdx.Input
/**
* Created by minjaesong on 2023-08-24.
*/
object ControlPresets {
val wasd = hashMapOf<String, Int>(
"control_key_up" to Input.Keys.W,
"control_key_left" to Input.Keys.A,
"control_key_down" to Input.Keys.S,
"control_key_right" to Input.Keys.D,
"control_key_jump" to Input.Keys.SPACE,
"control_key_movementaux" to Input.Keys.SHIFT_LEFT, // movement-auxiliary, or hookshot
"control_key_inventory" to Input.Keys.Q,
"control_key_interact" to Input.Keys.R,
"control_key_discard" to Input.Keys.F,
"control_key_close" to Input.Keys.X, // this or hard-coded ESC
"control_key_zoom" to Input.Keys.Z,
"control_key_gamemenu" to Input.Keys.TAB,
"control_key_crafting" to Input.Keys.E,
"control_key_quicksel" to Input.Keys.CONTROL_LEFT, // pie menu is now LShift because CapsLock is actually used by the my bespoke keyboard input
)
val esdf = hashMapOf<String, Int>(
"control_key_up" to Input.Keys.E,
"control_key_left" to Input.Keys.S,
"control_key_down" to Input.Keys.D,
"control_key_right" to Input.Keys.F, // ESDF Masterrace
"control_key_jump" to Input.Keys.SPACE,
"control_key_movementaux" to Input.Keys.A, // movement-auxiliary, or hookshot
"control_key_inventory" to Input.Keys.Q,
"control_key_interact" to Input.Keys.R,
"control_key_discard" to Input.Keys.T,
"control_key_close" to Input.Keys.C, // this or hard-coded ESC
"control_key_zoom" to Input.Keys.Z,
"control_key_gamemenu" to Input.Keys.TAB,
"control_key_crafting" to Input.Keys.W,
"control_key_quicksel" to Input.Keys.SHIFT_LEFT, // pie menu is now LShift because CapsLock is actually used by the my bespoke keyboard input
)
val ijkl = hashMapOf<String, Int>(
"control_key_up" to Input.Keys.I,
"control_key_left" to Input.Keys.J,
"control_key_down" to Input.Keys.K,
"control_key_right" to Input.Keys.L,
"control_key_jump" to Input.Keys.SPACE,
"control_key_movementaux" to Input.Keys.SEMICOLON, // movement-auxiliary, or hookshot
"control_key_inventory" to Input.Keys.P,
"control_key_interact" to Input.Keys.U,
"control_key_discard" to Input.Keys.Y,
"control_key_close" to Input.Keys.M, // this or hard-coded ESC
"control_key_zoom" to Input.Keys.SLASH,
"control_key_gamemenu" to Input.Keys.LEFT_BRACKET,
"control_key_crafting" to Input.Keys.O,
"control_key_quicksel" to Input.Keys.APOSTROPHE, // pie menu is now LShift because CapsLock is actually used by the my bespoke keyboard input
)
val empty = hashMapOf<String, Int>()
val presets = hashMapOf( // unordered
"WASD" to wasd,
"ESDF" to esdf,
"IJKL" to ijkl,
"Custom" to empty,
)
val presetLabels = listOf( // ordered
"WASD",
"ESDF",
"IJKL",
"Custom",
)
fun getKey(label: String?): Int {
if (label == null) return -1
val presetName = App.getConfigString("control_preset_keyboard") ?: "Custom"
return (presets[presetName] ?: throw IllegalStateException("No such keyboard preset: $presetName")).getOrDefault(label, App.getConfigInt(label))
}
}

View File

@@ -31,6 +31,8 @@ object DefaultConfig {
"usexinput" to true, // when FALSE, LT+RT input on xbox controller is impossible "usexinput" to true, // when FALSE, LT+RT input on xbox controller is impossible
"control_preset_keyboard" to "WASD",
"control_gamepad_keyn" to 3, "control_gamepad_keyn" to 3,
"control_gamepad_keyw" to 2, "control_gamepad_keyw" to 2,
"control_gamepad_keys" to 0, "control_gamepad_keys" to 0,

View File

@@ -5,14 +5,11 @@ import com.badlogic.gdx.Input
import com.badlogic.gdx.InputAdapter import com.badlogic.gdx.InputAdapter
import com.badlogic.gdx.controllers.Controllers import com.badlogic.gdx.controllers.Controllers
import com.badlogic.gdx.utils.GdxRuntimeException import com.badlogic.gdx.utils.GdxRuntimeException
import net.torvald.terrarum.App import net.torvald.terrarum.*
import net.torvald.terrarum.App.printdbg import net.torvald.terrarum.App.printdbg
import net.torvald.terrarum.App.printdbgerr import net.torvald.terrarum.App.printdbgerr
import net.torvald.terrarum.ItemCodex
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
import net.torvald.terrarum.controller.TerrarumController import net.torvald.terrarum.controller.TerrarumController
import net.torvald.terrarum.floorToInt
import net.torvald.terrarum.gameactors.AVKey import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.gameitems.GameItem
import net.torvald.terrarum.gameworld.fmod import net.torvald.terrarum.gameworld.fmod
@@ -168,7 +165,7 @@ class IngameController(val terrarumIngame: TerrarumIngame) : InputAdapter() {
// pie menu // pie menu
if (App.getConfigIntArray("control_key_quickselalt").contains(keycode) if (App.getConfigIntArray("control_key_quickselalt").contains(keycode)
|| keycode == App.getConfigInt("control_key_quicksel")) { || keycode == ControlPresets.getKey("control_key_quicksel")) {
terrarumIngame.uiPieMenu.setAsOpen() terrarumIngame.uiPieMenu.setAsOpen()
terrarumIngame.uiQuickBar.setAsClose() terrarumIngame.uiQuickBar.setAsClose()
} }
@@ -194,7 +191,7 @@ class IngameController(val terrarumIngame: TerrarumIngame) : InputAdapter() {
private fun tKeyUp(keycode: Int): Boolean { private fun tKeyUp(keycode: Int): Boolean {
if (App.getConfigIntArray("control_key_quickselalt").contains(keycode) if (App.getConfigIntArray("control_key_quickselalt").contains(keycode)
|| keycode == App.getConfigInt("control_key_quicksel")) { || keycode == ControlPresets.getKey("control_key_quicksel")) {
terrarumIngame.uiPieMenu.setAsClose() terrarumIngame.uiPieMenu.setAsClose()
terrarumIngame.uiQuickBar.setAsOpen() terrarumIngame.uiQuickBar.setAsOpen()
} }

View File

@@ -254,11 +254,11 @@ open class ActorHumanoid : ActorWithBody, Controllable, Pocketed, Factionable, L
private fun updateGamerControlBox() { private fun updateGamerControlBox() {
if (isGamer) { if (isGamer) {
isUpDown = Gdx.input.isKeyPressed(App.getConfigInt("control_key_up")) isUpDown = Gdx.input.isKeyPressed(ControlPresets.getKey("control_key_up"))
isLeftDown = Gdx.input.isKeyPressed(App.getConfigInt("control_key_left")) isLeftDown = Gdx.input.isKeyPressed(ControlPresets.getKey("control_key_left"))
isDownDown = Gdx.input.isKeyPressed(App.getConfigInt("control_key_down")) isDownDown = Gdx.input.isKeyPressed(ControlPresets.getKey("control_key_down"))
isRightDown = Gdx.input.isKeyPressed(App.getConfigInt("control_key_right")) isRightDown = Gdx.input.isKeyPressed(ControlPresets.getKey("control_key_right"))
isJumpDown = Gdx.input.isKeyPressed(App.getConfigInt("control_key_jump")) isJumpDown = Gdx.input.isKeyPressed(ControlPresets.getKey("control_key_jump"))
val gamepad = App.gamepad val gamepad = App.gamepad
@@ -268,7 +268,7 @@ open class ActorHumanoid : ActorWithBody, Controllable, Pocketed, Factionable, L
axisRX = gamepad.getAxis(App.getConfigInt("control_gamepad_axisrx")) axisRX = gamepad.getAxis(App.getConfigInt("control_gamepad_axisrx"))
axisRY = gamepad.getAxis(App.getConfigInt("control_gamepad_axisry")) axisRY = gamepad.getAxis(App.getConfigInt("control_gamepad_axisry"))
isJumpDown = Gdx.input.isKeyPressed(App.getConfigInt("control_key_jump")) || isJumpDown = Gdx.input.isKeyPressed(ControlPresets.getKey("control_key_jump")) ||
gamepad.getButton(App.getConfigInt("control_gamepad_ltrigger")) gamepad.getButton(App.getConfigInt("control_gamepad_ltrigger"))
} }
@@ -348,11 +348,11 @@ open class ActorHumanoid : ActorWithBody, Controllable, Pocketed, Factionable, L
// ↑F, ↓S // ↑F, ↓S
if (isRightDown && !isLeftDown) { if (isRightDown && !isLeftDown) {
walkHorizontal(false, AXIS_KEYBOARD) walkHorizontal(false, AXIS_KEYBOARD)
prevHMoveKey = App.getConfigInt("control_key_right") prevHMoveKey = ControlPresets.getKey("control_key_right")
} // ↓F, ↑S } // ↓F, ↑S
else if (isLeftDown && !isRightDown) { else if (isLeftDown && !isRightDown) {
walkHorizontal(true, AXIS_KEYBOARD) walkHorizontal(true, AXIS_KEYBOARD)
prevHMoveKey = App.getConfigInt("control_key_left") prevHMoveKey = ControlPresets.getKey("control_key_left")
} // ↓F, ↓S } // ↓F, ↓S
/*else if (isLeftDown && isRightDown) { /*else if (isLeftDown && isRightDown) {
if (prevHMoveKey == KeyMap.getKeyCode(EnumKeyFunc.MOVE_LEFT)) { if (prevHMoveKey == KeyMap.getKeyCode(EnumKeyFunc.MOVE_LEFT)) {
@@ -376,11 +376,11 @@ open class ActorHumanoid : ActorWithBody, Controllable, Pocketed, Factionable, L
// ↑E, ↓D // ↑E, ↓D
if (isDownDown && !isUpDown) { if (isDownDown && !isUpDown) {
walkVertical(false, AXIS_KEYBOARD) walkVertical(false, AXIS_KEYBOARD)
prevVMoveKey = App.getConfigInt("control_key_down") prevVMoveKey = ControlPresets.getKey("control_key_down")
} // ↓E, ↑D } // ↓E, ↑D
else if (isUpDown && !isDownDown) { else if (isUpDown && !isDownDown) {
walkVertical(true, AXIS_KEYBOARD) walkVertical(true, AXIS_KEYBOARD)
prevVMoveKey = App.getConfigInt("control_key_up") prevVMoveKey = ControlPresets.getKey("control_key_up")
} // ↓E, ↓D } // ↓E, ↓D
/*else if (isUpDown && isDownDown) { /*else if (isUpDown && isDownDown) {
if (prevVMoveKey == KeyMap.getKeyCode(EnumKeyFunc.MOVE_UP)) { if (prevVMoveKey == KeyMap.getKeyCode(EnumKeyFunc.MOVE_UP)) {

View File

@@ -46,7 +46,7 @@ class UIBasicInfo() : UICanvas() {
ELuptimer += delta ELuptimer += delta
} }
if (mouseUp || Gdx.input.isKeyPressed(App.getConfigInt("control_key_interact"))) { if (mouseUp || Gdx.input.isKeyPressed(ControlPresets.getKey("control_key_interact"))) {
ELuptimer = 0f ELuptimer = 0f
ELon = true ELon = true
} }

View File

@@ -78,7 +78,7 @@ class UICrafting(val full: UIInventoryFull) : UICanvas(), HasInventory {
private val controlHelp: String private val controlHelp: String
get() = if (App.environment == RunningEnvironment.PC) get() = if (App.environment == RunningEnvironment.PC)
"${getKeycapPC(App.getConfigInt("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}" "${getKeycapPC(ControlPresets.getKey("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}"
else else
"$gamepadLabelStart ${Lang["GAME_ACTION_CLOSE"]}\u3000 " + "$gamepadLabelStart ${Lang["GAME_ACTION_CLOSE"]}\u3000 " +
"$gamepadLabelLEFTRIGHT ${Lang["GAME_OBJECTIVE_MULTIPLIER"]}\u3000 " + "$gamepadLabelLEFTRIGHT ${Lang["GAME_OBJECTIVE_MULTIPLIER"]}\u3000 " +

View File

@@ -8,6 +8,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch
import net.torvald.unicode.EMDASH import net.torvald.unicode.EMDASH
import net.torvald.terrarum.App import net.torvald.terrarum.App
import net.torvald.terrarum.CommonResourcePool import net.torvald.terrarum.CommonResourcePool
import net.torvald.terrarum.ControlPresets
import net.torvald.terrarum.gamecontroller.* import net.torvald.terrarum.gamecontroller.*
import net.torvald.terrarum.langpack.Lang import net.torvald.terrarum.langpack.Lang
import net.torvald.terrarum.linearSearch import net.torvald.terrarum.linearSearch
@@ -318,7 +319,7 @@ private class UIItemInputKeycap(
else if (parent.shiftin && keysymsLow[1]?.isNotEmpty() == true) keysymsLow[1] else if (parent.shiftin && keysymsLow[1]?.isNotEmpty() == true) keysymsLow[1]
else keysymsLow[0]) ?: "" else keysymsLow[0]) ?: ""
val keysym0: Array<String?> = if (KeyToggler.isOn(App.getConfigInt("control_key_toggleime"))) { val keysym0: Array<String?> = if (KeyToggler.isOn(ControlPresets.getKey("control_key_toggleime"))) {
if (parent.highlayer == null) arrayOf(keysymLow,keysymLow,keysymLow,keysymLow) if (parent.highlayer == null) arrayOf(keysymLow,keysymLow,keysymLow,keysymLow)
else { else {
val keysyms = parent.highlayer!!.config.symbols val keysyms = parent.highlayer!!.config.symbols

View File

@@ -3,7 +3,6 @@ package net.torvald.terrarum.modulebasegame.ui
import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.glutils.ShapeRenderer
import com.jme3.math.FastMath import com.jme3.math.FastMath
import net.torvald.terrarum.* import net.torvald.terrarum.*
import net.torvald.terrarum.App.* import net.torvald.terrarum.App.*
@@ -162,10 +161,10 @@ class UIInventoryFull(
private val SP = "\u3000 " private val SP = "\u3000 "
val listControlHelp: String val listControlHelp: String
get() = if (App.environment == RunningEnvironment.PC) get() = if (App.environment == RunningEnvironment.PC)
"${getKeycapPC(App.getConfigInt("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}$SP" + "${getKeycapPC(ControlPresets.getKey("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}$SP" +
"$KEYCAP_LEFT_MOUSE ${Lang["GAME_INVENTORY_USE"]}$SP" + "$KEYCAP_LEFT_MOUSE ${Lang["GAME_INVENTORY_USE"]}$SP" +
"$KEYCAP_1$ENDASH\u2009$KEYCAP_0 ${Lang["GAME_INVENTORY_REGISTER"]}$SP" + "$KEYCAP_1$ENDASH\u2009$KEYCAP_0 ${Lang["GAME_INVENTORY_REGISTER"]}$SP" +
"${getKeycapPC(App.getConfigInt("control_key_discard"))} ${Lang["GAME_INVENTORY_DROP"]}" "${getKeycapPC(ControlPresets.getKey("control_key_discard"))} ${Lang["GAME_INVENTORY_DROP"]}"
else else
"$gamepadLabelStart ${Lang["GAME_ACTION_CLOSE"]}$SP" + "$gamepadLabelStart ${Lang["GAME_ACTION_CLOSE"]}$SP" +
"$gamepadLabelLT ${Lang["CONTEXT_ITEM_MAP"]}$SP" + "$gamepadLabelLT ${Lang["CONTEXT_ITEM_MAP"]}$SP" +
@@ -175,7 +174,7 @@ class UIInventoryFull(
"$gamepadLabelEast ${Lang["GAME_INVENTORY_DROP"]}" "$gamepadLabelEast ${Lang["GAME_INVENTORY_DROP"]}"
val minimapControlHelp: String val minimapControlHelp: String
get() = if (App.environment == RunningEnvironment.PC) get() = if (App.environment == RunningEnvironment.PC)
"${getKeycapPC(App.getConfigInt("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}$SP" + "${getKeycapPC(ControlPresets.getKey("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}$SP" +
"$KEYCAP_LEFT_MOUSE$KEYCAP_MOVE ${Lang["GAME_ACTION_MOVE_VERB"]}" "$KEYCAP_LEFT_MOUSE$KEYCAP_MOVE ${Lang["GAME_ACTION_MOVE_VERB"]}"
else else
"$gamepadLabelStart ${Lang["GAME_ACTION_CLOSE"]}$SP" + "$gamepadLabelStart ${Lang["GAME_ACTION_CLOSE"]}$SP" +
@@ -183,7 +182,7 @@ class UIInventoryFull(
"$gamepadLabelRT ${Lang["GAME_INVENTORY"]}" "$gamepadLabelRT ${Lang["GAME_INVENTORY"]}"
val gameMenuControlHelp: String val gameMenuControlHelp: String
get() = if (App.environment == RunningEnvironment.PC) get() = if (App.environment == RunningEnvironment.PC)
"${getKeycapPC(App.getConfigInt("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}" "${getKeycapPC(ControlPresets.getKey("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}"
else else
"$gamepadLabelStart ${Lang["GAME_ACTION_CLOSE"]}$SP" + "$gamepadLabelStart ${Lang["GAME_ACTION_CLOSE"]}$SP" +
"$gamepadLabelLT ${Lang["GAME_INVENTORY"]}" "$gamepadLabelLT ${Lang["GAME_INVENTORY"]}"
@@ -249,7 +248,7 @@ class UIInventoryFull(
} }
// allow "control_key_gamemenu" to open this UI and bring system menu immediately // allow "control_key_gamemenu" to open this UI and bring system menu immediately
this.handler.toggleKeyExtra.add { App.getConfigInt("control_key_gamemenu") } this.handler.toggleKeyExtra.add("control_key_gamemenu" )
this.handler.toggleKeyExtraAction.add { this.handler.toggleKeyExtraAction.add {
if (it.isClosed) { if (it.isClosed) {
INGAME.setTooltipMessage(null) INGAME.setTooltipMessage(null)
@@ -263,7 +262,7 @@ class UIInventoryFull(
} }
// allow "control_key_crafting" to open this UI and bring system menu immediately // allow "control_key_crafting" to open this UI and bring system menu immediately
this.handler.toggleKeyExtra.add { App.getConfigInt("control_key_crafting") } this.handler.toggleKeyExtra.add("control_key_crafting")
this.handler.toggleKeyExtraAction.add { this.handler.toggleKeyExtraAction.add {
if (it.isClosed) { if (it.isClosed) {
INGAME.setTooltipMessage(null) INGAME.setTooltipMessage(null)

View File

@@ -6,10 +6,7 @@ import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.g2d.TextureRegion import com.badlogic.gdx.graphics.g2d.TextureRegion
import net.torvald.terrarum.App import net.torvald.terrarum.*
import net.torvald.terrarum.CommonResourcePool
import net.torvald.terrarum.DefaultConfig
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.langpack.Lang import net.torvald.terrarum.langpack.Lang
import net.torvald.terrarum.ui.* import net.torvald.terrarum.ui.*
@@ -38,16 +35,16 @@ class UIKeyboardControlPanel(remoCon: UIRemoCon?) : UICanvas() {
private val keycaps = hashMapOf( private val keycaps = hashMapOf(
Input.Keys.GRAVE to UIItemKeycap(this, 1, 1, null, oneu, ""), Input.Keys.GRAVE to UIItemKeycap(this, 1, 1, null, oneu, ""),
Input.Keys.NUM_1 to UIItemKeycap(this, 33,1, Input.Keys.NUM_1, oneu, "1,3"), Input.Keys.NUM_1 to UIItemKeycap(this, 33,1, null, oneu, "1,3"),
Input.Keys.NUM_2 to UIItemKeycap(this, 65,1, Input.Keys.NUM_2, oneu, "2,3"), Input.Keys.NUM_2 to UIItemKeycap(this, 65,1, null, oneu, "2,3"),
Input.Keys.NUM_3 to UIItemKeycap(this, 97,1, Input.Keys.NUM_3, oneu, "3,3"), Input.Keys.NUM_3 to UIItemKeycap(this, 97,1, null, oneu, "3,3"),
Input.Keys.NUM_4 to UIItemKeycap(this, 129,1, Input.Keys.NUM_4, oneu, "4,3"), Input.Keys.NUM_4 to UIItemKeycap(this, 129,1, null, oneu, "4,3"),
Input.Keys.NUM_5 to UIItemKeycap(this, 161,1, Input.Keys.NUM_5, oneu, "5,3"), Input.Keys.NUM_5 to UIItemKeycap(this, 161,1, null, oneu, "5,3"),
Input.Keys.NUM_6 to UIItemKeycap(this, 193,1, Input.Keys.NUM_6, oneu, "6,3"), Input.Keys.NUM_6 to UIItemKeycap(this, 193,1, null, oneu, "6,3"),
Input.Keys.NUM_7 to UIItemKeycap(this, 225,1, Input.Keys.NUM_7, oneu, "7,3"), Input.Keys.NUM_7 to UIItemKeycap(this, 225,1, null, oneu, "7,3"),
Input.Keys.NUM_8 to UIItemKeycap(this, 257,1, Input.Keys.NUM_8, oneu, "8,3"), Input.Keys.NUM_8 to UIItemKeycap(this, 257,1, null, oneu, "8,3"),
Input.Keys.NUM_9 to UIItemKeycap(this, 289,1, Input.Keys.NUM_9, oneu, "9,3"), Input.Keys.NUM_9 to UIItemKeycap(this, 289,1, null, oneu, "9,3"),
Input.Keys.NUM_0 to UIItemKeycap(this, 321,1, Input.Keys.NUM_0, oneu, "0,3"), Input.Keys.NUM_0 to UIItemKeycap(this, 321,1, null, oneu, "0,3"),
Input.Keys.MINUS to UIItemKeycap(this, 353,1, Input.Keys.MINUS, oneu, "10,3"), Input.Keys.MINUS to UIItemKeycap(this, 353,1, Input.Keys.MINUS, oneu, "10,3"),
Input.Keys.EQUALS to UIItemKeycap(this, 385,1, Input.Keys.EQUALS, oneu, "11,3"), Input.Keys.EQUALS to UIItemKeycap(this, 385,1, Input.Keys.EQUALS, oneu, "11,3"),
Input.Keys.BACKSPACE to UIItemKeycap(this, 417,1, Input.Keys.BACKSPACE, 60, "24,5"), Input.Keys.BACKSPACE to UIItemKeycap(this, 417,1, Input.Keys.BACKSPACE, 60, "24,5"),
@@ -106,13 +103,22 @@ class UIKeyboardControlPanel(remoCon: UIRemoCon?) : UICanvas() {
) // end of keycaps ) // end of keycaps
private val resetButtonWidth = 140 private val resetButtonWidth = 140
private val buttonReset = UIItemTextButton(this, private val presetButtonWidth = 200
/*private val buttonReset = UIItemTextButton(this,
{ Lang["MENU_LABEL_RESET"] }, { Lang["MENU_LABEL_RESET"] },
kbx + (width - resetButtonWidth) / 2, kbx + (width - resetButtonWidth) / 2,
kby + 162 + 16, kby + 162 + 16,
resetButtonWidth, resetButtonWidth,
hasBorder = true, hasBorder = true,
alignment = UIItemTextButton.Companion.Alignment.CENTRE alignment = UIItemTextButton.Companion.Alignment.CENTRE
)*/
private val presetSelector = UIItemTextSelector(this,
kbx + (width - presetButtonWidth) / 2,
kby + 162 + 16,
ControlPresets.presetLabels.map { { it } },
ControlPresets.presetLabels.indexOf(App.getConfigString("control_preset_keyboard")),
presetButtonWidth,
clickToShowPalette = false,
) )
private val controlPalette = UIItemControlPaletteBaloon(this, (Toolkit.drawWidth - 500) / 2, kby + 227) private val controlPalette = UIItemControlPaletteBaloon(this, (Toolkit.drawWidth - 500) / 2, kby + 227)
@@ -122,9 +128,14 @@ class UIKeyboardControlPanel(remoCon: UIRemoCon?) : UICanvas() {
keycaps.values.forEach { addUIitem(it) } keycaps.values.forEach { addUIitem(it) }
updateKeycaps() updateKeycaps()
buttonReset.clickOnceListener = { x, y -> /*buttonReset.clickOnceListener = { x, y ->
resetKeyConfig() resetKeyConfig()
updateKeycaps() updateKeycaps()
}*/
presetSelector.selectionChangeListener = { index ->
App.setConfig("control_preset_keyboard", ControlPresets.presetLabels[index])
updateKeycaps()
} }
// addUIitem(keyboardLayoutSelection) // addUIitem(keyboardLayoutSelection)
@@ -153,18 +164,18 @@ class UIKeyboardControlPanel(remoCon: UIRemoCon?) : UICanvas() {
private fun updateKeycaps() { private fun updateKeycaps() {
keycaps.values.forEach { it.symbolControl = null } keycaps.values.forEach { it.symbolControl = null }
// read config and put icons. Item order irrelevant // read config and put icons. Item order irrelevant
keycaps[App.getConfigInt("control_key_up")]?.symbolControl = Keebsym.UP keycaps[ControlPresets.getKey("control_key_up")]?.symbolControl = Keebsym.UP
keycaps[App.getConfigInt("control_key_left")]?.symbolControl = Keebsym.LEFT keycaps[ControlPresets.getKey("control_key_left")]?.symbolControl = Keebsym.LEFT
keycaps[App.getConfigInt("control_key_down")]?.symbolControl = Keebsym.DOWN keycaps[ControlPresets.getKey("control_key_down")]?.symbolControl = Keebsym.DOWN
keycaps[App.getConfigInt("control_key_right")]?.symbolControl = Keebsym.RIGHT keycaps[ControlPresets.getKey("control_key_right")]?.symbolControl = Keebsym.RIGHT
keycaps[App.getConfigInt("control_key_jump")]?.symbolControl = Keebsym.JUMP keycaps[ControlPresets.getKey("control_key_jump")]?.symbolControl = Keebsym.JUMP
keycaps[App.getConfigInt("control_key_zoom")]?.symbolControl = Keebsym.ZOOM keycaps[ControlPresets.getKey("control_key_zoom")]?.symbolControl = Keebsym.ZOOM
keycaps[App.getConfigInt("control_key_inventory")]?.symbolControl = Keebsym.INVENTORY keycaps[ControlPresets.getKey("control_key_inventory")]?.symbolControl = Keebsym.INVENTORY
keycaps[App.getConfigInt("control_key_movementaux")]?.symbolControl = Keebsym.HOOK keycaps[ControlPresets.getKey("control_key_movementaux")]?.symbolControl = Keebsym.HOOK
keycaps[App.getConfigInt("control_key_quicksel")]?.symbolControl = Keebsym.PIE keycaps[ControlPresets.getKey("control_key_quicksel")]?.symbolControl = Keebsym.PIE
keycaps[App.getConfigInt("control_key_gamemenu")]?.symbolControl = Keebsym.MENU keycaps[ControlPresets.getKey("control_key_gamemenu")]?.symbolControl = Keebsym.MENU
keycaps[App.getConfigInt("control_key_toggleime")]?.symbolControl = Keebsym.IME() keycaps[ControlPresets.getKey("control_key_toggleime")]?.symbolControl = Keebsym.IME()
keycaps[App.getConfigInt("control_key_crafting")]?.symbolControl = Keebsym.CRAFTING keycaps[ControlPresets.getKey("control_key_crafting")]?.symbolControl = Keebsym.CRAFTING
} }
internal var keycapClicked = -13372 internal var keycapClicked = -13372
@@ -177,14 +188,14 @@ class UIKeyboardControlPanel(remoCon: UIRemoCon?) : UICanvas() {
override fun updateUI(delta: Float) { override fun updateUI(delta: Float) {
uiItems.forEach { uiItems.forEach {
it.update(delta) it.update(delta)
if (it is UIItemKeycap && it.mousePushed) { if (it is UIItemKeycap && it.mousePushed && ControlPresets.presetLabels[presetSelector.selection] == "Custom") {
it.selected = true it.selected = true
// println("key ${it.key}; selected = ${it.selected}") // println("key ${it.key}; selected = ${it.selected}")
keycapClicked = it.key ?: -13372 keycapClicked = it.key ?: -13372
} }
} }
buttonReset.update(delta) presetSelector.update(delta)
controlPalette.update(delta) controlPalette.update(delta)
} }
@@ -195,7 +206,7 @@ class UIKeyboardControlPanel(remoCon: UIRemoCon?) : UICanvas() {
// batch.color = fillCol // batch.color = fillCol
// Toolkit.fillArea(batch, drawX, drawY, width, height) // Toolkit.fillArea(batch, drawX, drawY, width, height)
uiItems.forEach { it.render(batch, camera) } uiItems.forEach { it.render(batch, camera) }
buttonReset.render(batch, camera) presetSelector.render(batch, camera)
// title // title
// todo show "Keyboard"/"Gamepad" accordingly // todo show "Keyboard"/"Gamepad" accordingly
@@ -216,6 +227,10 @@ class UIKeyboardControlPanel(remoCon: UIRemoCon?) : UICanvas() {
} }
fun setControlOf(key: Int, control: Int) { fun setControlOf(key: Int, control: Int) {
if (App.getConfigString("control_preset_keyboard") != "Custom") {
System.err.println("[UIKeyboardControlPanel] cannot set a control if the preset is not 'Custom' (current preset: ${App.getConfigString("control_preset_keyboard")})")
return
}
if (control >= 0) { if (control >= 0) {
val controlName = UIItemControlPaletteBaloon.indexToConfigKey[control]!! val controlName = UIItemControlPaletteBaloon.indexToConfigKey[control]!!
@@ -249,13 +264,19 @@ class UIKeyboardControlPanel(remoCon: UIRemoCon?) : UICanvas() {
override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean { override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
super.touchDown(screenX, screenY, pointer, button) super.touchDown(screenX, screenY, pointer, button)
buttonReset.touchDown(screenX, screenY, pointer, button) presetSelector.touchDown(screenX, screenY, pointer, button)
return true return true
} }
override fun touchUp(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean { override fun touchUp(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
super.touchUp(screenX, screenY, pointer, button) super.touchUp(screenX, screenY, pointer, button)
buttonReset.touchUp(screenX, screenY, pointer, button) presetSelector.touchUp(screenX, screenY, pointer, button)
return true
}
override fun scrolled(amountX: Float, amountY: Float): Boolean {
super.scrolled(amountX, amountY)
presetSelector.scrolled(amountX, amountY)
return true return true
} }

View File

@@ -141,7 +141,7 @@ class UILoadDemoSavefiles(val remoCon: UIRemoCon) : Advanceable() {
private val controlHelp: String private val controlHelp: String
get() = if (App.environment == RunningEnvironment.PC) get() = if (App.environment == RunningEnvironment.PC)
"${getKeycapPC(App.getConfigInt("control_key_up"))}${getKeycapPC(App.getConfigInt("control_key_down"))}" + "${getKeycapPC(ControlPresets.getKey("control_key_up"))}${getKeycapPC(ControlPresets.getKey("control_key_down"))}" +
" ${Lang["MENU_CONTROLS_SCROLL"]}" " ${Lang["MENU_CONTROLS_SCROLL"]}"
else else
"${getKeycapConsole('R')} ${Lang["MENU_CONTROLS_SCROLL"]}" "${getKeycapConsole('R')} ${Lang["MENU_CONTROLS_SCROLL"]}"
@@ -408,12 +408,12 @@ class UILoadDemoSavefiles(val remoCon: UIRemoCon) : Advanceable() {
if (this.isVisible) { if (this.isVisible) {
val cells = getCells() val cells = getCells()
if ((keycode == Input.Keys.UP || keycode == App.getConfigInt("control_key_up")) && scrollTarget > 0) { if ((keycode == Input.Keys.UP || keycode == ControlPresets.getKey("control_key_up")) && scrollTarget > 0) {
scrollFrom = listScroll scrollFrom = listScroll
scrollTarget -= 1 scrollTarget -= 1
scrollAnimCounter = 0f scrollAnimCounter = 0f
} }
else if ((keycode == Input.Keys.DOWN || keycode == App.getConfigInt("control_key_down")) && scrollTarget < cells.size - savesVisible) { else if ((keycode == Input.Keys.DOWN || keycode == ControlPresets.getKey("control_key_down")) && scrollTarget < cells.size - savesVisible) {
scrollFrom = listScroll scrollFrom = listScroll
scrollTarget += 1 scrollTarget += 1
scrollAnimCounter = 0f scrollAnimCounter = 0f

View File

@@ -25,7 +25,7 @@ class UILoadList(val full: UILoadSavegame) : UICanvas() {
private val controlHelp: String private val controlHelp: String
get() = if (App.environment == RunningEnvironment.PC) get() = if (App.environment == RunningEnvironment.PC)
"${getKeycapPC(App.getConfigInt("control_key_up"))}${getKeycapPC(App.getConfigInt("control_key_down"))}" + "${getKeycapPC(ControlPresets.getKey("control_key_up"))}${getKeycapPC(ControlPresets.getKey("control_key_down"))}" +
" ${Lang["MENU_CONTROLS_SCROLL"]}" " ${Lang["MENU_CONTROLS_SCROLL"]}"
else else
"${getKeycapConsole('R')} ${Lang["MENU_CONTROLS_SCROLL"]}" "${getKeycapConsole('R')} ${Lang["MENU_CONTROLS_SCROLL"]}"
@@ -249,12 +249,12 @@ class UILoadList(val full: UILoadSavegame) : UICanvas() {
if (this.isVisible) { if (this.isVisible) {
val cells = playerCells val cells = playerCells
if ((keycode == Input.Keys.UP || keycode == App.getConfigInt("control_key_up")) && scrollTarget > 0) { if ((keycode == Input.Keys.UP || keycode == ControlPresets.getKey("control_key_up")) && scrollTarget > 0) {
scrollFrom = listScroll scrollFrom = listScroll
scrollTarget -= 1 scrollTarget -= 1
scrollAnimCounter = 0f scrollAnimCounter = 0f
} }
else if ((keycode == Input.Keys.DOWN || keycode == App.getConfigInt("control_key_down")) && scrollTarget < cells.size - savesVisible) { else if ((keycode == Input.Keys.DOWN || keycode == ControlPresets.getKey("control_key_down")) && scrollTarget < cells.size - savesVisible) {
scrollFrom = listScroll scrollFrom = listScroll
scrollTarget += 1 scrollTarget += 1
scrollAnimCounter = 0f scrollAnimCounter = 0f

View File

@@ -175,7 +175,7 @@ internal class UIStorageChest : UICanvas(
private val controlHelp: String private val controlHelp: String
get() = if (App.environment == RunningEnvironment.PC) get() = if (App.environment == RunningEnvironment.PC)
"${getKeycapPC(App.getConfigInt("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}" "${getKeycapPC(ControlPresets.getKey("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}"
else else
"${App.gamepadLabelStart} ${Lang["GAME_ACTION_CLOSE"]} " "${App.gamepadLabelStart} ${Lang["GAME_ACTION_CLOSE"]} "

View File

@@ -45,7 +45,7 @@ class UITierOneWatch() : UICanvas() {
ELuptimer += delta ELuptimer += delta
} }
if (mouseUp || Gdx.input.isKeyPressed(App.getConfigInt("control_key_interact"))) { if (mouseUp || Gdx.input.isKeyPressed(ControlPresets.getKey("control_key_interact"))) {
ELuptimer = 0f ELuptimer = 0f
ELon = true ELon = true
} }

View File

@@ -53,7 +53,7 @@ class UITitleModules(val remoCon: UIRemoCon) : UICanvas() {
private val controlHelp: String private val controlHelp: String
get() = if (App.environment == RunningEnvironment.PC) get() = if (App.environment == RunningEnvironment.PC)
"${getKeycapPC(App.getConfigInt("control_key_up"))}${getKeycapPC(App.getConfigInt("control_key_down"))}" + "${getKeycapPC(ControlPresets.getKey("control_key_up"))}${getKeycapPC(ControlPresets.getKey("control_key_down"))}" +
" ${Lang["MENU_CONTROLS_SCROLL"]}" " ${Lang["MENU_CONTROLS_SCROLL"]}"
else else
"${getKeycapConsole('R')} ${Lang["MENU_CONTROLS_SCROLL"]}" "${getKeycapConsole('R')} ${Lang["MENU_CONTROLS_SCROLL"]}"
@@ -206,12 +206,12 @@ class UITitleModules(val remoCon: UIRemoCon) : UICanvas() {
override fun keyDown(keycode: Int): Boolean { override fun keyDown(keycode: Int): Boolean {
if (this.isVisible) { if (this.isVisible) {
if ((keycode == Input.Keys.UP || keycode == App.getConfigInt("control_key_up")) && scrollTarget > 0) { if ((keycode == Input.Keys.UP || keycode == ControlPresets.getKey("control_key_up")) && scrollTarget > 0) {
scrollFrom = listScroll scrollFrom = listScroll
scrollTarget -= 1 scrollTarget -= 1
scrollAnimCounter = 0f scrollAnimCounter = 0f
} }
else if ((keycode == Input.Keys.DOWN || keycode == App.getConfigInt("control_key_down")) && scrollTarget < moduleCells.size - savesVisible) { else if ((keycode == Input.Keys.DOWN || keycode == ControlPresets.getKey("control_key_down")) && scrollTarget < moduleCells.size - savesVisible) {
scrollFrom = listScroll scrollFrom = listScroll
scrollTarget += 1 scrollTarget += 1
scrollAnimCounter = 0f scrollAnimCounter = 0f

View File

@@ -3,10 +3,7 @@ package net.torvald.terrarum.modulebasegame.ui
import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.SpriteBatch
import net.torvald.terrarum.App import net.torvald.terrarum.*
import net.torvald.terrarum.INGAME
import net.torvald.terrarum.RunningEnvironment
import net.torvald.terrarum.floorToInt
import net.torvald.terrarum.gameworld.WorldTime import net.torvald.terrarum.gameworld.WorldTime
import net.torvald.terrarum.gameworld.WorldTime.Companion.MONTH_LENGTH import net.torvald.terrarum.gameworld.WorldTime.Companion.MONTH_LENGTH
import net.torvald.terrarum.langpack.Lang import net.torvald.terrarum.langpack.Lang
@@ -36,7 +33,7 @@ class UIWallCalendar : UICanvas(
private val SP = "\u3000 " private val SP = "\u3000 "
val controlHelp: String val controlHelp: String
get() = if (App.environment == RunningEnvironment.PC) get() = if (App.environment == RunningEnvironment.PC)
"${getKeycapPC(App.getConfigInt("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}" "${getKeycapPC(ControlPresets.getKey("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}"
else else
"${App.gamepadLabelStart} ${Lang["GAME_ACTION_CLOSE"]}" "${App.gamepadLabelStart} ${Lang["GAME_ACTION_CLOSE"]}"

View File

@@ -1,7 +1,6 @@
package net.torvald.terrarum.modulebasegame.ui package net.torvald.terrarum.modulebasegame.ui
import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.jme3.math.FastMath import com.jme3.math.FastMath
import net.torvald.terrarum.* import net.torvald.terrarum.*
@@ -54,7 +53,7 @@ class UIWorldPortal : UICanvas(
private val SP = "\u3000 " private val SP = "\u3000 "
val portalListingControlHelp: String val portalListingControlHelp: String
get() = if (App.environment == RunningEnvironment.PC) get() = if (App.environment == RunningEnvironment.PC)
"${getKeycapPC(App.getConfigInt("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}" "${getKeycapPC(ControlPresets.getKey("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}"
else else
"${App.gamepadLabelStart} ${Lang["GAME_ACTION_CLOSE"]}" + "${App.gamepadLabelStart} ${Lang["GAME_ACTION_CLOSE"]}" +
"$SP${App.gamepadLabelLT} ${Lang["GAME_WORLD_SEARCH"]}" + "$SP${App.gamepadLabelLT} ${Lang["GAME_WORLD_SEARCH"]}" +

View File

@@ -167,7 +167,7 @@ class UIWorldPortalCargo(val full: UIWorldPortal) : UICanvas(), HasInventory {
private val controlHelp: String private val controlHelp: String
get() = if (App.environment == RunningEnvironment.PC) get() = if (App.environment == RunningEnvironment.PC)
"${getKeycapPC(App.getConfigInt("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}" "${getKeycapPC(ControlPresets.getKey("control_key_inventory"))} ${Lang["GAME_ACTION_CLOSE"]}"
else else
"${App.gamepadLabelStart} ${Lang["GAME_ACTION_CLOSE"]} " "${App.gamepadLabelStart} ${Lang["GAME_ACTION_CLOSE"]} "

View File

@@ -7,6 +7,7 @@ import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.utils.Disposable import com.badlogic.gdx.utils.Disposable
import net.torvald.terrarum.App import net.torvald.terrarum.App
import net.torvald.terrarum.ControlPresets
import net.torvald.terrarum.FlippingSpriteBatch import net.torvald.terrarum.FlippingSpriteBatch
import net.torvald.terrarum.Terrarum import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gamecontroller.KeyToggler import net.torvald.terrarum.gamecontroller.KeyToggler
@@ -130,13 +131,13 @@ void main() {
//UI.handler = this //UI.handler = this
} }
// getConfigInt(toggleKeyLiteral) // ControlPresets.getKey(toggleKeyLiteral)
val toggleKey: Int?; get() = App.getConfigInt(toggleKeyLiteral).let { if (it == -1) null else it } // to support in-screen keybind changing val toggleKey: Int?; get() = ControlPresets.getKey(toggleKeyLiteral).let { if (it == -1) null else it } // to support in-screen keybind changing
// getConfigInt(toggleButtonLiteral) // ControlPresets.getKey(toggleButtonLiteral)
val toggleButton: Int?; get() = App.getConfigInt(toggleButtonLiteral).let { if (it == -1) null else it } // to support in-screen keybind changing val toggleButton: Int?; get() = ControlPresets.getKey(toggleButtonLiteral).let { if (it == -1) null else it } // to support in-screen keybind changing
val toggleKeyExtra: ArrayList<() -> Int> = arrayListOf() val toggleKeyExtra: ArrayList<String> = arrayListOf()
/** /**
* Takes a function that works with UIHandler. * Takes a function that works with UIHandler.
@@ -208,8 +209,8 @@ void main() {
else uiTogglerFunctionDefault!!.invoke(this) else uiTogglerFunctionDefault!!.invoke(this)
} }
toggleKeyExtra.forEachIndexed { index, getKey -> toggleKeyExtra.forEachIndexed { index, control ->
if (Gdx.input.isKeyJustPressed(getKey())) { if (Gdx.input.isKeyJustPressed(ControlPresets.getKey(control))) {
toggleKeyExtraAction[index].invoke(this) toggleKeyExtraAction[index].invoke(this)
} }
} }

View File

@@ -443,7 +443,7 @@ class UIItemTextLineInput(
if (!mouseDown) mouseLatched = false if (!mouseDown) mouseLatched = false
imeOn = KeyToggler.isOn(App.getConfigInt("control_key_toggleime")) imeOn = KeyToggler.isOn(ControlPresets.getKey("control_key_toggleime"))
} }
} }
@@ -468,7 +468,7 @@ class UIItemTextLineInput(
endComposing() endComposing()
imeOn = !imeOn imeOn = !imeOn
KeyToggler.forceSet(App.getConfigInt("control_key_toggleime"), imeOn) KeyToggler.forceSet(ControlPresets.getKey("control_key_toggleime"), imeOn)
} }
private fun resetIME() { private fun resetIME() {