mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-13 20:14:05 +09:00
debugging thing update
This commit is contained in:
@@ -10,6 +10,7 @@ import net.torvald.terrarum.ui.*
|
|||||||
import net.torvald.unicode.getKeycapPC
|
import net.torvald.unicode.getKeycapPC
|
||||||
import java.lang.reflect.Field
|
import java.lang.reflect.Field
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -37,6 +38,10 @@ class UIDebugInventron : UICanvas(
|
|||||||
private val analyserPosY = UITemplateHalfInventory.YOFFSET
|
private val analyserPosY = UITemplateHalfInventory.YOFFSET
|
||||||
private val analyserPosY2 = UITemplateHalfInventory.YOFFSET + UIItemInventoryElemWide.height + UIItemInventoryItemGrid.listGap
|
private val analyserPosY2 = UITemplateHalfInventory.YOFFSET + UIItemInventoryElemWide.height + UIItemInventoryItemGrid.listGap
|
||||||
|
|
||||||
|
private val analyserWidth: Int
|
||||||
|
private val analyserHeight: Int
|
||||||
|
|
||||||
|
private val analyserScroll: UIItemVertSlider
|
||||||
|
|
||||||
init {
|
init {
|
||||||
catBar = UIItemCatBar(
|
catBar = UIItemCatBar(
|
||||||
@@ -96,6 +101,18 @@ class UIDebugInventron : UICanvas(
|
|||||||
keyDownFun = { _, _, _, _, _ -> },
|
keyDownFun = { _, _, _, _, _ -> },
|
||||||
touchDownFun = { _, _, _, _, _ -> selectedItem = null; refreshAnalysis() },
|
touchDownFun = { _, _, _, _, _ -> selectedItem = null; refreshAnalysis() },
|
||||||
wheelFun = { _, _, _, _, _, _ -> }
|
wheelFun = { _, _, _, _, _, _ -> }
|
||||||
|
).also {
|
||||||
|
it.showItemCount = false
|
||||||
|
}
|
||||||
|
|
||||||
|
analyserWidth = itemListPlayer.itemList.width
|
||||||
|
analyserHeight = itemListPlayer.itemList.height - (analyserPosY2 - analyserPosY)
|
||||||
|
|
||||||
|
|
||||||
|
analyserScroll = UIItemVertSlider(this,
|
||||||
|
analyserPosX - 18,
|
||||||
|
analyserPosY2 + 1,
|
||||||
|
0.0, 0.0, 1.0, analyserHeight - 2, analyserHeight - 2
|
||||||
)
|
)
|
||||||
|
|
||||||
handler.allowESCtoClose = true
|
handler.allowESCtoClose = true
|
||||||
@@ -103,13 +120,14 @@ class UIDebugInventron : UICanvas(
|
|||||||
addUIitem(catBar)
|
addUIitem(catBar)
|
||||||
addUIitem(itemListPlayer)
|
addUIitem(itemListPlayer)
|
||||||
addUIitem(selectedItemSlot)
|
addUIitem(selectedItemSlot)
|
||||||
|
addUIitem(analyserScroll)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun show() {
|
override fun show() {
|
||||||
super.show()
|
super.show()
|
||||||
|
|
||||||
itemListPlayer.itemList.getInventory = { INGAME.actorNowPlaying!!.inventory }
|
itemListPlayer.itemList.getInventory = { INGAME.actorNowPlaying!!.inventory }
|
||||||
selectedItem = null
|
selectedItem = null; refreshAnalysis()
|
||||||
|
|
||||||
itemListUpdate()
|
itemListUpdate()
|
||||||
}
|
}
|
||||||
@@ -147,9 +165,9 @@ class UIDebugInventron : UICanvas(
|
|||||||
|
|
||||||
// analyser view
|
// analyser view
|
||||||
batch.color = Color(0x7F)
|
batch.color = Color(0x7F)
|
||||||
Toolkit.fillArea(batch, analyserPosX, analyserPosY2, itemListPlayer.itemList.width, itemListPlayer.itemList.height - (analyserPosY2 - analyserPosY))
|
Toolkit.fillArea(batch, analyserPosX, analyserPosY2, analyserWidth, analyserHeight)
|
||||||
batch.color = Toolkit.Theme.COL_INACTIVE
|
batch.color = Toolkit.Theme.COL_INACTIVE
|
||||||
Toolkit.drawBoxBorder(batch, analyserPosX, analyserPosY2, itemListPlayer.itemList.width, itemListPlayer.itemList.height - (analyserPosY2 - analyserPosY))
|
Toolkit.drawBoxBorder(batch, analyserPosX, analyserPosY2, analyserWidth, analyserHeight)
|
||||||
|
|
||||||
batch.color = Color.WHITE
|
batch.color = Color.WHITE
|
||||||
drawAnalysis(batch)
|
drawAnalysis(batch)
|
||||||
@@ -193,15 +211,15 @@ class UIDebugInventron : UICanvas(
|
|||||||
return fields
|
return fields
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun refreshAnalysis() {
|
private val TEXT_LINE_HEIGHT = 24
|
||||||
selectedItemSlot.item = selectedItem
|
|
||||||
|
|
||||||
|
private fun refreshAnalysis() {
|
||||||
analysisTextBuffer = ArrayList<String>()
|
analysisTextBuffer = ArrayList<String>()
|
||||||
|
|
||||||
|
// update wall of text
|
||||||
if (selectedItem != null) {
|
if (selectedItem != null) {
|
||||||
/*analysisTextBuffer = selectedItem!!.javaClass.fields.map {
|
selectedItemSlot.item = selectedItem
|
||||||
it.isAccessible = true
|
selectedItemSlot.itemImage = selectedItem!!.itemImage
|
||||||
"$ccY${it.name}$ccW($ccO${it.type.simpleName}$ccW) = $ccG${it.get(selectedItem!!)}"
|
|
||||||
}*/
|
|
||||||
|
|
||||||
val fields: ArrayList<Field> = ArrayList<Field>()
|
val fields: ArrayList<Field> = ArrayList<Field>()
|
||||||
getAllFields(fields, selectedItem!!.javaClass)
|
getAllFields(fields, selectedItem!!.javaClass)
|
||||||
@@ -218,11 +236,22 @@ class UIDebugInventron : UICanvas(
|
|||||||
catch (e: Throwable) {}
|
catch (e: Throwable) {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
selectedItemSlot.item = null
|
||||||
|
}
|
||||||
|
|
||||||
|
// update scrollbar
|
||||||
|
analyserScroll.isEnabled = (selectedItem == null)
|
||||||
|
analyserScroll.handleHeight = if (analysisTextBuffer.isEmpty() || selectedItem == null)
|
||||||
|
analyserHeight
|
||||||
|
else
|
||||||
|
(analyserHeight.toFloat() / analysisTextBuffer.size.times(TEXT_LINE_HEIGHT)).times(analyserHeight).roundToInt().coerceIn(12, analyserHeight)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun drawAnalysis(batch: SpriteBatch) {
|
private fun drawAnalysis(batch: SpriteBatch) {
|
||||||
|
val scroll = (analyserScroll.value * analysisTextBuffer.size.times(TEXT_LINE_HEIGHT).minus(analyserHeight - 3)).roundToInt().coerceAtLeast(0)
|
||||||
analysisTextBuffer.forEachIndexed { index, s ->
|
analysisTextBuffer.forEachIndexed { index, s ->
|
||||||
App.fontGame.draw(batch, s, analyserPosX + 6, analyserPosY2 + 3 + index * 24)
|
App.fontGame.draw(batch, s, analyserPosX + 6, analyserPosY2 + 3 + index * TEXT_LINE_HEIGHT - scroll)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,17 +30,27 @@ class UIItemHorzSlider(
|
|||||||
val min: Double,
|
val min: Double,
|
||||||
val max: Double,
|
val max: Double,
|
||||||
override val width: Int,
|
override val width: Int,
|
||||||
val handleWidth: Int = 12,
|
initialHandleWidth: Int = 12,
|
||||||
private val backgroundTexture: TextureRegion? = null,
|
private val backgroundTexture: TextureRegion? = null,
|
||||||
private val disposeTexture: Boolean = false
|
private val disposeTexture: Boolean = false
|
||||||
) : UIItem(parentUI, initialX, initialY) {
|
) : UIItem(parentUI, initialX, initialY) {
|
||||||
|
|
||||||
override var suppressHaptic = false
|
override var suppressHaptic = false
|
||||||
|
|
||||||
|
var handleWidth: Int = initialHandleWidth
|
||||||
|
set(value) {
|
||||||
|
// reset the scroll status
|
||||||
|
handlePos = 0.0
|
||||||
|
this.value = 0.0
|
||||||
|
field = value
|
||||||
|
|
||||||
|
handleTravelDist = width - value
|
||||||
|
}
|
||||||
|
|
||||||
override val height = 24
|
override val height = 24
|
||||||
private var mouseOnHandle = false
|
private var mouseOnHandle = false
|
||||||
|
|
||||||
private val handleTravelDist = width - handleWidth
|
private var handleTravelDist = width - handleWidth
|
||||||
private var handlePos = (initialValue / max).times(handleTravelDist).coerceIn(0.0, handleTravelDist.toDouble())
|
private var handlePos = (initialValue / max).times(handleTravelDist).coerceIn(0.0, handleTravelDist.toDouble())
|
||||||
|
|
||||||
var value: Double = initialValue; private set
|
var value: Double = initialValue; private set
|
||||||
|
|||||||
@@ -23,13 +23,23 @@ class UIItemVertSlider(
|
|||||||
val min: Double,
|
val min: Double,
|
||||||
val max: Double,
|
val max: Double,
|
||||||
override val height: Int,
|
override val height: Int,
|
||||||
val handleHeight: Int = 12,
|
initialHandleHeight: Int = 12,
|
||||||
private val backgroundTexture: TextureRegion? = null,
|
private val backgroundTexture: TextureRegion? = null,
|
||||||
private val disposeTexture: Boolean = false
|
private val disposeTexture: Boolean = false
|
||||||
) : UIItem(parentUI, initialX, initialY) {
|
) : UIItem(parentUI, initialX, initialY) {
|
||||||
|
|
||||||
override var suppressHaptic = false
|
override var suppressHaptic = false
|
||||||
|
|
||||||
|
var handleHeight: Int = initialHandleHeight
|
||||||
|
set(value) {
|
||||||
|
// reset the scroll status
|
||||||
|
handlePos = 0.0
|
||||||
|
this.value = 0.0
|
||||||
|
field = value
|
||||||
|
|
||||||
|
handleTravelDist = height - value
|
||||||
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val WIDTH = 16
|
const val WIDTH = 16
|
||||||
}
|
}
|
||||||
@@ -37,7 +47,7 @@ class UIItemVertSlider(
|
|||||||
override val width = WIDTH
|
override val width = WIDTH
|
||||||
private var mouseOnHandle = false
|
private var mouseOnHandle = false
|
||||||
|
|
||||||
private val handleTravelDist = height - handleHeight
|
private var handleTravelDist = height - handleHeight
|
||||||
private var handlePos = if (max == 0.0) 0.0 else (initialValue / max).times(handleTravelDist).coerceIn(0.0, handleTravelDist.toDouble())
|
private var handlePos = if (max == 0.0) 0.0 else (initialValue / max).times(handleTravelDist).coerceIn(0.0, handleTravelDist.toDouble())
|
||||||
|
|
||||||
var value: Double = initialValue; private set
|
var value: Double = initialValue; private set
|
||||||
|
|||||||
Reference in New Issue
Block a user