two column inventory for storagechest wip

This commit is contained in:
minjaesong
2021-03-16 11:51:32 +09:00
parent 0496366057
commit 76f5d0a924
6 changed files with 115 additions and 52 deletions

View File

@@ -3,16 +3,23 @@ package net.torvald.terrarum.modulebasegame.gameactors
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.glutils.ShapeRenderer
import net.torvald.terrarum.*
import net.torvald.terrarum.AppLoader.printdbg
import net.torvald.terrarum.CommonResourcePool
import net.torvald.terrarum.Second
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.UIItemInventoryCatBar
import net.torvald.terrarum.UIItemInventoryCatBar.Companion.CAT_ALL
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.gameitem.GameItem
import net.torvald.terrarum.modulebasegame.ui.HasInventory
import net.torvald.terrarum.modulebasegame.ui.InventoryNegotiator
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.CELLS_HOR
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.CELLS_VRT
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_X
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_Y
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.catBarWidth
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.gradEndCol
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.gradHeight
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.gradStartCol
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.internalHeight
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.internalWidth
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryItemGrid
import net.torvald.terrarum.ui.UICanvas
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
@@ -41,10 +48,13 @@ internal class FixtureStorageChest : FixtureBase(
internal object UIStorageChest : UICanvas(), HasInventory {
override var width = 512
override var height = 512
override var width = AppLoader.screenW
override var height = AppLoader.screenH
override var openCloseTime: Second = 0.0f
private val shapeRenderer = ShapeRenderer()
private val negotiator = object : InventoryNegotiator() {
override fun accept(item: GameItem, amount: Int) {
printdbg(this, "Accept")
@@ -65,17 +75,16 @@ internal object UIStorageChest : UICanvas(), HasInventory {
TODO("Not yet implemented")
}
private lateinit var catBar: UIItemInventoryCatBar
private lateinit var itemList: UIItemInventoryItemGrid
private var catBar: UIItemInventoryCatBar
private var itemList: UIItemInventoryItemGrid
init {
catBar = UIItemInventoryCatBar(
this,
100,
50,
500,
500,
(AppLoader.screenW - catBarWidth) / 2,
42 + (AppLoader.screenH - internalHeight) / 2,
internalWidth,
catBarWidth,
false
)
catBar.selectionChangeListener = { old, new -> itemListUpdate() }
@@ -83,11 +92,11 @@ internal object UIStorageChest : UICanvas(), HasInventory {
this,
catBar,
Terrarum.ingame!!.actorNowPlaying!!.inventory, // just for a placeholder...
100,
100,
4, 5,
INVENTORY_CELLS_OFFSET_X,
INVENTORY_CELLS_OFFSET_Y,
CELLS_HOR / 2, CELLS_VRT,
drawScrollOnRightside = false,
drawWallet = true,
drawWallet = false,
keyDownFun = { _,_ -> Unit },
touchDownFun = { _,_,_,_,_ -> itemListUpdate() }
)
@@ -108,6 +117,28 @@ internal object UIStorageChest : UICanvas(), HasInventory {
}
override fun renderUI(batch: SpriteBatch, camera: Camera) {
// background fill
batch.end()
gdxSetBlendNormal()
val gradTopStart = (AppLoader.screenH - internalHeight).div(2).toFloat()
val gradBottomEnd = AppLoader.screenH - gradTopStart
shapeRenderer.inUse {
shapeRenderer.rect(0f, gradTopStart, AppLoader.screenWf, gradHeight, gradStartCol, gradStartCol, gradEndCol, gradEndCol)
shapeRenderer.rect(0f, gradBottomEnd, AppLoader.screenWf, -gradHeight, gradStartCol, gradStartCol, gradEndCol, gradEndCol)
shapeRenderer.rect(0f, gradTopStart + gradHeight, AppLoader.screenWf, internalHeight - (2 * gradHeight), gradEndCol, gradEndCol, gradEndCol, gradEndCol)
shapeRenderer.rect(0f, 0f, AppLoader.screenWf, gradTopStart, gradStartCol, gradStartCol, gradStartCol, gradStartCol)
shapeRenderer.rect(0f, AppLoader.screenHf, AppLoader.screenWf, -(AppLoader.screenHf - gradBottomEnd), gradStartCol, gradStartCol, gradStartCol, gradStartCol)
}
batch.begin()
// UI items
batch.color = Color.WHITE
catBar.render(batch, camera)
@@ -129,7 +160,7 @@ internal object UIStorageChest : UICanvas(), HasInventory {
}
override fun dispose() {
shapeRenderer.dispose()
}
}