diff --git a/assets/graphics/function_row_help.png b/assets/graphics/function_row_help.png index 4feebd98d..a81da17bc 100644 Binary files a/assets/graphics/function_row_help.png and b/assets/graphics/function_row_help.png differ diff --git a/src/net/torvald/terrarum/AppLoader.java b/src/net/torvald/terrarum/AppLoader.java index 98d3e1253..3ff910edd 100644 --- a/src/net/torvald/terrarum/AppLoader.java +++ b/src/net/torvald/terrarum/AppLoader.java @@ -291,6 +291,7 @@ public class AppLoader implements ApplicationListener { @Override public void create() { resourcePool = CommonResourcePool.INSTANCE; + resourcePool.addToLoadingList("blockmarkings_common", () -> new TextureRegionPack(Gdx.files.internal("assets/graphics/blocks/block_markings_common.tga"), 16, 16, 0, 0, 0, 0, false)); newTempFile("wenquanyi.tga"); // temp file required by the font @@ -622,7 +623,7 @@ public class AppLoader implements ApplicationListener { private void setCameraPosition(float newX, float newY) { - camera.position.set((-newX + appConfig.width / 2), (-newY + appConfig.height / 2), 0f); + camera.position.set((-newX + appConfig.width / 2), (-newY + appConfig.height / 2), 0f); // deliberate integer division camera.update(); logoBatch.setProjectionMatrix(camera.combined); } diff --git a/src/net/torvald/terrarum/gameactors/ActorWBMovable.kt b/src/net/torvald/terrarum/gameactors/ActorWBMovable.kt index a043a74b4..bb5d020eb 100644 --- a/src/net/torvald/terrarum/gameactors/ActorWBMovable.kt +++ b/src/net/torvald/terrarum/gameactors/ActorWBMovable.kt @@ -1,5 +1,7 @@ package net.torvald.terrarum.gameactors +import com.badlogic.gdx.Input +import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.spriteanimation.SpriteAnimation import net.torvald.terrarum.* @@ -7,6 +9,7 @@ import net.torvald.terrarum.AppLoader.printdbg import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.blockproperties.BlockCodex import net.torvald.terrarum.blockproperties.BlockProp +import net.torvald.terrarum.gamecontroller.KeyToggler import net.torvald.terrarum.gameworld.BlockAddress import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid @@ -1354,25 +1357,33 @@ open class ActorWBMovable(renderOrder: RenderOrder, val immobileBody: Boolean = override fun drawBody(batch: SpriteBatch) { if (isVisible && sprite != null) { - //if (!KeyToggler.isOn(Input.Keys.F12)) { - BlendMode.resolve(drawMode, batch) - drawSpriteInGoodPosition(sprite!!, batch) - /*} - // ye olde tilewiseposition debugger, we don't use it anymore. - else { - batch.color = Color.NAVY - val hb = intTilewiseHitbox + BlendMode.resolve(drawMode, batch) + drawSpriteInGoodPosition(sprite!!, batch) + } - batch.fillRect( - hb.startX.toFloat() * TILE_SIZE, - hb.startY.toFloat() * TILE_SIZE, - hb.width.toFloat() * TILE_SIZE, - hb.height.toFloat() * TILE_SIZE - ) + // debug display of hIntTilewiseHitbox + if (KeyToggler.isOn(Input.Keys.F9)) { + val blockMark = AppLoader.resourcePool.getAsTextureRegionPack("blockmarkings_common").get(0, 0) - batch.color = Color.VIOLET - batch.fillRect(hitbox.startX.toFloat(), hitbox.startY.toFloat(), hitbox.width.toFloat(), hitbox.height.toFloat()) - }*/ + batch.color = Color.MAGENTA + for (y in 0 until intTilewiseHitbox.height.toInt()) { + for (x in 0 until intTilewiseHitbox.width.toInt()) { + batch.draw(blockMark, + (intTilewiseHitbox.startX.toFloat() + x) * TILE_SIZEF, + (intTilewiseHitbox.startY.toFloat() * y) * TILE_SIZEF + ) + } + } + + batch.color = Color.YELLOW + for (y in 0 until hIntTilewiseHitbox.height.toInt()) { + for (x in 0 until hIntTilewiseHitbox.width.toInt()) { + batch.draw(blockMark, + (hIntTilewiseHitbox.startX.toFloat() + x) * TILE_SIZEF, + (hIntTilewiseHitbox.startY.toFloat() * y) * TILE_SIZEF + ) + } + } } } diff --git a/src/net/torvald/terrarum/gameworld/BlockLayer.kt b/src/net/torvald/terrarum/gameworld/BlockLayer.kt index a1c109204..44f209eb7 100644 --- a/src/net/torvald/terrarum/gameworld/BlockLayer.kt +++ b/src/net/torvald/terrarum/gameworld/BlockLayer.kt @@ -38,7 +38,6 @@ open class BlockLayer(val width: Int, val height: Int) : Disposable { * TL;DR: LITTLE ENDIAN PLEASE */ constructor(width: Int, height: Int, data: ByteArray) : this(width, height) { - unsafe.allocateMemory(width * height * BYTES_PER_BLOCK.toLong()) data.forEachIndexed { index, byte -> unsafe.putByte(layerPtr + index, byte) } unsafeArrayInitialised = true } diff --git a/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt b/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt index 87a57d711..32eaccad6 100644 --- a/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt +++ b/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt @@ -30,7 +30,6 @@ import net.torvald.terrarum.ui.UINSMenu import net.torvald.terrarum.worlddrawer.CreateTileAtlas.TILE_SIZE import net.torvald.terrarum.worlddrawer.LightmapRenderer import net.torvald.terrarum.worlddrawer.WorldCamera -import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack import java.io.File import java.io.FileOutputStream @@ -134,7 +133,7 @@ class BuildingMaker(batch: SpriteBatch) : IngameInstance(batch) { val selection = ArrayList() - val blockMarkings = TextureRegionPack(Gdx.files.internal("assets/graphics/blocks/block_markings_common.tga"), 16, 16) + val blockMarkings = AppLoader.resourcePool.getAsTextureRegionPack("blockmarkings_common") internal var showSelection = true val blockPointingCursor = object : ActorWithBody(Actor.RenderOrder.OVERLAY) { diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/BlockBase.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/BlockBase.kt index 924c592e8..a5a8d4668 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/BlockBase.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/BlockBase.kt @@ -27,6 +27,7 @@ object BlockBase { // check for collision with actors (BLOCK only) // FIXME properly fix the collision detection: it OVERRIDES the tiki-torches which should not happen AT ALL + // FIXME (h)IntTilewiseHitbox is badly defined if (gameItem.inventoryCategory == GameItem.Category.BLOCK) { var ret1 = true ingame.actorContainerActive.forEach { diff --git a/work_files/graphics/function_row_help.psd b/work_files/graphics/function_row_help.psd index 36b3075f7..b1447e23a 100644 --- a/work_files/graphics/function_row_help.psd +++ b/work_files/graphics/function_row_help.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cfbc20cf2d7ab7b91e9fa02e477396af4fa881b7792715bce1e663f30b672797 -size 82357 +oid sha256:2541dab2f4d6d58edc61d289b177037e4b0b5094ed906e15ad066a4cd19ab977 +size 85697