From 46124935662b61af6266a2977066be348805faf3 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Mon, 7 Feb 2022 11:38:26 +0900 Subject: [PATCH] adding extra headroom to the assembled sprite so that a large held item wouldn't get cropped --- .../terrarum/modulebasegame/gameitems/ItemStorageChest.kt | 2 +- .../terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt | 7 ++++++- src/net/torvald/terrarum/spriteassembler/ADProperties.kt | 6 ++++-- .../terrarum/spriteassembler/AssembleSheetPixmap.kt | 4 ++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemStorageChest.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemStorageChest.kt index f6b77c54f..926f98cce 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemStorageChest.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemStorageChest.kt @@ -21,7 +21,7 @@ class ItemStorageChest(originalID: ItemID) : FixtureItemBase(originalID, "net.to override val isDynamic = false override val material = Material() override val itemImage: TextureRegion - get() = CommonResourcePool.getAsTextureRegion("itemplaceholder_32") + get() = CommonResourcePool.getAsTextureRegion("itemplaceholder_48") override var baseToolSize: Double? = baseMass init { diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt b/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt index 35ab71854..95a679c45 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt @@ -25,6 +25,8 @@ import net.torvald.terrarum.savegame.EntryFile import net.torvald.terrarum.serialise.Common import net.torvald.terrarum.serialise.LoadSavegame 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.Toolkit import net.torvald.terrarum.ui.UICanvas @@ -602,7 +604,10 @@ class UIItemPlayerCells( // player avatar batch.color = Color.WHITE 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 + ) } } diff --git a/src/net/torvald/terrarum/spriteassembler/ADProperties.kt b/src/net/torvald/terrarum/spriteassembler/ADProperties.kt index 84f5c3d16..5956a803b 100644 --- a/src/net/torvald/terrarum/spriteassembler/ADProperties.kt +++ b/src/net/torvald/terrarum/spriteassembler/ADProperties.kt @@ -76,6 +76,8 @@ class ADProperties { companion object { const val ALL_JOINT_SELECT_KEY = "ALL" + const val EXTRA_HEADROOM_X = 32 + const val EXTRA_HEADROOM_Y = 16 } constructor(gdxFile: FileHandle) { @@ -118,8 +120,8 @@ class ADProperties { baseFilename = get("SPRITESHEET")[0].name extension = get("EXTENSION")[0].name val frameSizeVec = get("CONFIG").linearSearchBy { it.name == "SIZE" }!!.input as ADPropertyObject.Vector2i - frameWidth = frameSizeVec.x - frameHeight = frameSizeVec.y + frameWidth = frameSizeVec.x + EXTRA_HEADROOM_X + frameHeight = frameSizeVec.y + EXTRA_HEADROOM_Y originX = (get("CONFIG").linearSearchBy { it.name == "ORIGINX" }!!.input as Float).toInt() var maxColFinder = -1 diff --git a/src/net/torvald/terrarum/spriteassembler/AssembleSheetPixmap.kt b/src/net/torvald/terrarum/spriteassembler/AssembleSheetPixmap.kt index d3a7c2547..cf98e416a 100644 --- a/src/net/torvald/terrarum/spriteassembler/AssembleSheetPixmap.kt +++ b/src/net/torvald/terrarum/spriteassembler/AssembleSheetPixmap.kt @@ -52,11 +52,11 @@ object AssembleSheetPixmap { 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 // actually draw - properties.transforms.forEach { t, _ -> + properties.transforms.forEach { (t, _) -> drawThisFrame(t, canvas, properties, fileGetter, injectedItem) }