mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 12:21:52 +09:00
testing borders on inventory cells
This commit is contained in:
BIN
assets/graphics/gui/box_border_flat_tileable.tga
LFS
Normal file
BIN
assets/graphics/gui/box_border_flat_tileable.tga
LFS
Normal file
Binary file not shown.
@@ -12,6 +12,8 @@ import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull
|
||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellBase
|
||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes
|
||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.toItemCountText
|
||||
import net.torvald.terrarum.ui.Toolkit
|
||||
import net.torvald.terrarum.ui.Toolkit.DEFAULT_BOX_BORDER_COL
|
||||
import net.torvald.terrarum.ui.UIItemTextButton
|
||||
|
||||
/***
|
||||
@@ -86,8 +88,11 @@ class UIItemInventoryElem(
|
||||
BlendMode.resolve(backBlendMode, batch)
|
||||
batch.color = backCol
|
||||
}
|
||||
batch.fillRect(posX.toFloat(), posY.toFloat(), width.toFloat(), height.toFloat())
|
||||
Toolkit.fillArea(batch, posX, posY, width, height)
|
||||
}
|
||||
batch.color = DEFAULT_BOX_BORDER_COL
|
||||
//blendNormal(batch)
|
||||
Toolkit.drawBoxBorder(batch, posX, posY, width, height)
|
||||
|
||||
|
||||
if (item != null && itemImage != null) {
|
||||
|
||||
@@ -12,6 +12,8 @@ import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull
|
||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellBase
|
||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes
|
||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.toItemCountText
|
||||
import net.torvald.terrarum.ui.Toolkit
|
||||
import net.torvald.terrarum.ui.Toolkit.DEFAULT_BOX_BORDER_COL
|
||||
import net.torvald.terrarum.ui.UIItemTextButton
|
||||
|
||||
/**
|
||||
@@ -71,8 +73,11 @@ class UIItemInventoryElemSimple(
|
||||
BlendMode.resolve(backBlendMode, batch)
|
||||
batch.color = backCol
|
||||
}
|
||||
batch.fillRect(posX.toFloat(), posY.toFloat(), width.toFloat(), height.toFloat())
|
||||
Toolkit.fillArea(batch, posX, posY, width, height)
|
||||
}
|
||||
batch.color = DEFAULT_BOX_BORDER_COL
|
||||
//blendNormal(batch)
|
||||
Toolkit.drawBoxBorder(batch, posX, posY, width, height)
|
||||
|
||||
|
||||
// quickslot and equipped slot indicator is not needed as it's intended for blocks and walls
|
||||
|
||||
@@ -10,6 +10,8 @@ import net.torvald.terrarum.itemproperties.ItemCodex
|
||||
import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory
|
||||
import net.torvald.terrarum.modulebasegame.ui.ItemSlotImageFactory.CELLCOLOUR_BLACK
|
||||
import net.torvald.terrarum.modulebasegame.ui.ItemSlotImageFactory.CELLCOLOUR_BLACK_ACTIVE
|
||||
import net.torvald.terrarum.ui.Toolkit
|
||||
import net.torvald.terrarum.ui.Toolkit.DEFAULT_BOX_BORDER_COL
|
||||
import net.torvald.terrarum.ui.UIItem
|
||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||
|
||||
@@ -82,10 +84,10 @@ class UIItemInventoryEquippedView(
|
||||
// sprite background
|
||||
blendNormal(batch)
|
||||
batch.color = spriteViewBackCol
|
||||
batch.fillRect(
|
||||
posX.toFloat(), posY.toFloat(),
|
||||
width.toFloat(), width.toFloat()
|
||||
)
|
||||
Toolkit.fillArea(batch, posX, posY, width, width)
|
||||
batch.color = DEFAULT_BOX_BORDER_COL
|
||||
Toolkit.drawBoxBorder(batch, posX, posY, width, width)
|
||||
|
||||
|
||||
// sprite
|
||||
val sprite = theActor.sprite
|
||||
@@ -101,8 +103,7 @@ class UIItemInventoryEquippedView(
|
||||
|
||||
}
|
||||
|
||||
// TODO inscribe slot image on each cells HERE
|
||||
|
||||
// slot image on each cells
|
||||
itemGrid.forEachIndexed { index, cell ->
|
||||
cell.render(batch, camera)
|
||||
if (cell.item == null) {
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
package net.torvald.terrarum.ui
|
||||
|
||||
import com.badlogic.gdx.graphics.Texture
|
||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||
import net.torvald.terrarum.AppLoader
|
||||
|
||||
|
||||
/**
|
||||
* Created by minjaesong on 2016-08-04.
|
||||
*/
|
||||
object DrawUtil {
|
||||
fun drawCentered(batch: SpriteBatch, image: Texture, screenPosY: Int, ui: UICanvas? = null) {
|
||||
val imageW = image.width
|
||||
val targetW = if (ui == null) AppLoader.screenW else ui.width
|
||||
|
||||
batch.draw(image, targetW.minus(imageW).ushr(1).toFloat(), screenPosY.toFloat())
|
||||
}
|
||||
|
||||
fun drawCentered(batch: SpriteBatch, image: Texture, screenPosY: Int, targetW: Int, offsetX: Int = 0, offsetY: Int = 0) {
|
||||
val imageW = image.width
|
||||
batch.draw(image, targetW.minus(imageW).ushr(1).toFloat() + offsetX, screenPosY.toFloat() + offsetY)
|
||||
}
|
||||
}
|
||||
71
src/net/torvald/terrarum/ui/Toolkit.kt
Normal file
71
src/net/torvald/terrarum/ui/Toolkit.kt
Normal file
@@ -0,0 +1,71 @@
|
||||
package net.torvald.terrarum.ui
|
||||
|
||||
import com.badlogic.gdx.Gdx
|
||||
import com.badlogic.gdx.graphics.Color
|
||||
import com.badlogic.gdx.graphics.Texture
|
||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||
import net.torvald.terrarum.AppLoader
|
||||
import net.torvald.terrarum.CommonResourcePool
|
||||
import net.torvald.terrarum.fillRect
|
||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||
|
||||
|
||||
/**
|
||||
* Created by minjaesong on 2016-08-04.
|
||||
*/
|
||||
object Toolkit {
|
||||
|
||||
val DEFAULT_BOX_BORDER_COL = Color(1f, 1f, 1f, 0.2f)
|
||||
|
||||
init {
|
||||
CommonResourcePool.addToLoadingList("toolkit_box_border") {
|
||||
TextureRegionPack(Gdx.files.internal("./assets/graphics/gui/box_border_flat_tileable.tga"), 1, 1)
|
||||
}
|
||||
CommonResourcePool.loadAll()
|
||||
}
|
||||
|
||||
fun drawCentered(batch: SpriteBatch, image: Texture, screenPosY: Int, ui: UICanvas? = null) {
|
||||
val imageW = image.width
|
||||
val targetW = if (ui == null) AppLoader.screenW else ui.width
|
||||
|
||||
batch.draw(image, targetW.minus(imageW).ushr(1).toFloat(), screenPosY.toFloat())
|
||||
}
|
||||
|
||||
fun drawCentered(batch: SpriteBatch, image: Texture, screenPosY: Int, targetW: Int, offsetX: Int = 0, offsetY: Int = 0) {
|
||||
val imageW = image.width
|
||||
batch.draw(image, targetW.minus(imageW).ushr(1).toFloat() + offsetX, screenPosY.toFloat() + offsetY)
|
||||
}
|
||||
|
||||
fun fillArea(batch: SpriteBatch, x: Int, y: Int, w: Int, h: Int) {
|
||||
batch.fillRect(x.toFloat(), y.toFloat(), w.toFloat(), h.toFloat())
|
||||
}
|
||||
|
||||
/**
|
||||
* Parameters are THAT OF THE BOX, the border will be drawn OUTSIDE of the params you specified!
|
||||
*/
|
||||
fun drawBoxBorder(batch: SpriteBatch, x: Int, y: Int, w: Int, h: Int) {
|
||||
val pack = CommonResourcePool.getAsTextureRegionPack("toolkit_box_border")
|
||||
val tx = pack.tileW.toFloat()
|
||||
val ty = pack.tileH.toFloat()
|
||||
|
||||
// top edge
|
||||
batch.draw(pack.get(1, 0), x.toFloat(), y - ty, w.toFloat(), ty)
|
||||
// bottom edge
|
||||
batch.draw(pack.get(1, 2), x.toFloat(), y.toFloat() + h, w.toFloat(), ty)
|
||||
// left edge
|
||||
batch.draw(pack.get(0, 1), x.toFloat() - tx, y.toFloat(), tx, h.toFloat())
|
||||
// right edge
|
||||
batch.draw(pack.get(2, 1), x.toFloat() + w, y.toFloat(), tx, h.toFloat())
|
||||
|
||||
// top left point
|
||||
/*batch.draw(pack.get(0, 0), x - tx, y - ty)
|
||||
// top right point
|
||||
batch.draw(pack.get(2, 0), x + tx, y - ty)
|
||||
// bottom left point
|
||||
batch.draw(pack.get(0, 2), x - tx, y + ty)
|
||||
// bottom right point
|
||||
batch.draw(pack.get(2, 2), x + tx, y + ty)*/
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -39,7 +39,7 @@ class UIItemImageGallery(
|
||||
}
|
||||
|
||||
imageList.forEachIndexed { i, image ->
|
||||
DrawUtil.drawCentered(batch, image,
|
||||
Toolkit.drawCentered(batch, image,
|
||||
imagePosY(i),
|
||||
width.toFloat().div(column).times(column(i).plus(1)).roundInt(),
|
||||
posX, posY
|
||||
|
||||
Reference in New Issue
Block a user