From 0292115f890e4593050c8ccc5d8a50ea77188d2d Mon Sep 17 00:00:00 2001 From: minjaesong Date: Sun, 14 Feb 2021 10:07:08 +0900 Subject: [PATCH] wipwip --- .../basegame/blocks/{8192.tga => _8192.tga} | 0 .../basegame/blocks/{8193.tga => _8193.tga} | 0 .../basegame/blocks/{8194.tga => _8194.tga} | 0 .../basegame/blocks/{8195.tga => _8195.tga} | 0 src/net/torvald/terrarum/AppLoader.java | 5 +++++ .../terrarum/blockproperties/BlockCodex.kt | 10 +++++++++- .../gameactors/ActorInventory.kt | 3 ++- .../terrarum/worlddrawer/BlocksDrawerNew.kt | 18 +----------------- .../terrarum/worlddrawer/CreateTileAtlas.kt | 8 +++++--- 9 files changed, 22 insertions(+), 22 deletions(-) rename assets/mods/basegame/blocks/{8192.tga => _8192.tga} (100%) rename assets/mods/basegame/blocks/{8193.tga => _8193.tga} (100%) rename assets/mods/basegame/blocks/{8194.tga => _8194.tga} (100%) rename assets/mods/basegame/blocks/{8195.tga => _8195.tga} (100%) diff --git a/assets/mods/basegame/blocks/8192.tga b/assets/mods/basegame/blocks/_8192.tga similarity index 100% rename from assets/mods/basegame/blocks/8192.tga rename to assets/mods/basegame/blocks/_8192.tga diff --git a/assets/mods/basegame/blocks/8193.tga b/assets/mods/basegame/blocks/_8193.tga similarity index 100% rename from assets/mods/basegame/blocks/8193.tga rename to assets/mods/basegame/blocks/_8193.tga diff --git a/assets/mods/basegame/blocks/8194.tga b/assets/mods/basegame/blocks/_8194.tga similarity index 100% rename from assets/mods/basegame/blocks/8194.tga rename to assets/mods/basegame/blocks/_8194.tga diff --git a/assets/mods/basegame/blocks/8195.tga b/assets/mods/basegame/blocks/_8195.tga similarity index 100% rename from assets/mods/basegame/blocks/8195.tga rename to assets/mods/basegame/blocks/_8195.tga diff --git a/src/net/torvald/terrarum/AppLoader.java b/src/net/torvald/terrarum/AppLoader.java index 247175c93..fedda7d2f 100644 --- a/src/net/torvald/terrarum/AppLoader.java +++ b/src/net/torvald/terrarum/AppLoader.java @@ -33,6 +33,7 @@ import net.torvald.terrarum.modulebasegame.TerrarumIngame; import net.torvald.terrarum.modulebasegame.ui.ItemSlotImageFactory; import net.torvald.terrarum.utils.JsonFetcher; import net.torvald.terrarum.utils.JsonWriter; +import net.torvald.terrarum.worlddrawer.CreateTileAtlas; import net.torvald.terrarumsansbitmap.gdx.GameFontBase; import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack; import net.torvald.util.ArrayListMap; @@ -494,6 +495,10 @@ public class AppLoader implements ApplicationListener { // make loading list CommonResourcePool.INSTANCE.loadAll(); + + // create tile atlas + printdbg(this, "Making terrain textures..."); + CreateTileAtlas.INSTANCE.invoke(false); } @Override diff --git a/src/net/torvald/terrarum/blockproperties/BlockCodex.kt b/src/net/torvald/terrarum/blockproperties/BlockCodex.kt index 3233c68ed..226a1e496 100644 --- a/src/net/torvald/terrarum/blockproperties/BlockCodex.kt +++ b/src/net/torvald/terrarum/blockproperties/BlockCodex.kt @@ -34,7 +34,15 @@ object BlockCodex { // fake props for "randomised" dynamic lights const val DYNAMIC_RANDOM_CASES = 64 private var virtualTileCursor = 1 + + /** + * One-to-Many + */ val tileToVirtual = HashMap>() + + /** + * Many-to-One + */ val virtualToTile = HashMap() /** @@ -56,7 +64,7 @@ object BlockCodex { val numericID = intVal(it, "id") setProp(module, numericID, it) - val tileId = "tile@$module:$numericID" + val tileId = "$module:$numericID" // register tiles with dynamic light if ((blockProps[tileId]?.dynamicLuminosityFunction ?: 0) != 0) { diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt index 86f2d8abd..2e2ba963a 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt @@ -11,6 +11,7 @@ import net.torvald.terrarum.gameitem.ItemID import net.torvald.terrarum.lock import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.ui.UIQuickslotBar +import java.math.BigInteger import java.util.* import java.util.concurrent.locks.ReentrantLock @@ -39,7 +40,7 @@ class ActorInventory(@Transient val actor: Pocketed, var maxCapacity: Int, var c val itemList = ArrayList() val quickSlot = Array(UIQuickslotBar.SLOT_COUNT) { null } // 0: Slot 1, 9: Slot 10 - var wallet = 0 // unified currency for whole civs; Dwarf Fortress approach seems too complicated + var wallet = BigInteger("0") // unified currency for whole civs; Dwarf Fortress approach seems too complicated init { } diff --git a/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt b/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt index 37458af0e..cf9ada9fe 100644 --- a/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt +++ b/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt @@ -97,23 +97,7 @@ internal object BlocksDrawer { // with TGA, you have a complete control over this, with the expense of added hassle on your side. // -- Torvald, 2018-12-19 - printdbg(this, "Making terrain textures...") - - CreateTileAtlas() - //JsonWriter.writeToFile(CreateTileAtlas.tags, "${AppLoader.defaultDir}/test_rendertags.json") - // each takes about 60 seconds - //printdbg(this, "Writing pixmap as tga: atlas.tga") - //PixmapIO2.writeTGA(Gdx.files.absolute("${AppLoader.defaultDir}/atlas.tga"), CreateTileAtlas.atlas, false) - //printdbg(this, "Writing pixmap as tga: atlasAutumn.tga") - //PixmapIO2.writeTGA(Gdx.files.absolute("${AppLoader.defaultDir}/atlasAutumn.tga"), CreateTileAtlas.atlasAutumn, false) - //printdbg(this, "Writing pixmap as tga: atlasWinter.tga") - //PixmapIO2.writeTGA(Gdx.files.absolute("${AppLoader.defaultDir}/atlasWinter.tga"), CreateTileAtlas.atlasWinter, false) - //printdbg(this, "Writing pixmap as tga: atlasSpring.tga") - //PixmapIO2.writeTGA(Gdx.files.absolute("${AppLoader.defaultDir}/atlasSpring.tga"), CreateTileAtlas.atlasSpring, false) - //printdbg(this, "Writing pixmap as tga: atlasFluid.tga") - //PixmapIO2.writeTGA(Gdx.files.absolute("${AppLoader.defaultDir}/atlasFluid.tga"), CreateTileAtlas.atlasFluid, false) - - + // CreateTileAtlas.invoke() has been moved to the AppLoader.create() // // create terrain texture from pixmaps weatherTerrains = arrayOf( diff --git a/src/net/torvald/terrarum/worlddrawer/CreateTileAtlas.kt b/src/net/torvald/terrarum/worlddrawer/CreateTileAtlas.kt index dfcc98153..144dd070c 100644 --- a/src/net/torvald/terrarum/worlddrawer/CreateTileAtlas.kt +++ b/src/net/torvald/terrarum/worlddrawer/CreateTileAtlas.kt @@ -240,7 +240,7 @@ object CreateTileAtlas { // 112x112 or 224x224 else { if (tilesPixmap.width != tilesPixmap.height && tilesPixmap.width % (7 * TILE_SIZE) >= 2) { - throw IllegalArgumentException("Unrecognized image dimension: ${tilesPixmap.width}x${tilesPixmap.height}") + throw IllegalArgumentException("Unrecognized image dimension ${tilesPixmap.width}x${tilesPixmap.height} from $modname:${matte.name()}") } // figure out the tags var connectionType = 0 @@ -266,8 +266,10 @@ object CreateTileAtlas { tilesPixmap.dispose() } - fun tileIDtoAtlasNumber(tileID: ItemID) = tags[tileID]!!.tileNumber - fun tileIDtoItemSheetNumber(tileID: ItemID) = itemSheetNumbers[tileID]!! + fun tileIDtoAtlasNumber(tileID: ItemID) = tags[tileID]?.tileNumber + ?: throw NullPointerException("AtlasNumbers mapping from $tileID does not exist") + fun tileIDtoItemSheetNumber(tileID: ItemID) = itemSheetNumbers[tileID] + ?: throw NullPointerException("ItemSheetNumber mapping from $tileID does not exist") /** * This function must precede the drawToAtlantes() function, as the marking requires the variable