From f07be810070da045650e0c565c08477a7f501e51 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Thu, 21 Oct 2021 15:08:39 +0900 Subject: [PATCH] working text selector; text input needs more work --- assets/locales/en/terrarum.json | 4 +- assets/locales/koKR/terrarum.json | 4 +- lib/TerrarumSansBitmap.jar | Bin 85340 -> 85381 bytes src/net/torvald/terrarum/App.java | 20 ++- .../torvald/terrarum/gamecontroller/IME.kt | 29 +++- .../gamecontroller/IngameController.kt | 9 +- .../ui/UIKeyboardControlPanel.kt | 38 ++++- src/net/torvald/terrarum/ui/UIItem.kt | 2 +- .../terrarum/ui/UIItemTextLineInput.kt | 45 ++--- .../torvald/terrarum/ui/UIItemTextSelector.kt | 158 ++++++++++++++++++ 10 files changed, 263 insertions(+), 46 deletions(-) create mode 100644 src/net/torvald/terrarum/ui/UIItemTextSelector.kt diff --git a/assets/locales/en/terrarum.json b/assets/locales/en/terrarum.json index 8c7b2ef08..5cddd8be8 100644 --- a/assets/locales/en/terrarum.json +++ b/assets/locales/en/terrarum.json @@ -13,5 +13,7 @@ "GAME_32BIT_WARNING2": "Please download and install the latest 64-Bit Java at:", "GAME_32BIT_WARNING3": "https://www.java.com/en/download/", "MENU_OPTION_STREAMERS_LAYOUT": "Chat Overlay Mode", - "MENU_LABEL_RESTART_REQUIRED": "Restart Required" + "MENU_LABEL_RESTART_REQUIRED": "Restart Required", + "MENU_LABEL_KEYBOARD_LAYOUT": "Keyboard Layout", + "MENU_LABEL_IME": "IME" } \ No newline at end of file diff --git a/assets/locales/koKR/terrarum.json b/assets/locales/koKR/terrarum.json index 5a7f7d250..eac454499 100644 --- a/assets/locales/koKR/terrarum.json +++ b/assets/locales/koKR/terrarum.json @@ -12,5 +12,7 @@ "GAME_32BIT_WARNING2": "아래 링크에서 최신 64비트 Java를 내려받아 설치해주세요.", "GAME_32BIT_WARNING3": "https://www.java.com/ko/download/", "MENU_OPTION_STREAMERS_LAYOUT": "스트리머 채팅창 모드", - "MENU_LABEL_RESTART_REQUIRED": "재시작 필요" + "MENU_LABEL_RESTART_REQUIRED": "재시작 필요", + "MENU_LABEL_KEYBOARD_LAYOUT": "자판 배열", + "MENU_LABEL_IME": "입력기" } diff --git a/lib/TerrarumSansBitmap.jar b/lib/TerrarumSansBitmap.jar index 3ebab9891bb13ed29465fc99ebac88d4c184b46a..b7b3a8ff01531ebd7b9883ac83b1c4050d812593 100644 GIT binary patch delta 63554 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 delta 63430 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 diff --git a/src/net/torvald/terrarum/App.java b/src/net/torvald/terrarum/App.java index 61cb149e7..51c8dca69 100644 --- a/src/net/torvald/terrarum/App.java +++ b/src/net/torvald/terrarum/App.java @@ -23,6 +23,7 @@ import net.torvald.terrarum.controller.GdxControllerAdapter; import net.torvald.terrarum.controller.TerrarumController; import net.torvald.terrarum.controller.XinputControllerAdapter; import net.torvald.terrarum.gameactors.BlockMarkerActor; +import net.torvald.terrarum.gamecontroller.IME; import net.torvald.terrarum.gamecontroller.KeyToggler; import net.torvald.terrarum.gameworld.GameWorld; import net.torvald.terrarum.imagefont.TinyAlphNum; @@ -178,6 +179,7 @@ public class App implements ApplicationListener { public static CreateTileAtlas tileMaker; public static GameFontBase fontGame; + public static GameFontBase fontGameFBO; public static TinyAlphNum fontSmallNumbers; /** A gamepad. Multiple gamepads may controll this single virtualised gamepad. */ @@ -491,20 +493,18 @@ public class App implements ApplicationListener { environment = RunningEnvironment.PC; }*/ - fontGame = new GameFontBase(FONT_DIR, false, true, false, Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest, false, 256, false, 0.5f, false ); + fontGameFBO = new GameFontBase(FONT_DIR, false, true, false, + Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest, false, + 64, false, 203f/255f, false + ); Lang.invoke(); // make loading list CommonResourcePool.INSTANCE.loadAll(); - - // create tile atlas - printdbg(this, "Making terrain textures..."); - tileMaker = new CreateTileAtlas(); - tileMaker.invoke(false); } @Override @@ -742,6 +742,7 @@ public class App implements ApplicationListener { shapeRender.dispose(); fontGame.dispose(); + fontGameFBO.dispose(); fontSmallNumbers.dispose(); ItemSlotImageFactory.INSTANCE.dispose(); @@ -823,6 +824,13 @@ public class App implements ApplicationListener { * Init stuffs which needs GL context */ private void postInit() { + // create tile atlas + printdbg(this, "Making terrain textures..."); + tileMaker = new CreateTileAtlas(); + tileMaker.invoke(false); + + IME.INSTANCE.invoke(); + Terrarum.initialise(); TextureRegionPack.Companion.setGlobalFlipY(true); diff --git a/src/net/torvald/terrarum/gamecontroller/IME.kt b/src/net/torvald/terrarum/gamecontroller/IME.kt index f78c678f0..4896d212b 100644 --- a/src/net/torvald/terrarum/gamecontroller/IME.kt +++ b/src/net/torvald/terrarum/gamecontroller/IME.kt @@ -1,6 +1,7 @@ package net.torvald.terrarum.gamecontroller -import com.badlogic.gdx.Gdx +import net.torvald.terrarum.App.printdbg +import java.io.File data class TerrarumKeyLayout( val name: String, @@ -24,9 +25,9 @@ data class TerrarumKeyLayout( object IME { const val KEYLAYOUT_DIR = "assets/keylayout/" - const val KEYLAYOUT_EXTENSION = ".key" + const val KEYLAYOUT_EXTENSION = "key" - private val cached = HashMap() + private val lowLayers = HashMap() private val context = org.graalvm.polyglot.Context.newBuilder("js") .allowHostAccess(org.graalvm.polyglot.HostAccess.NONE) @@ -34,16 +35,28 @@ object IME { .allowIO(false) .build() + init { + File(KEYLAYOUT_DIR).listFiles { file, s -> s.endsWith(".$KEYLAYOUT_EXTENSION") }.forEach { + printdbg(this, "Registering Low layer ${it.nameWithoutExtension.lowercase()}") + lowLayers[it.nameWithoutExtension.lowercase()] = parseKeylayoutFile(it) + } + } + + fun invoke() {} + fun getLowLayerByName(name: String): TerrarumKeyLayout { - return cached.getOrPut(name) { parseKeylayoutFile("$KEYLAYOUT_DIR$name$KEYLAYOUT_EXTENSION") } + return lowLayers[name.lowercase()]!! + } + + fun getAllLowLayers(): List { + return lowLayers.keys.toList() } - private fun parseKeylayoutFile(path: String): TerrarumKeyLayout { - val file = Gdx.files.internal(path) - val src = file.readString("UTF-8") - val jsval = context.eval("js", "let t=$src;Object.freeze(t)") + private fun parseKeylayoutFile(file: File): TerrarumKeyLayout { + val src = file.readText(Charsets.UTF_8) + val jsval = context.eval("js", "Object.freeze($src)") val name = jsval.getMember("n").asString() val out = Array(256) { Array(4) { null } } for (keycode in 0L until 256L) { diff --git a/src/net/torvald/terrarum/gamecontroller/IngameController.kt b/src/net/torvald/terrarum/gamecontroller/IngameController.kt index 6f70b4241..0bbc98632 100644 --- a/src/net/torvald/terrarum/gamecontroller/IngameController.kt +++ b/src/net/torvald/terrarum/gamecontroller/IngameController.kt @@ -289,7 +289,7 @@ class IngameController(val terrarumIngame: TerrarumIngame) : InputAdapter() { private var repeatCount = 0 private var oldKeys = IntArray(N_KEY_ROLLOVER) { 0 } /** always Low Layer */ - private var keymap = IME.getLowLayerByName(App.getConfigString("basekeyboardlayout")) +// private var keymap = IME.getLowLayerByName(App.getConfigString("basekeyboardlayout")) fun resetKeyboardStrobo() { stroboStatus = 0 @@ -301,6 +301,7 @@ class IngameController(val terrarumIngame: TerrarumIngame) : InputAdapter() { val keys = strobeKeys() var keyChanged = !arrayEq(keys, oldKeys) val keyDiff = arrayDiff(keys, oldKeys) + val keymap = IME.getLowLayerByName(App.getConfigString("basekeyboardlayout")) if (stroboStatus % 2 == 0 && keys[0] != 0) { stroboStatus += 1 @@ -308,8 +309,8 @@ class IngameController(val terrarumIngame: TerrarumIngame) : InputAdapter() { repeatCount += 1 val shiftin = keys.contains(Keys.SHIFT_LEFT) || keys.contains(Keys.SHIFT_RIGHT) - val keysym0 = keysToStr(keys) - val newKeysym0 = keysToStr(keyDiff) + val keysym0 = keysToStr(keymap, keys) + val newKeysym0 = keysToStr(keymap, keyDiff) val keysym = if (keysym0 == null) null else if (shiftin && keysym0[1]?.isNotBlank() == true) keysym0[1] else keysym0[0] @@ -342,7 +343,7 @@ class IngameController(val terrarumIngame: TerrarumIngame) : InputAdapter() { } } - private fun keysToStr(keys: IntArray): Array? { + private fun keysToStr(keymap: TerrarumKeyLayout, keys: IntArray): Array? { if (keys.size == 0) return null val headkey = keys[0] return if (keymap.symbols!![headkey] == null) null else keymap.symbols!![headkey] diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIKeyboardControlPanel.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIKeyboardControlPanel.kt index 41477f807..4b1e05ddd 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIKeyboardControlPanel.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIKeyboardControlPanel.kt @@ -6,11 +6,15 @@ 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.TextureRegion +import net.torvald.EMDASH import net.torvald.terrarum.App import net.torvald.terrarum.CommonResourcePool import net.torvald.terrarum.DefaultConfig +import net.torvald.terrarum.gamecontroller.IME import net.torvald.terrarum.langpack.Lang +import net.torvald.terrarum.linearSearch import net.torvald.terrarum.ui.* +import net.torvald.terrarum.utils.RandomWordsName import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack /** @@ -27,14 +31,16 @@ class UIKeyboardControlPanel(remoCon: UIRemoCon?) : UICanvas() { private val labels = CommonResourcePool.getAsTextureRegionPack("inventory_category") - override var width = 600 + override var width = 480 override var height = 600 override var openCloseTime = 0f + private val textSelWidth = 300 + private val drawX = (Toolkit.drawWidth - width) / 2 private val drawY = (App.scr.height - height) / 2 - internal val kbx = drawX + 61 + internal val kbx = drawX + 1 internal val kby = drawY + 95 private val oneu = 28 @@ -127,9 +133,25 @@ class UIKeyboardControlPanel(remoCon: UIRemoCon?) : UICanvas() { private val controlPalette = UIItemControlPaletteBaloon(this, (Toolkit.drawWidth - 480) / 2, kby + 219) - private val textInputPanel = UIItemTextLineInput(this, drawX, 360, width) + + private val lowLayerCodes = IME.getAllLowLayers() + private val lowLayerNames = lowLayerCodes.map { { IME.getLowLayerByName(it).name } } + private val keyboardLayoutSelection = UIItemTextSelector(this, drawX + width - textSelWidth - 3, 400, lowLayerNames, lowLayerCodes.linearSearch { it == App.getConfigString("basekeyboardlayout") }!!, textSelWidth) + + private val imeCodes = listOf("null", "ko_kr_2set_standard", "ko_kr_3set_390") + private val imeNames = listOf({ "$EMDASH" },{ "표준 두벌식" },{ "세벌식 3-90" }) + private val imeSelection = UIItemTextSelector(this, drawX + width - textSelWidth - 3, 440, imeNames, 0, textSelWidth) + + + + private val keyboardTestPanel = UIItemTextLineInput(this, drawX + (width - 480) / 2 + 3, 480, 474) + init { + keyboardLayoutSelection.selectionChangeListener = { + App.setConfig("basekeyboardlayout", lowLayerCodes[it]) + } + keycaps.values.forEach { addUIitem(it) } updateKeycaps() @@ -139,7 +161,9 @@ class UIKeyboardControlPanel(remoCon: UIRemoCon?) : UICanvas() { updateKeycaps() } - addUIitem(textInputPanel) + addUIitem(keyboardLayoutSelection) + addUIitem(imeSelection) + addUIitem(keyboardTestPanel) } private fun resetKeyConfig() { @@ -210,6 +234,8 @@ class UIKeyboardControlPanel(remoCon: UIRemoCon?) : UICanvas() { if (keycapClicked >= 0 && controlSelected < 0) { controlPalette.render(batch, camera) } + App.fontGame.draw(batch, Lang["MENU_LABEL_KEYBOARD_LAYOUT"], kbx + 1, keyboardLayoutSelection.initialY) + App.fontGame.draw(batch, Lang["MENU_LABEL_IME"], kbx + 1, imeSelection.initialY) val title = Lang["MENU_CONTROLS_KEYBOARD"] @@ -282,14 +308,14 @@ class UIItemKeycap( var selected = false private val borderKeyForbidden = Color(0x000000C0) - private val borderKeyNormal = Color(0xFFFFFFAA.toInt()) + private val borderKeyNormal = Toolkit.Theme.COL_INACTIVE private val borderMouseUp = Toolkit.Theme.COL_ACTIVE private val borderKeyPressed = Toolkit.Theme.COL_HIGHLIGHT private val borderKeyPressedAndSelected = Color(0x33FF33FF.toInt()) private val keycapFill = Toolkit.Theme.COL_CELL_FILL - private val keylabelCol = Color(0xFFFFFF40.toInt()) + private val keylabelCol = Toolkit.Theme.COL_DISABLED private val configuredKeyCol = Color.WHITE override fun update(delta: Float) { diff --git a/src/net/torvald/terrarum/ui/UIItem.kt b/src/net/torvald/terrarum/ui/UIItem.kt index 5e0af77c1..940a7b078 100644 --- a/src/net/torvald/terrarum/ui/UIItem.kt +++ b/src/net/torvald/terrarum/ui/UIItem.kt @@ -87,7 +87,7 @@ abstract class UIItem(var parentUI: UICanvas, val initialX: Int, val initialY: I /** If mouse is hovering over it */ open val mouseUp: Boolean - get() = relativeMouseX in 0..width - 1 && relativeMouseY in 0..height - 1 + get() = relativeMouseX in 0 until width && relativeMouseY in 0 until height /** If mouse is hovering over it and mouse is down */ open val mousePushed: Boolean get() = mouseUp && Terrarum.mouseDown diff --git a/src/net/torvald/terrarum/ui/UIItemTextLineInput.kt b/src/net/torvald/terrarum/ui/UIItemTextLineInput.kt index e190197a3..6efe28124 100644 --- a/src/net/torvald/terrarum/ui/UIItemTextLineInput.kt +++ b/src/net/torvald/terrarum/ui/UIItemTextLineInput.kt @@ -20,16 +20,17 @@ class UIItemTextLineInput( parentUI: UICanvas, initialX: Int, initialY: Int, override val width: Int, - override val height: Int = 24, - var placeholder: String? = null, + var placeholder: () -> String = { "" }, val enablePasteButton: Boolean = true, val enableLanguageButton: Boolean = false ) : UIItem(parentUI, initialX, initialY) { + override val height = 24 + companion object { val TEXTINPUT_COL_TEXT = Color.WHITE - val TEXTINPUT_COL_BORDER = Toolkit.Theme.COL_ACTIVE - val TEXTINPUT_COL_BORDER_INACTIVE = Toolkit.Theme.COL_INACTIVE + val TEXTINPUT_COL_TEXT_HALF = Color.WHITE.cpy().mul(1f,1f,1f,0.5f) + val TEXTINPUT_COL_TEXT_DISABLED = Toolkit.Theme.COL_DISABLED val TEXTINPUT_COL_BACKGROUND = Toolkit.Theme.COL_CELL_FILL const val CURSOR_BLINK_TIME = 1f / 3f } @@ -37,7 +38,6 @@ class UIItemTextLineInput( private val fbo = FrameBuffer(Pixmap.Format.RGBA8888, width - 4, height - 4, true) var isActive = true - var isGreyedOut = false var cursorX = 0 // 1 per char (not codepoint) var cursorCodepoint = 0 @@ -46,10 +46,12 @@ class UIItemTextLineInput( var cursorBlinkCounter = 0f var cursorOn = true - val keybuf = StringBuilder() + private val textbuf = StringBuilder() private var fboUpdateLatch = true + private var currentPlaceholderText = placeholder() // the placeholder text may change every time you call it + override fun update(delta: Float) { super.update(delta) @@ -64,22 +66,22 @@ class UIItemTextLineInput( if (cursorX > 0 && keycodes.contains(Input.Keys.BACKSPACE)) { cursorCodepoint -= 1 - val lastCp = keybuf.codePointAt(cursorCodepoint) + val lastCp = textbuf.codePointAt(cursorCodepoint) val charCount = Character.charCount(lastCp) cursorX -= charCount - keybuf.delete(cursorX, cursorX + charCount) + textbuf.delete(cursorX, cursorX + charCount) cursorDrawX -= App.fontGame.getWidth(String(Character.toChars(lastCp))) - 1 codepointCount -= 1 } else if (cursorX > 0 && keycodes.contains(Input.Keys.LEFT)) { cursorCodepoint -= 1 - cursorX -= Character.charCount(keybuf.codePointAt(cursorCodepoint)) - val lastCp = keybuf.codePointAt(cursorCodepoint) + cursorX -= Character.charCount(textbuf.codePointAt(cursorCodepoint)) + val lastCp = textbuf.codePointAt(cursorCodepoint) cursorDrawX -= App.fontGame.getWidth(String(Character.toChars(lastCp))) - 1 } else if (cursorX < codepointCount && keycodes.contains(Input.Keys.RIGHT)) { - val lastCp = keybuf.codePointAt(cursorCodepoint) + val lastCp = textbuf.codePointAt(cursorCodepoint) cursorDrawX += App.fontGame.getWidth(String(Character.toChars(lastCp))) - 1 cursorX += Character.charCount(lastCp) cursorCodepoint += 1 @@ -88,7 +90,7 @@ class UIItemTextLineInput( // - literal "<" // - keysymbol that does not start with "<" (not always has length of 1 because UTF-16) else if (char != null && char[0].code >= 32 && (char == "<" || !char.startsWith("<"))) { - keybuf.insert(cursorX, char) + textbuf.insert(cursorX, char) cursorDrawX += App.fontGame.getWidth(char) - 1 cursorX += char.length @@ -97,6 +99,10 @@ class UIItemTextLineInput( } } + if (cursorCodepoint == 0) { + currentPlaceholderText = placeholder() + } + cursorBlinkCounter += delta while (cursorBlinkCounter >= CURSOR_BLINK_TIME) { @@ -117,7 +123,7 @@ class UIItemTextLineInput( gdxClearAndSetBlend(0f, 0f, 0f, 0f) it.color = Color.WHITE - App.fontGame.draw(it, "$keybuf", 0f, 0f) + App.fontGameFBO.draw(it, if (textbuf.isEmpty()) currentPlaceholderText else "$textbuf", 0f, 0f) } } } @@ -126,19 +132,17 @@ class UIItemTextLineInput( batch.color = TEXTINPUT_COL_BACKGROUND Toolkit.fillArea(batch, posX, posY, width, height) - batch.color = if (isActive) TEXTINPUT_COL_BORDER else TEXTINPUT_COL_BORDER_INACTIVE + batch.color = if (isActive) Toolkit.Theme.COL_HIGHLIGHT else if (mouseUp) Toolkit.Theme.COL_ACTIVE else Toolkit.Theme.COL_INACTIVE Toolkit.drawBoxBorder(batch, posX - 1, posY - 1, width + 2, height + 2) - batch.color = TEXTINPUT_COL_TEXT + batch.color = if (textbuf.isEmpty()) TEXTINPUT_COL_TEXT_DISABLED else TEXTINPUT_COL_TEXT batch.draw(fbo.colorBufferTexture, posX + 2f, posY + 2f, fbo.width.toFloat(), fbo.height.toFloat()) if (isActive && cursorOn) { - val oldBatchCol = batch.color.cpy() - - batch.color = batch.color.mul(0.5f,0.5f,0.5f,1f) + batch.color = TEXTINPUT_COL_TEXT_HALF Toolkit.fillArea(batch, posX + cursorDrawX + 3, posY, 2, 24) - batch.color = oldBatchCol + batch.color = TEXTINPUT_COL_TEXT Toolkit.fillArea(batch, posX + cursorDrawX + 3, posY, 1, 23) } @@ -146,6 +150,9 @@ class UIItemTextLineInput( super.render(batch, camera) } + fun getText() = textbuf.toString() + fun getTextOrPlaceholder() = if (textbuf.isEmpty()) currentPlaceholderText else getText() + override fun dispose() { fbo.dispose() } diff --git a/src/net/torvald/terrarum/ui/UIItemTextSelector.kt b/src/net/torvald/terrarum/ui/UIItemTextSelector.kt new file mode 100644 index 000000000..1d27d9821 --- /dev/null +++ b/src/net/torvald/terrarum/ui/UIItemTextSelector.kt @@ -0,0 +1,158 @@ +package net.torvald.terrarum.ui + +import com.badlogic.gdx.graphics.Camera +import com.badlogic.gdx.graphics.Color +import com.badlogic.gdx.graphics.OrthographicCamera +import com.badlogic.gdx.graphics.Pixmap +import com.badlogic.gdx.graphics.g2d.SpriteBatch +import com.badlogic.gdx.graphics.glutils.FrameBuffer +import net.torvald.terrarum.* +import net.torvald.terrarum.gameworld.fmod +import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack + +/** + * @param width width of the text input where the text gets drawn, not the entire item + * @param height height of the text input where the text gets drawn, not the entire item + * + * Created by minjaesong on 2021-10-21. + */ +class UIItemTextSelector( + parentUI: UICanvas, + initialX: Int, initialY: Int, + val labelfuns: List<() -> String>, + intialSelection: Int, + override val width: Int, + private val drawBorder: Boolean = true +) : UIItem(parentUI, initialX, initialY) { + + init { + CommonResourcePool.addToLoadingList("inventory_category") { + TextureRegionPack("assets/graphics/gui/inventory/category.tga", 20, 20) + } + CommonResourcePool.loadAll() + } + + private val labels = CommonResourcePool.getAsTextureRegionPack("inventory_category") + + override val height = 24 + private val buttonW = 30 + + private val fbo = FrameBuffer(Pixmap.Format.RGBA8888, width - 54 - 4, height - 4, true) + + var selection = intialSelection + private var fboUpdateLatch = true + + private var mouseOnButton = 0 // 0: nothing, 1: left, 2: right + + var selectionChangeListener: (Int) -> Unit = {} + + override fun update(delta: Float) { + super.update(delta) + + mouseOnButton = + if (relativeMouseX in 0..buttonW && relativeMouseY in 0..height) + 1 + else if (relativeMouseX in width - buttonW..width && relativeMouseY in 0..height) + 2 + else + 0 + + if (!mouseLatched && Terrarum.mouseDown && mouseOnButton != 0) { + mouseLatched = true + selection = (selection + (mouseOnButton * 2) - 3) fmod labelfuns.size + fboUpdateLatch = true + selectionChangeListener(selection) + } + else if (!Terrarum.mouseDown) mouseLatched = false + } + + override fun render(batch: SpriteBatch, camera: Camera) { + + batch.end() + + if (fboUpdateLatch) { + fboUpdateLatch = false + fbo.inAction(camera as OrthographicCamera, batch) { batch.inUse { + gdxClearAndSetBlend(0f, 0f, 0f, 0f) + + it.color = Color.WHITE + val t = labelfuns[selection]() + val tw = App.fontGame.getWidth(t) + App.fontGameFBO.draw(it, t, (fbo.width - tw) / 2, 0) + } } + } + + batch.begin() + + if (drawBorder) { + batch.color = UIItemTextLineInput.TEXTINPUT_COL_BACKGROUND + // left button cell back + Toolkit.fillArea(batch, posX, posY, buttonW, height) + // text area cell back + Toolkit.fillArea(batch, posX + buttonW + 3, posY, width - 2*buttonW - 6, height) + // right button cell back + Toolkit.fillArea(batch, posX + width - buttonW, posY, buttonW, height) + + // text area border + batch.color = Toolkit.Theme.COL_INACTIVE + Toolkit.drawBoxBorder(batch, posX + buttonW + 2, posY - 1, width - 2*buttonW - 6 + 2, height + 2) + + // left button border + batch.color = if (mouseOnButton == 1 && mousePushed) Toolkit.Theme.COL_HIGHLIGHT + else if (mouseOnButton == 1) Toolkit.Theme.COL_ACTIVE else Toolkit.Theme.COL_INACTIVE + Toolkit.drawBoxBorder(batch, posX - 1, posY - 1, buttonW + 2, height + 2) + + // right button border + batch.color = if (mouseOnButton == 2 && mousePushed) Toolkit.Theme.COL_HIGHLIGHT + else if (mouseOnButton == 2) Toolkit.Theme.COL_ACTIVE else Toolkit.Theme.COL_INACTIVE + Toolkit.drawBoxBorder(batch, posX + width - buttonW - 1, posY - 1, buttonW + 2, height + 2) + } + + // left button icon + batch.color = if (mouseOnButton == 1 && mousePushed) Toolkit.Theme.COL_HIGHLIGHT + else if (mouseOnButton == 1) Toolkit.Theme.COL_ACTIVE else UIItemTextLineInput.TEXTINPUT_COL_TEXT + batch.draw(labels.get(16,0), posX + (buttonW - labels.tileW) / 2f, posY + (height - labels.tileH) / 2f) + + // right button icon + batch.color = if (mouseOnButton == 2 && mousePushed) Toolkit.Theme.COL_HIGHLIGHT + else if (mouseOnButton == 2) Toolkit.Theme.COL_ACTIVE else UIItemTextLineInput.TEXTINPUT_COL_TEXT + batch.draw(labels.get(17,0), posX + width - buttonW + (buttonW - labels.tileW) / 2f, posY + (height - labels.tileH) / 2f) + + // draw text + batch.color = UIItemTextLineInput.TEXTINPUT_COL_TEXT + batch.draw(fbo.colorBufferTexture, posX + buttonW + 5f, posY + 2f, fbo.width.toFloat(), fbo.height.toFloat()) + + + super.render(batch, camera) + } + + override fun dispose() { + fbo.dispose() + } +} + +class UIItemSpinner( + parentUI: UICanvas, + initialX: Int, initialY: Int, + intialValue: Int, + val min: Int, + val max: Int, + val step: Int, + override val width: Int +) : UIItem(parentUI, initialX, initialY) { + + init { + CommonResourcePool.addToLoadingList("inventory_category") { + TextureRegionPack("assets/graphics/gui/inventory/category.tga", 20, 20) + } + CommonResourcePool.loadAll() + } + + private val labels = CommonResourcePool.getAsTextureRegionPack("inventory_category") + + override val height = 24 + + override fun dispose() { + + } +}