diff --git a/assets/testimage2.png b/assets/testimage2.png deleted file mode 100644 index 266935e75..000000000 Binary files a/assets/testimage2.png and /dev/null differ diff --git a/src/net/torvald/terrarum/UIItemInventoryCatBar.kt b/src/net/torvald/terrarum/UIItemInventoryCatBar.kt index 647b03f8b..70640fc37 100644 --- a/src/net/torvald/terrarum/UIItemInventoryCatBar.kt +++ b/src/net/torvald/terrarum/UIItemInventoryCatBar.kt @@ -75,9 +75,9 @@ class UIItemInventoryCatBar( // procedurally generate texture val pixmap = Pixmap(catIcons.tileW + buttonGapSize.floorInt(), 1, Pixmap.Format.RGBA8888) for (x in 0 until pixmap.width.plus(1).ushr(1)) { // eqv. of ceiling the half-int - val col = if (x == 0) 0xffffff_80.toInt() - else if (x == 1) 0xffffff_c0.toInt() - else 0xffffff_ff.toInt() + val col = /*if (x == 0)*/ /*0xffffff_80.toInt()*/ + /*else if (x == 1)*/ /*0xffffff_c0.toInt()*/ + /*else */ 0xffffff_ff.toInt() pixmap.drawPixel(x, 0, col) pixmap.drawPixel(pixmap.width - (x + 1), 0, col) @@ -143,6 +143,10 @@ class UIItemInventoryCatBar( // colour determined by UI items themselves buttons.forEach { it.render(batch, camera) } + + blendNormal(batch) + + // underline batch.color = underlineColour batch.drawStraightLine(posX.toFloat(), posY + height - 1f, posX + width.toFloat(), 1f, false) diff --git a/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt b/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt index 6bdccb193..f5a5b171f 100644 --- a/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt +++ b/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt @@ -111,9 +111,12 @@ class UIItemInventoryElemSimple( override fun keyDown(keycode: Int): Boolean { if (item != null && Terrarum.ingame != null && keycode in Input.Keys.NUM_1..Input.Keys.NUM_0) { + println("keydown elemgrid") + + val inventory = Terrarum.ingame!!.player.inventory val slot = if (keycode == Input.Keys.NUM_0) 9 else keycode - Input.Keys.NUM_1 - val currentSlotItem = inventory?.getQuickBar(slot) + val currentSlotItem = inventory.getQuickBar(slot) inventory.setQuickBar( @@ -137,6 +140,8 @@ class UIItemInventoryElemSimple( } override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean { + //println("touchdown elemgrid") + if (item != null && Terrarum.ingame != null) { // equip da shit diff --git a/src/net/torvald/terrarum/ui/UICanvas.kt b/src/net/torvald/terrarum/ui/UICanvas.kt index 8c57dc378..776026cde 100644 --- a/src/net/torvald/terrarum/ui/UICanvas.kt +++ b/src/net/torvald/terrarum/ui/UICanvas.kt @@ -111,39 +111,60 @@ abstract class UICanvas( } open fun mouseMoved(screenX: Int, screenY: Int): Boolean { - uiItems.forEach { it.mouseMoved(screenX, screenY) } - handler.subUIs.forEach { it.mouseMoved(screenX, screenY) } - return true + if (this.isVisible) { + uiItems.forEach { it.mouseMoved(screenX, screenY) } + handler.subUIs.forEach { it.mouseMoved(screenX, screenY) } + return true + } + else return false } open fun touchDragged(screenX: Int, screenY: Int, pointer: Int): Boolean { - uiItems.forEach { it.touchDragged(screenX, screenY, pointer) } - handler.subUIs.forEach { it.touchDragged(screenX, screenY, pointer) } - return true + if (this.isVisible) { + uiItems.forEach { it.touchDragged(screenX, screenY, pointer) } + handler.subUIs.forEach { it.touchDragged(screenX, screenY, pointer) } + return true + } + else return false } open fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean { - uiItems.forEach { it.touchDown(screenX, screenY, pointer, button) } - handler.subUIs.forEach { it.touchDown(screenX, screenY, pointer, button) } - return true + if (this.isVisible) { + uiItems.forEach { it.touchDown(screenX, screenY, pointer, button) } + handler.subUIs.forEach { it.touchDown(screenX, screenY, pointer, button) } + return true + } + else return false } open fun touchUp(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean { - uiItems.forEach { it.touchUp(screenX, screenY, pointer, button) } - handler.subUIs.forEach { it.touchUp(screenX, screenY, pointer, button) } - return true + if (this.isVisible) { + uiItems.forEach { it.touchUp(screenX, screenY, pointer, button) } + handler.subUIs.forEach { it.touchUp(screenX, screenY, pointer, button) } + return true + } + else return false } open fun scrolled(amount: Int): Boolean { - uiItems.forEach { it.scrolled(amount) } - handler.subUIs.forEach { it.scrolled(amount) } - return true + if (this.isVisible) { + uiItems.forEach { it.scrolled(amount) } + handler.subUIs.forEach { it.scrolled(amount) } + return true + } + else return false } open fun keyDown(keycode: Int): Boolean { - uiItems.forEach { it.keyDown(keycode) } - handler.subUIs.forEach { it.keyDown(keycode) } - return true + if (this.isVisible) { + uiItems.forEach { it.keyDown(keycode) } + handler.subUIs.forEach { it.keyDown(keycode) } + return true + } + else return false } open fun keyUp(keycode: Int): Boolean { - uiItems.forEach { it.keyUp(keycode) } - handler.subUIs.forEach { it.keyUp(keycode) } - return true + if (this.isVisible) { + uiItems.forEach { it.keyUp(keycode) } + handler.subUIs.forEach { it.keyUp(keycode) } + return true + } + else return false } open fun keyTyped(character: Char): Boolean { return false diff --git a/src/net/torvald/terrarum/ui/UIInventoryFull.kt b/src/net/torvald/terrarum/ui/UIInventoryFull.kt index 5f5caf870..434b54374 100644 --- a/src/net/torvald/terrarum/ui/UIInventoryFull.kt +++ b/src/net/torvald/terrarum/ui/UIInventoryFull.kt @@ -1,6 +1,8 @@ package net.torvald.terrarum.ui +import com.badlogic.gdx.Gdx import com.badlogic.gdx.graphics.Camera +import com.badlogic.gdx.graphics.GL20 import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.RunningEnvironment import net.torvald.terrarum.Terrarum @@ -89,10 +91,21 @@ class UIInventoryFull( addItem(it) } + + catBar.selectionChangeListener = { old, new -> rebuildList() } + + + + rebuildList() } override fun updateUI(delta: Float) { + if (handler.openFired) { + rebuildList() + } + + catBar.update(delta) itemList?.update(delta) } diff --git a/src/net/torvald/terrarum/ui/UIItem.kt b/src/net/torvald/terrarum/ui/UIItem.kt index 50e34a606..94821da9b 100644 --- a/src/net/torvald/terrarum/ui/UIItem.kt +++ b/src/net/torvald/terrarum/ui/UIItem.kt @@ -61,17 +61,17 @@ abstract class UIItem(var parentUI: UICanvas) { // do not replace parentUI to UI // kind of listener implementation - var updateListener: ((Float) -> Unit)? = null - var keyDownListener: ((Int) -> Unit)? = null - var keyUpListener: ((Int) -> Unit)? = null - var mouseMovedListener: ((Int, Int) -> Unit)? = null - var touchDraggedListener: ((Int, Int, Int) -> Unit)? = null - var touchDownListener: ((Int, Int, Int, Int) -> Unit)? = null - var touchUpListener: ((Int, Int, Int, Int) -> Unit)? = null - var scrolledListener: ((Int) -> Unit)? = null + open var updateListener: ((Float) -> Unit)? = null + open var keyDownListener: ((Int) -> Unit)? = null + open var keyUpListener: ((Int) -> Unit)? = null + open var mouseMovedListener: ((Int, Int) -> Unit)? = null + open var touchDraggedListener: ((Int, Int, Int) -> Unit)? = null + open var touchDownListener: ((Int, Int, Int, Int) -> Unit)? = null + open var touchUpListener: ((Int, Int, Int, Int) -> Unit)? = null + open var scrolledListener: ((Int) -> Unit)? = null - var clickOnceListener: ((Int, Int, Int) -> Unit)? = null - var clickOnceListenerFired = false + open var clickOnceListener: ((Int, Int, Int) -> Unit)? = null + open var clickOnceListenerFired = false diff --git a/src/net/torvald/terrarum/ui/UIItemInventoryDynamicList.kt b/src/net/torvald/terrarum/ui/UIItemInventoryDynamicList.kt index 5da035cea..71360e361 100644 --- a/src/net/torvald/terrarum/ui/UIItemInventoryDynamicList.kt +++ b/src/net/torvald/terrarum/ui/UIItemInventoryDynamicList.kt @@ -59,7 +59,7 @@ class UIItemInventoryDynamicList( private val selectedIcon: Int get() = inventoryUI.catSelectedIcon - private val compactViewCat = setOf(4, 6, 7, 9) // potions, blocks, walls, all (spritesheet order) + private val compactViewCat = setOf(3, 4, 6, 7, 9) // ingredients, potions, blocks, walls, all (spritesheet order) var itemPage = 0 var itemPageCount = 1 // TODO total size of current category / items.size @@ -190,4 +190,35 @@ class UIItemInventoryDynamicList( itemList.forEach { it.dispose() } itemGrid.forEach { it.dispose() } } + + override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean { + super.touchDown(screenX, screenY, pointer, button) + + items.forEach { if (it.mouseUp) it.touchDown(screenX, screenY, pointer, button) } + return true + } + + override fun touchUp(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean { + items.forEach { if (it.mouseUp) it.touchUp(screenX, screenY, pointer, button) } + + return true + } + + override fun keyDown(keycode: Int): Boolean { + super.keyDown(keycode) + + items.forEach { if (it.mouseUp) it.keyDown(keycode) } + rebuild() + + return true + } + + override fun keyUp(keycode: Int): Boolean { + super.keyUp(keycode) + + items.forEach { if (it.mouseUp) it.keyUp(keycode) } + rebuild() + + return true + } }