From 1787ad7cddb79e6af7b767d2663746462abf08b1 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Mon, 21 Feb 2022 22:03:59 +0900 Subject: [PATCH] terrain item image atlas to always have maximum possible sizes defined on the game config --- .../torvald/terrarum/itemproperties/ItemCodex.kt | 10 ++++------ .../terrarum/worlddrawer/CreateTileAtlas.kt | 14 ++++++-------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/net/torvald/terrarum/itemproperties/ItemCodex.kt b/src/net/torvald/terrarum/itemproperties/ItemCodex.kt index 25a67f9f2..5f25a4733 100644 --- a/src/net/torvald/terrarum/itemproperties/ItemCodex.kt +++ b/src/net/torvald/terrarum/itemproperties/ItemCodex.kt @@ -14,8 +14,6 @@ import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.gameactors.CanBeAnItem import net.torvald.terrarum.modulebasegame.gameactors.FixtureBase import net.torvald.terrarum.worlddrawer.BlocksDrawer -import java.util.* -import kotlin.collections.HashMap /** * ItemCodex holds information of every item in the game, including blocks despite the 'item' naming @@ -129,16 +127,16 @@ class ItemCodex { else if (itemID.startsWith("wall@")) { val itemSheetNumber = App.tileMaker.tileIDtoItemSheetNumber(itemID.substring(5)) return BlocksDrawer.tileItemWall.get( - itemSheetNumber % App.tileMaker.ITEM_ATLAS_TILES_X, - itemSheetNumber / App.tileMaker.ITEM_ATLAS_TILES_X + itemSheetNumber % App.tileMaker.TILES_IN_X, + itemSheetNumber / App.tileMaker.TILES_IN_X ) } // terrain else { val itemSheetNumber = App.tileMaker.tileIDtoItemSheetNumber(itemID) return BlocksDrawer.tileItemTerrain.get( - itemSheetNumber % App.tileMaker.ITEM_ATLAS_TILES_X, - itemSheetNumber / App.tileMaker.ITEM_ATLAS_TILES_X + itemSheetNumber % App.tileMaker.TILES_IN_X, + itemSheetNumber / App.tileMaker.TILES_IN_X ) } diff --git a/src/net/torvald/terrarum/worlddrawer/CreateTileAtlas.kt b/src/net/torvald/terrarum/worlddrawer/CreateTileAtlas.kt index e763d0ee6..7c96b6ba2 100644 --- a/src/net/torvald/terrarum/worlddrawer/CreateTileAtlas.kt +++ b/src/net/torvald/terrarum/worlddrawer/CreateTileAtlas.kt @@ -33,8 +33,6 @@ class CreateTileAtlas { val SHADER_SIZE_KEYS = floatArrayOf(MAX_TEX_SIZE.toFloat(), MAX_TEX_SIZE.toFloat(), TILES_IN_X.toFloat(), TILES_IN_X.toFloat()) - val ITEM_ATLAS_TILES_X = 16 - private val TOTAL_TILES = TILES_IN_X * TILES_IN_X val wallOverlayColour = Color(.65f, .65f, .65f, 1f) @@ -65,8 +63,8 @@ class CreateTileAtlas { private val atlasInit = "./assets/graphics/blocks/init.tga" private var itemSheetCursor = 16 - internal val itemTerrainPixmap = Pixmap(16 * TILE_SIZE, TILES_IN_X * TILE_SIZE, Pixmap.Format.RGBA8888) - internal val itemWallPixmap = Pixmap(16 * TILE_SIZE, TILES_IN_X * TILE_SIZE, Pixmap.Format.RGBA8888) + internal val itemTerrainPixmap = Pixmap(TILES_IN_X * TILE_SIZE, TILES_IN_X * TILE_SIZE, Pixmap.Format.RGBA8888) + internal val itemWallPixmap = Pixmap(TILES_IN_X * TILE_SIZE, TILES_IN_X * TILE_SIZE, Pixmap.Format.RGBA8888) /** @@ -160,8 +158,8 @@ class CreateTileAtlas { val srcX = (tilePosFromAtlas % TILES_IN_X) * TILE_SIZE val srcY = (tilePosFromAtlas / TILES_IN_X) * TILE_SIZE val t = tileIDtoItemSheetNumber(id) - val destX = (t % ITEM_ATLAS_TILES_X) * TILE_SIZE - val destY = (t / ITEM_ATLAS_TILES_X) * TILE_SIZE + val destX = (t % TILES_IN_X) * TILE_SIZE + val destY = (t / TILES_IN_X) * TILE_SIZE itemTerrainPixmap.drawPixmap(atlas, srcX, srcY, TILE_SIZE, TILE_SIZE, destX, destY, TILE_SIZE, TILE_SIZE) itemWallPixmap.drawPixmap(atlas, srcX, srcY, TILE_SIZE, TILE_SIZE, destX, destY, TILE_SIZE, TILE_SIZE) } @@ -179,8 +177,8 @@ class CreateTileAtlas { val pxCount = TILE_SIZE * TILE_SIZE for (id in itemSheetNumbers) { val tilenum = id.value - val tx = (tilenum % ITEM_ATLAS_TILES_X) * TILE_SIZE - val ty = (tilenum / ITEM_ATLAS_TILES_X) * TILE_SIZE + val tx = (tilenum % TILES_IN_X) * TILE_SIZE + val ty = (tilenum / TILES_IN_X) * TILE_SIZE var r = 0f; var g = 0f; var b = 0f; var a = 0f // average out the whole block for (y in ty until ty + TILE_SIZE) {