From 5a0bf987378eb919daea52f36659867d95949c79 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Thu, 24 Oct 2019 20:56:56 +0900 Subject: [PATCH] added missing code pieces --- src/net/torvald/terrarum/tests/UIElemTest.kt | 31 +++++++++++++------ .../torvald/terrarum/ui/UIItemConfigKeycap.kt | 13 +++++--- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/src/net/torvald/terrarum/tests/UIElemTest.kt b/src/net/torvald/terrarum/tests/UIElemTest.kt index 3cd487e64..1d1981894 100644 --- a/src/net/torvald/terrarum/tests/UIElemTest.kt +++ b/src/net/torvald/terrarum/tests/UIElemTest.kt @@ -2,6 +2,7 @@ package net.torvald.terrarum.tests import com.badlogic.gdx.ApplicationAdapter import com.badlogic.gdx.Gdx +import com.badlogic.gdx.Input import com.badlogic.gdx.backends.lwjgl.LwjglApplication import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration import com.badlogic.gdx.graphics.Camera @@ -13,10 +14,7 @@ import com.badlogic.gdx.graphics.glutils.ShaderProgram import com.badlogic.gdx.graphics.glutils.ShapeRenderer import com.jme3.math.FastMath import net.torvald.terrarum.* -import net.torvald.terrarum.ui.UICanvas -import net.torvald.terrarum.ui.UIItem -import net.torvald.terrarum.ui.UIItemTextButton -import net.torvald.terrarum.ui.UIItemToggleButton +import net.torvald.terrarum.ui.* import kotlin.math.roundToInt /** @@ -53,7 +51,12 @@ class UIElemTest : ApplicationAdapter() { } class DummyTogglePane : UICanvas() { - private val button1 = UIItemToggleButton(this, 10, 10) + private val button1 = UIItemToggleButton(this, 0, 0) + + private val key1 = UIItemConfigKeycap(this, 0, 20, 4, Input.Keys.A) + private val key2 = UIItemConfigKeycap(this, 36, 20, 4, Input.Keys.S) + private val key3 = UIItemConfigKeycap(this, 36*2, 20, 4, Input.Keys.D) + private val key4 = UIItemConfigKeycap(this, 36*3, 20, 4, Input.Keys.F) override var width = 100 override var height = 25 @@ -62,21 +65,29 @@ class DummyTogglePane : UICanvas() { private var timer = 0f + init { + uiItems.add(button1) + uiItems.add(key1) + uiItems.add(key2) + uiItems.add(key3) + uiItems.add(key4) + } + override fun updateUI(delta: Float) { timer += delta - if (timer >= 1.5f) { - timer -= 1.5f + if (timer >= 1f) { + timer -= 1f button1.toggle() } - button1.update(delta) + uiItems.forEach { it.update(delta) } } override fun renderUI(batch: SpriteBatch, camera: Camera) { batch.inUse { - batch.color = Color(0x404040ff) - button1.render(batch, camera) + + uiItems.forEach { it.render(batch, camera) } } } diff --git a/src/net/torvald/terrarum/ui/UIItemConfigKeycap.kt b/src/net/torvald/terrarum/ui/UIItemConfigKeycap.kt index d8c15a57b..8b0c6fedc 100644 --- a/src/net/torvald/terrarum/ui/UIItemConfigKeycap.kt +++ b/src/net/torvald/terrarum/ui/UIItemConfigKeycap.kt @@ -5,6 +5,7 @@ import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.AppLoader import net.torvald.terrarum.CommonResourcePool +import net.torvald.terrarum.imagefont.TinyAlphNum import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack /** @@ -18,14 +19,14 @@ class UIItemConfigKeycap( private val keySize: Int, private val keycode: Int, // also used to draw key label - private var keyItem: Int // internal index for the key's behaviour, also used to choose appropriate icon + private var keyItem: Int? = null // internal index for the key's behaviour, also used to choose appropriate icon ) : UIItem(parent) { init { if (keySize < 3) throw IllegalArgumentException("Key size must be greater than 2 (got $keySize)") CommonResourcePool.addToLoadingList("ui_item_keymap_keycap") { - TextureRegionPack("./assets/graphics/gui/ui_config_keymap_keycap.tga", 4, 32) + TextureRegionPack("./assets/graphics/gui/ui_config_keymap_keycap.tga", 8, 32) } CommonResourcePool.loadAll() } @@ -51,13 +52,17 @@ class UIItemConfigKeycap( batch.draw(capTex.get(2, 0), (posX + (keySize - 1) * capTex.tileW).toFloat(), posY.toFloat()) // draw label - AppLoader.fontSmallNumbers.draw(batch, KeyDict.keycodeToLabel[keycode]!!, posX + 2f, posY + 2f) + TinyAlphNum.draw(batch, KeyDict.keycodeToLabel[keycode]!!, posX + 2f, posY + 2f) // draw icon super.render(batch, camera) } + + override fun dispose() { + + } } @@ -201,7 +206,7 @@ object KeyDict { init { keyDict.forEach { - keycodeToLabel[it[1]] = it[2] + keycodeToLabel[it[1] as Int] = it[2] as String } }