mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-10 02:24:05 +09:00
fixed uiItem stupidity with uiCanvas; it activated even if its parent is invisible
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 20 KiB |
@@ -75,9 +75,9 @@ class UIItemInventoryCatBar(
|
|||||||
// procedurally generate texture
|
// procedurally generate texture
|
||||||
val pixmap = Pixmap(catIcons.tileW + buttonGapSize.floorInt(), 1, Pixmap.Format.RGBA8888)
|
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
|
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()
|
val col = /*if (x == 0)*/ /*0xffffff_80.toInt()*/
|
||||||
else if (x == 1) 0xffffff_c0.toInt()
|
/*else if (x == 1)*/ /*0xffffff_c0.toInt()*/
|
||||||
else 0xffffff_ff.toInt()
|
/*else */ 0xffffff_ff.toInt()
|
||||||
|
|
||||||
pixmap.drawPixel(x, 0, col)
|
pixmap.drawPixel(x, 0, col)
|
||||||
pixmap.drawPixel(pixmap.width - (x + 1), 0, col)
|
pixmap.drawPixel(pixmap.width - (x + 1), 0, col)
|
||||||
@@ -143,6 +143,10 @@ class UIItemInventoryCatBar(
|
|||||||
// colour determined by UI items themselves
|
// colour determined by UI items themselves
|
||||||
buttons.forEach { it.render(batch, camera) }
|
buttons.forEach { it.render(batch, camera) }
|
||||||
|
|
||||||
|
|
||||||
|
blendNormal(batch)
|
||||||
|
|
||||||
|
|
||||||
// underline
|
// underline
|
||||||
batch.color = underlineColour
|
batch.color = underlineColour
|
||||||
batch.drawStraightLine(posX.toFloat(), posY + height - 1f, posX + width.toFloat(), 1f, false)
|
batch.drawStraightLine(posX.toFloat(), posY + height - 1f, posX + width.toFloat(), 1f, false)
|
||||||
|
|||||||
@@ -111,9 +111,12 @@ class UIItemInventoryElemSimple(
|
|||||||
|
|
||||||
override fun keyDown(keycode: Int): Boolean {
|
override fun keyDown(keycode: Int): Boolean {
|
||||||
if (item != null && Terrarum.ingame != null && keycode in Input.Keys.NUM_1..Input.Keys.NUM_0) {
|
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 inventory = Terrarum.ingame!!.player.inventory
|
||||||
val slot = if (keycode == Input.Keys.NUM_0) 9 else keycode - Input.Keys.NUM_1
|
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(
|
inventory.setQuickBar(
|
||||||
@@ -137,6 +140,8 @@ class UIItemInventoryElemSimple(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
|
override fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
|
||||||
|
//println("touchdown elemgrid")
|
||||||
|
|
||||||
if (item != null && Terrarum.ingame != null) {
|
if (item != null && Terrarum.ingame != null) {
|
||||||
|
|
||||||
// equip da shit
|
// equip da shit
|
||||||
|
|||||||
@@ -111,39 +111,60 @@ abstract class UICanvas(
|
|||||||
}
|
}
|
||||||
|
|
||||||
open fun mouseMoved(screenX: Int, screenY: Int): Boolean {
|
open fun mouseMoved(screenX: Int, screenY: Int): Boolean {
|
||||||
uiItems.forEach { it.mouseMoved(screenX, screenY) }
|
if (this.isVisible) {
|
||||||
handler.subUIs.forEach { it.mouseMoved(screenX, screenY) }
|
uiItems.forEach { it.mouseMoved(screenX, screenY) }
|
||||||
return true
|
handler.subUIs.forEach { it.mouseMoved(screenX, screenY) }
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
else return false
|
||||||
}
|
}
|
||||||
open fun touchDragged(screenX: Int, screenY: Int, pointer: Int): Boolean {
|
open fun touchDragged(screenX: Int, screenY: Int, pointer: Int): Boolean {
|
||||||
uiItems.forEach { it.touchDragged(screenX, screenY, pointer) }
|
if (this.isVisible) {
|
||||||
handler.subUIs.forEach { it.touchDragged(screenX, screenY, pointer) }
|
uiItems.forEach { it.touchDragged(screenX, screenY, pointer) }
|
||||||
return true
|
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 {
|
open fun touchDown(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
|
||||||
uiItems.forEach { it.touchDown(screenX, screenY, pointer, button) }
|
if (this.isVisible) {
|
||||||
handler.subUIs.forEach { it.touchDown(screenX, screenY, pointer, button) }
|
uiItems.forEach { it.touchDown(screenX, screenY, pointer, button) }
|
||||||
return true
|
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 {
|
open fun touchUp(screenX: Int, screenY: Int, pointer: Int, button: Int): Boolean {
|
||||||
uiItems.forEach { it.touchUp(screenX, screenY, pointer, button) }
|
if (this.isVisible) {
|
||||||
handler.subUIs.forEach { it.touchUp(screenX, screenY, pointer, button) }
|
uiItems.forEach { it.touchUp(screenX, screenY, pointer, button) }
|
||||||
return true
|
handler.subUIs.forEach { it.touchUp(screenX, screenY, pointer, button) }
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
else return false
|
||||||
}
|
}
|
||||||
open fun scrolled(amount: Int): Boolean {
|
open fun scrolled(amount: Int): Boolean {
|
||||||
uiItems.forEach { it.scrolled(amount) }
|
if (this.isVisible) {
|
||||||
handler.subUIs.forEach { it.scrolled(amount) }
|
uiItems.forEach { it.scrolled(amount) }
|
||||||
return true
|
handler.subUIs.forEach { it.scrolled(amount) }
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
else return false
|
||||||
}
|
}
|
||||||
open fun keyDown(keycode: Int): Boolean {
|
open fun keyDown(keycode: Int): Boolean {
|
||||||
uiItems.forEach { it.keyDown(keycode) }
|
if (this.isVisible) {
|
||||||
handler.subUIs.forEach { it.keyDown(keycode) }
|
uiItems.forEach { it.keyDown(keycode) }
|
||||||
return true
|
handler.subUIs.forEach { it.keyDown(keycode) }
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
else return false
|
||||||
}
|
}
|
||||||
open fun keyUp(keycode: Int): Boolean {
|
open fun keyUp(keycode: Int): Boolean {
|
||||||
uiItems.forEach { it.keyUp(keycode) }
|
if (this.isVisible) {
|
||||||
handler.subUIs.forEach { it.keyUp(keycode) }
|
uiItems.forEach { it.keyUp(keycode) }
|
||||||
return true
|
handler.subUIs.forEach { it.keyUp(keycode) }
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
else return false
|
||||||
}
|
}
|
||||||
open fun keyTyped(character: Char): Boolean {
|
open fun keyTyped(character: Char): Boolean {
|
||||||
return false
|
return false
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package net.torvald.terrarum.ui
|
package net.torvald.terrarum.ui
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx
|
||||||
import com.badlogic.gdx.graphics.Camera
|
import com.badlogic.gdx.graphics.Camera
|
||||||
|
import com.badlogic.gdx.graphics.GL20
|
||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import net.torvald.terrarum.RunningEnvironment
|
import net.torvald.terrarum.RunningEnvironment
|
||||||
import net.torvald.terrarum.Terrarum
|
import net.torvald.terrarum.Terrarum
|
||||||
@@ -89,10 +91,21 @@ class UIInventoryFull(
|
|||||||
addItem(it)
|
addItem(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
catBar.selectionChangeListener = { old, new -> rebuildList() }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
rebuildList()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
override fun updateUI(delta: Float) {
|
override fun updateUI(delta: Float) {
|
||||||
|
if (handler.openFired) {
|
||||||
|
rebuildList()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
catBar.update(delta)
|
catBar.update(delta)
|
||||||
itemList?.update(delta)
|
itemList?.update(delta)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,17 +61,17 @@ abstract class UIItem(var parentUI: UICanvas) { // do not replace parentUI to UI
|
|||||||
|
|
||||||
|
|
||||||
// kind of listener implementation
|
// kind of listener implementation
|
||||||
var updateListener: ((Float) -> Unit)? = null
|
open var updateListener: ((Float) -> Unit)? = null
|
||||||
var keyDownListener: ((Int) -> Unit)? = null
|
open var keyDownListener: ((Int) -> Unit)? = null
|
||||||
var keyUpListener: ((Int) -> Unit)? = null
|
open var keyUpListener: ((Int) -> Unit)? = null
|
||||||
var mouseMovedListener: ((Int, Int) -> Unit)? = null
|
open var mouseMovedListener: ((Int, Int) -> Unit)? = null
|
||||||
var touchDraggedListener: ((Int, Int, Int) -> Unit)? = null
|
open var touchDraggedListener: ((Int, Int, Int) -> Unit)? = null
|
||||||
var touchDownListener: ((Int, Int, Int, Int) -> Unit)? = null
|
open var touchDownListener: ((Int, Int, Int, Int) -> Unit)? = null
|
||||||
var touchUpListener: ((Int, Int, Int, Int) -> Unit)? = null
|
open var touchUpListener: ((Int, Int, Int, Int) -> Unit)? = null
|
||||||
var scrolledListener: ((Int) -> Unit)? = null
|
open var scrolledListener: ((Int) -> Unit)? = null
|
||||||
|
|
||||||
var clickOnceListener: ((Int, Int, Int) -> Unit)? = null
|
open var clickOnceListener: ((Int, Int, Int) -> Unit)? = null
|
||||||
var clickOnceListenerFired = false
|
open var clickOnceListenerFired = false
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ class UIItemInventoryDynamicList(
|
|||||||
private val selectedIcon: Int
|
private val selectedIcon: Int
|
||||||
get() = inventoryUI.catSelectedIcon
|
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 itemPage = 0
|
||||||
var itemPageCount = 1 // TODO total size of current category / items.size
|
var itemPageCount = 1 // TODO total size of current category / items.size
|
||||||
@@ -190,4 +190,35 @@ class UIItemInventoryDynamicList(
|
|||||||
itemList.forEach { it.dispose() }
|
itemList.forEach { it.dispose() }
|
||||||
itemGrid.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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user