adding extra headroom to the assembled sprite so that a large held item wouldn't get cropped

This commit is contained in:
minjaesong
2022-02-07 11:38:26 +09:00
parent e64bd5d389
commit 4612493566
4 changed files with 13 additions and 6 deletions

View File

@@ -21,7 +21,7 @@ class ItemStorageChest(originalID: ItemID) : FixtureItemBase(originalID, "net.to
override val isDynamic = false override val isDynamic = false
override val material = Material() override val material = Material()
override val itemImage: TextureRegion override val itemImage: TextureRegion
get() = CommonResourcePool.getAsTextureRegion("itemplaceholder_32") get() = CommonResourcePool.getAsTextureRegion("itemplaceholder_48")
override var baseToolSize: Double? = baseMass override var baseToolSize: Double? = baseMass
init { init {

View File

@@ -25,6 +25,8 @@ import net.torvald.terrarum.savegame.EntryFile
import net.torvald.terrarum.serialise.Common import net.torvald.terrarum.serialise.Common
import net.torvald.terrarum.serialise.LoadSavegame import net.torvald.terrarum.serialise.LoadSavegame
import net.torvald.terrarum.serialise.ReadPlayer import net.torvald.terrarum.serialise.ReadPlayer
import net.torvald.terrarum.spriteassembler.ADProperties.Companion.EXTRA_HEADROOM_X
import net.torvald.terrarum.spriteassembler.ADProperties.Companion.EXTRA_HEADROOM_Y
import net.torvald.terrarum.ui.Movement import net.torvald.terrarum.ui.Movement
import net.torvald.terrarum.ui.Toolkit import net.torvald.terrarum.ui.Toolkit
import net.torvald.terrarum.ui.UICanvas import net.torvald.terrarum.ui.UICanvas
@@ -602,7 +604,10 @@ class UIItemPlayerCells(
// player avatar // player avatar
batch.color = Color.WHITE batch.color = Color.WHITE
thumb?.let { thumb?.let {
batch.draw(it, x + FastMath.ceil((106f - it.regionWidth) / 2f), y + FastMath.ceil((height - it.regionHeight) / 2f)) batch.draw(it,
x + FastMath.ceil((106f - it.regionWidth) / 2f) + EXTRA_HEADROOM_X / 2,
y + FastMath.ceil((height - it.regionHeight) / 2f) - EXTRA_HEADROOM_Y / 2
)
} }
} }

View File

@@ -76,6 +76,8 @@ class ADProperties {
companion object { companion object {
const val ALL_JOINT_SELECT_KEY = "ALL" const val ALL_JOINT_SELECT_KEY = "ALL"
const val EXTRA_HEADROOM_X = 32
const val EXTRA_HEADROOM_Y = 16
} }
constructor(gdxFile: FileHandle) { constructor(gdxFile: FileHandle) {
@@ -118,8 +120,8 @@ class ADProperties {
baseFilename = get("SPRITESHEET")[0].name baseFilename = get("SPRITESHEET")[0].name
extension = get("EXTENSION")[0].name extension = get("EXTENSION")[0].name
val frameSizeVec = get("CONFIG").linearSearchBy { it.name == "SIZE" }!!.input as ADPropertyObject.Vector2i val frameSizeVec = get("CONFIG").linearSearchBy { it.name == "SIZE" }!!.input as ADPropertyObject.Vector2i
frameWidth = frameSizeVec.x frameWidth = frameSizeVec.x + EXTRA_HEADROOM_X
frameHeight = frameSizeVec.y frameHeight = frameSizeVec.y + EXTRA_HEADROOM_Y
originX = (get("CONFIG").linearSearchBy { it.name == "ORIGINX" }!!.input as Float).toInt() originX = (get("CONFIG").linearSearchBy { it.name == "ORIGINX" }!!.input as Float).toInt()
var maxColFinder = -1 var maxColFinder = -1

View File

@@ -52,11 +52,11 @@ object AssembleSheetPixmap {
private fun drawAndGetCanvas(properties: ADProperties, fileGetter: (String) -> InputStream?, injectedItem: GameItem?): Pixmap { private fun drawAndGetCanvas(properties: ADProperties, fileGetter: (String) -> InputStream?, injectedItem: GameItem?): Pixmap {
val canvas = Pixmap(properties.cols * properties.frameWidth, properties.rows * properties.frameHeight, Pixmap.Format.RGBA8888) val canvas = Pixmap(properties.cols * (properties.frameWidth), properties.rows * (properties.frameHeight), Pixmap.Format.RGBA8888)
canvas.blending = Pixmap.Blending.SourceOver canvas.blending = Pixmap.Blending.SourceOver
// actually draw // actually draw
properties.transforms.forEach { t, _ -> properties.transforms.forEach { (t, _) ->
drawThisFrame(t, canvas, properties, fileGetter, injectedItem) drawThisFrame(t, canvas, properties, fileGetter, injectedItem)
} }