mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-08 04:41:51 +09:00
reduced boot time by not using proper wall tex; darker wall draw
This commit is contained in:
@@ -3,13 +3,12 @@ package net.torvald.terrarum.itemproperties
|
||||
import com.badlogic.gdx.graphics.Texture
|
||||
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
||||
import net.torvald.terrarum.KVHashMap
|
||||
import net.torvald.terrarum.modulebasegame.gameactors.CanBeAnItem
|
||||
import net.torvald.terrarum.Terrarum
|
||||
import net.torvald.terrarum.blockproperties.Fluid
|
||||
import net.torvald.terrarum.gameworld.GameWorld
|
||||
import net.torvald.terrarum.worlddrawer.BlocksDrawer
|
||||
import net.torvald.terrarum.modulebasegame.Ingame
|
||||
import net.torvald.terrarum.worlddrawer.FeaturesDrawer.TILE_SIZE
|
||||
import net.torvald.terrarum.modulebasegame.gameactors.CanBeAnItem
|
||||
import net.torvald.terrarum.worlddrawer.BlocksDrawer
|
||||
import java.util.*
|
||||
|
||||
/**
|
||||
@@ -242,8 +241,8 @@ object ItemCodex {
|
||||
// wall
|
||||
else if (item.originalID in ITEM_WALLS) {
|
||||
return BlocksDrawer.tileItemWall.get(
|
||||
(item.originalID.minus(ITEM_WALLS.first) % 16) * TILE_SIZE,
|
||||
(item.originalID.minus(ITEM_WALLS.first) / 16) * TILE_SIZE
|
||||
(item.originalID.minus(ITEM_WALLS.first) % 16) * 16,
|
||||
(item.originalID.minus(ITEM_WALLS.first) / 16)
|
||||
)
|
||||
}
|
||||
// wire
|
||||
|
||||
@@ -13,7 +13,6 @@ import net.torvald.terrarum.floorInt
|
||||
import net.torvald.terrarum.gameworld.GameWorld
|
||||
import net.torvald.terrarum.gameworld.PairedMapLayer
|
||||
import net.torvald.terrarum.gameworld.fmod
|
||||
import net.torvald.terrarum.itemproperties.ItemCodex.ITEM_TILES
|
||||
import net.torvald.terrarum.modulebasegame.gameworld.GameWorldExtension
|
||||
import net.torvald.terrarum.modulebasegame.gameworld.WorldSimulator
|
||||
import net.torvald.terrarum.modulebasegame.gameworld.WorldTime
|
||||
@@ -56,7 +55,7 @@ internal object BlocksDrawer {
|
||||
//val tileItemWall = Image(TILE_SIZE * 16, TILE_SIZE * GameWorld.TILES_SUPPORTED / 16) // 4 MB
|
||||
|
||||
|
||||
val wallOverlayColour = Color(2f/3f, 2f/3f, 2f/3f, 1f)
|
||||
val wallOverlayColour = Color(5f/9f,5f/9f,5f/9f,1f)
|
||||
|
||||
const val BREAKAGE_STEPS = 10
|
||||
const val TILES_PER_BLOCK = PairedMapLayer.RANGE
|
||||
@@ -144,32 +143,10 @@ internal object BlocksDrawer {
|
||||
printdbg(this, "Making wall item textures...")
|
||||
|
||||
// create item_wall images
|
||||
// --> make pixmap
|
||||
val _tileItemImgPixMap = Pixmap(TILE_SIZE * 16, TILE_SIZE * GameWorld.TILES_SUPPORTED / 16, Pixmap.Format.RGBA8888)
|
||||
_tileItemImgPixMap.pixels.rewind()
|
||||
|
||||
for (tileID in ITEM_TILES) {
|
||||
|
||||
val tileX = (tileID % 16) * 16
|
||||
val tileY = tileID / 16
|
||||
val tile = tilesTerrain.get(tileX, tileY)
|
||||
// will just use the terrain texture :p
|
||||
tileItemWall = tilesTerrain
|
||||
|
||||
|
||||
// slow memory copy :\ I'm afraid I can't random-access bytebuffer...
|
||||
for (scanline in 0 until _tileItemImgPixMap.height) {
|
||||
for (x in 0 until TILE_SIZE) {
|
||||
val pixel = _terrainPixMap.getPixel(tileX + x, scanline)
|
||||
_tileItemImgPixMap.drawPixel(x + TILE_SIZE * (tileID % 16), scanline, pixel)
|
||||
}
|
||||
}
|
||||
}
|
||||
_tileItemImgPixMap.pixels.rewind()
|
||||
// turn pixmap into texture
|
||||
tileItemWall = TextureRegionPack(Texture(_tileItemImgPixMap), TILE_SIZE, TILE_SIZE)
|
||||
|
||||
|
||||
|
||||
_tileItemImgPixMap.dispose()
|
||||
_terrainPixMap.dispose() // finally
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user