mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-13 12:04:06 +09:00
terrain item image atlas to always have maximum possible sizes defined on the game config
This commit is contained in:
@@ -14,8 +14,6 @@ import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
|||||||
import net.torvald.terrarum.modulebasegame.gameactors.CanBeAnItem
|
import net.torvald.terrarum.modulebasegame.gameactors.CanBeAnItem
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureBase
|
import net.torvald.terrarum.modulebasegame.gameactors.FixtureBase
|
||||||
import net.torvald.terrarum.worlddrawer.BlocksDrawer
|
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
|
* 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@")) {
|
else if (itemID.startsWith("wall@")) {
|
||||||
val itemSheetNumber = App.tileMaker.tileIDtoItemSheetNumber(itemID.substring(5))
|
val itemSheetNumber = App.tileMaker.tileIDtoItemSheetNumber(itemID.substring(5))
|
||||||
return BlocksDrawer.tileItemWall.get(
|
return BlocksDrawer.tileItemWall.get(
|
||||||
itemSheetNumber % App.tileMaker.ITEM_ATLAS_TILES_X,
|
itemSheetNumber % App.tileMaker.TILES_IN_X,
|
||||||
itemSheetNumber / App.tileMaker.ITEM_ATLAS_TILES_X
|
itemSheetNumber / App.tileMaker.TILES_IN_X
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
// terrain
|
// terrain
|
||||||
else {
|
else {
|
||||||
val itemSheetNumber = App.tileMaker.tileIDtoItemSheetNumber(itemID)
|
val itemSheetNumber = App.tileMaker.tileIDtoItemSheetNumber(itemID)
|
||||||
return BlocksDrawer.tileItemTerrain.get(
|
return BlocksDrawer.tileItemTerrain.get(
|
||||||
itemSheetNumber % App.tileMaker.ITEM_ATLAS_TILES_X,
|
itemSheetNumber % App.tileMaker.TILES_IN_X,
|
||||||
itemSheetNumber / App.tileMaker.ITEM_ATLAS_TILES_X
|
itemSheetNumber / App.tileMaker.TILES_IN_X
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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 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
|
private val TOTAL_TILES = TILES_IN_X * TILES_IN_X
|
||||||
|
|
||||||
val wallOverlayColour = Color(.65f, .65f, .65f, 1f)
|
val wallOverlayColour = Color(.65f, .65f, .65f, 1f)
|
||||||
@@ -65,8 +63,8 @@ class CreateTileAtlas {
|
|||||||
private val atlasInit = "./assets/graphics/blocks/init.tga"
|
private val atlasInit = "./assets/graphics/blocks/init.tga"
|
||||||
private var itemSheetCursor = 16
|
private var itemSheetCursor = 16
|
||||||
|
|
||||||
internal val itemTerrainPixmap = 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(16 * 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 srcX = (tilePosFromAtlas % TILES_IN_X) * TILE_SIZE
|
||||||
val srcY = (tilePosFromAtlas / TILES_IN_X) * TILE_SIZE
|
val srcY = (tilePosFromAtlas / TILES_IN_X) * TILE_SIZE
|
||||||
val t = tileIDtoItemSheetNumber(id)
|
val t = tileIDtoItemSheetNumber(id)
|
||||||
val destX = (t % ITEM_ATLAS_TILES_X) * TILE_SIZE
|
val destX = (t % TILES_IN_X) * TILE_SIZE
|
||||||
val destY = (t / ITEM_ATLAS_TILES_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)
|
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)
|
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
|
val pxCount = TILE_SIZE * TILE_SIZE
|
||||||
for (id in itemSheetNumbers) {
|
for (id in itemSheetNumbers) {
|
||||||
val tilenum = id.value
|
val tilenum = id.value
|
||||||
val tx = (tilenum % ITEM_ATLAS_TILES_X) * TILE_SIZE
|
val tx = (tilenum % TILES_IN_X) * TILE_SIZE
|
||||||
val ty = (tilenum / ITEM_ATLAS_TILES_X) * TILE_SIZE
|
val ty = (tilenum / TILES_IN_X) * TILE_SIZE
|
||||||
var r = 0f; var g = 0f; var b = 0f; var a = 0f
|
var r = 0f; var g = 0f; var b = 0f; var a = 0f
|
||||||
// average out the whole block
|
// average out the whole block
|
||||||
for (y in ty until ty + TILE_SIZE) {
|
for (y in ty until ty + TILE_SIZE) {
|
||||||
|
|||||||
Reference in New Issue
Block a user