From 7e90387afc74890ffbdb9656e8db402db442df5b Mon Sep 17 00:00:00 2001 From: minjaesong Date: Mon, 28 Feb 2022 23:53:42 +0900 Subject: [PATCH] fixed a bug with canvas texture blending --- src/net/torvald/terrarum/Terrarum.kt | 4 ++-- src/net/torvald/terrarum/modulebasegame/EntryPoint.kt | 3 +-- .../modulebasegame/gameactors/FixtureTapestry.kt | 9 ++------- .../terrarum/modulebasegame/gameitems/FixtureItemBase.kt | 3 +-- .../terrarum/modulebasegame/gameitems/ItemTikiTorch.kt | 6 +++++- 5 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/net/torvald/terrarum/Terrarum.kt b/src/net/torvald/terrarum/Terrarum.kt index 39ecdda9e..bc4be89de 100644 --- a/src/net/torvald/terrarum/Terrarum.kt +++ b/src/net/torvald/terrarum/Terrarum.kt @@ -350,8 +350,8 @@ inline fun FrameBuffer.inActionF(camera: OrthographicCamera?, batch: SpriteBatch private val rgbMultLUT = Array(256) { y -> IntArray(256) { x -> - val i = (x % 256) / 255f - val j = (y / 256) / 255f + val i = x / 255f + val j = y / 255f (i * j).times(255f).roundToInt() } } diff --git a/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt b/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt index 37c6b0ffb..2f9d1f369 100644 --- a/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt +++ b/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt @@ -1,6 +1,5 @@ package net.torvald.terrarum.modulebasegame -import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.* import net.torvald.terrarum.App.IS_DEVELOPMENT_BUILD import net.torvald.terrarum.App.printdbg @@ -66,7 +65,7 @@ class EntryPoint : ModuleEntryPoint() { } } - println("[Basegame.EntryPoint] Welcome back!") + println("\n[Basegame.EntryPoint] Welcome back!") } private fun makeNewItemObj(tile: BlockProp, isWall: Boolean) = object : GameItem( diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureTapestry.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureTapestry.kt index 7e27a7f1a..b836120db 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureTapestry.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureTapestry.kt @@ -1,9 +1,7 @@ package net.torvald.terrarum.modulebasegame.gameactors -import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Pixmap import com.badlogic.gdx.graphics.Texture -import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.* import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZEF @@ -68,12 +66,9 @@ internal class FixtureTapestry : FixtureBase { // blend canvas texture for (y in 0 until pixmap.height) { for (x in 0 until pixmap.width) { - val srcCol = canvas.getPixel(x % pixmap.width, y % pixmap.height) + val srcCol = canvas.getPixel(x % canvas.width, y % canvas.height) val dstCol = pixmap.getPixel(x, y) -// pixmap.drawPixel(x, y, dstCol rgbamul srcCol) - val col = Color(dstCol) mul Color(srcCol) - pixmap.setColor(col) - pixmap.drawPixel(x, y) + pixmap.drawPixel(x, y, dstCol rgbamul srcCol) } } // draw frame diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt index 3e334e004..ff785eea2 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt @@ -1,7 +1,6 @@ package net.torvald.terrarum.modulebasegame.gameitems import com.badlogic.gdx.graphics.g2d.TextureRegion -import net.torvald.terrarum.App.printdbg import net.torvald.terrarum.CommonResourcePool import net.torvald.terrarum.INGAME import net.torvald.terrarum.ItemCodex @@ -30,7 +29,7 @@ open class FixtureItemBase(originalID: ItemID, val fixtureClassName: String) : G protected var ghostItem: FixtureBase? = null get() { if (field == null) - ghostItem = makeFixture() + field = makeFixture() return field } diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemTikiTorch.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemTikiTorch.kt index 810e083b9..98b53b43a 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemTikiTorch.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemTikiTorch.kt @@ -2,9 +2,11 @@ package net.torvald.terrarum.modulebasegame.gameitems import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.terrarum.CommonResourcePool +import net.torvald.terrarum.ModMgr import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.itemproperties.Material import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch +import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack /** * Created by minjaesong on 2019-05-16. @@ -20,7 +22,9 @@ class ItemTikiTorch(originalID: ItemID) : FixtureItemBase(originalID, "net.torva override val isDynamic = false override val material = Material() override val itemImage: TextureRegion - get() = CommonResourcePool.getAsTextureRegionPack("sprites-fixtures-tiki_torch.tga").get(0,0) + get() = (CommonResourcePool.getOrPut("sprites-fixtures-tiki_torch.tga") { + TextureRegionPack(ModMgr.getGdxFile("basegame", "sprites/fixtures/tiki_torch.tga"), 16, 32, flipY = false) + } as TextureRegionPack).get(0,0) override var baseToolSize: Double? = baseMass init {