mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-14 04:24:05 +09:00
fixed uiItem stupidity with uiCanvas; it activated even if its parent is invisible
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user