mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-13 20:14:05 +09:00
two column inventory for storagechest wip
This commit is contained in:
@@ -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()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user