diff --git a/src/net/torvald/terrarum/blockproperties/Block.kt b/src/net/torvald/terrarum/blockproperties/Block.kt index 03332f915..e7f8820c5 100644 --- a/src/net/torvald/terrarum/blockproperties/Block.kt +++ b/src/net/torvald/terrarum/blockproperties/Block.kt @@ -115,39 +115,7 @@ object Block { val SUNSTONE = 257 val DAYLIGHT_CAPACITOR = 258 - val WATER_1 = 4080 - val WATER_2 = 4081 - val WATER_3 = 4082 - val WATER_4 = 4083 - val WATER_5 = 4084 - val WATER_6 = 4085 - val WATER_7 = 4086 - val WATER_8 = 4087 - val WATER_9 = 4088 - val WATER_10 = 4089 - val WATER_11 = 4090 - val WATER_12 = 4091 - val WATER_13 = 4092 - val WATER_14 = 4093 - val WATER_15 = 4094 - val WATER = 4095 - - val LAVA_1 = 4064 - val LAVA_2 = 4065 - val LAVA_3 = 4066 - val LAVA_4 = 4067 - val LAVA_5 = 4068 - val LAVA_6 = 4069 - val LAVA_7 = 4070 - val LAVA_8 = 4071 - val LAVA_9 = 4072 - val LAVA_10 = 4073 - val LAVA_11 = 4074 - val LAVA_12 = 4075 - val LAVA_13 = 4076 - val LAVA_14 = 4077 - val LAVA_15 = 4078 - val LAVA = 4079 + val FLUID_MARKER = 4095 val NULL = -1 } diff --git a/src/net/torvald/terrarum/gameworld/GameWorld.kt b/src/net/torvald/terrarum/gameworld/GameWorld.kt index 2f869a999..fff98aa2d 100644 --- a/src/net/torvald/terrarum/gameworld/GameWorld.kt +++ b/src/net/torvald/terrarum/gameworld/GameWorld.kt @@ -2,6 +2,7 @@ package net.torvald.terrarum.gameworld import com.badlogic.gdx.graphics.Color +import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.realestate.LandUtil import net.torvald.terrarum.blockproperties.BlockCodex import net.torvald.terrarum.serialise.ReadLayerDataLzma @@ -336,6 +337,13 @@ open class GameWorld { fun getWallDamage(x: Int, y: Int): Float = wallDamages[LandUtil.getBlockAddr(this, x, y)] ?: 0f + fun setFluid(x: Int, y: Int, fluidType: Int, fill: Float) { + val addr = LandUtil.getBlockAddr(this, x, y) + fluidTypes[addr] = fluidType + fluidFills[addr] = fill + setTileTerrain(x, y, Block.FLUID_MARKER) + } + fun getTemperature(worldTileX: Int, worldTileY: Int): Float? { return null diff --git a/src/net/torvald/terrarum/itemproperties/GameItem.kt b/src/net/torvald/terrarum/itemproperties/GameItem.kt index 67c245d38..47273903b 100644 --- a/src/net/torvald/terrarum/itemproperties/GameItem.kt +++ b/src/net/torvald/terrarum/itemproperties/GameItem.kt @@ -47,9 +47,10 @@ abstract class GameItem : Comparable, Cloneable { var nameColour = Color.WHITE - + /** In kg */ abstract var baseMass: Double + /** In kg */ abstract var baseToolSize: Double? abstract var inventoryCategory: String // "weapon", "tool", "armor", etc. (all smallcaps) diff --git a/src/net/torvald/terrarum/itemproperties/ItemCodex.kt b/src/net/torvald/terrarum/itemproperties/ItemCodex.kt index 84b3ee480..624b755b6 100644 --- a/src/net/torvald/terrarum/itemproperties/ItemCodex.kt +++ b/src/net/torvald/terrarum/itemproperties/ItemCodex.kt @@ -169,6 +169,30 @@ object ItemCodex { }*/ + // test water bucket + itemCodex[9000] = object : GameItem() { + override var dynamicID: ItemID = 9000 + override val originalID: ItemID = 9000 + + override val isUnique: Boolean = true + override val originalName: String = "Infinite Water Bucket" + + override var baseMass: Double = 1000.0 + override var baseToolSize: Double? = null + + override var inventoryCategory: String = "tool" + override var stackable: Boolean = false + + override val isDynamic: Boolean = false + override val material: Material = Material(1,1,1,1,1,1,1,1,1,1.0) + + override fun startSecondaryUse(delta: Float): Boolean { + return super.startSecondaryUse(delta) + } + } + + + // read from save (if applicable) and fill dynamicItemDescription diff --git a/src/net/torvald/terrarum/modulebasegame/console/ExportMap.kt b/src/net/torvald/terrarum/modulebasegame/console/ExportMap.kt index 57b066b2d..6d9f9785f 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/ExportMap.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/ExportMap.kt @@ -42,8 +42,7 @@ internal object ExportMap : ConsoleCommand { colorTable.put(Block.RAW_TOPAZ, Col4096(0xC70)) colorTable.put(Block.RAW_AMETHYST, Col4096(0x70C)) - colorTable.put(Block.WATER, Col4096(0x038)) - colorTable.put(Block.LAVA, Col4096(0xF50)) + colorTable.put(Block.FLUID_MARKER, Col4096(0x038)) colorTable.put(Block.SAND, Col4096(0xDDB)) colorTable.put(Block.SAND_WHITE, Col4096(0xFFD)) diff --git a/src/net/torvald/terrarum/modulebasegame/worldgenerator/WorldGenerator.kt b/src/net/torvald/terrarum/modulebasegame/worldgenerator/WorldGenerator.kt index 1b29992ce..41dc173b2 100644 --- a/src/net/torvald/terrarum/modulebasegame/worldgenerator/WorldGenerator.kt +++ b/src/net/torvald/terrarum/modulebasegame/worldgenerator/WorldGenerator.kt @@ -833,7 +833,7 @@ object WorldGenerator { /* Flood */ private fun floodBottomLava() { - println("[mapgenerator] Flooding with lava...") + /*println("[mapgenerator] Flooding with lava...") LoadScreen.addMessage("Flooding with lava...") for (i in HEIGHT * 14 / 15..HEIGHT - 1) { for (j in 0..WIDTH - 1) { @@ -841,7 +841,7 @@ object WorldGenerator { world.setTileTerrain(j, i, Block.LAVA) } } - } + }*/ } /* Plant */ @@ -921,11 +921,11 @@ object WorldGenerator { if (ix < OCEAN_WIDTH) { if (worldOceanPosition == TYPE_OCEAN_LEFT) { for (y in getTerrainHeightFromHeightMap(OCEAN_WIDTH)..getTerrainHeightFromHeightMap(ix) - 1) { - world.setTileTerrain(ix, y, Block.WATER) + //world.setTileTerrain(ix, y, Block.WATER) } } else if (worldOceanPosition == TYPE_OCEAN_RIGHT) { for (y in getTerrainHeightFromHeightMap(world.width - 1 - OCEAN_WIDTH)..getTerrainHeightFromHeightMap(world.width - 1 - ix) - 1) { - world.setTileTerrain(world.width - 1 - ix, y, Block.WATER) + //world.setTileTerrain(world.width - 1 - ix, y, Block.WATER) } } } diff --git a/src/net/torvald/terrarum/serialise/ReadLayerDataZip.kt b/src/net/torvald/terrarum/serialise/ReadLayerDataZip.kt index d689733c7..43eeeaf5c 100644 --- a/src/net/torvald/terrarum/serialise/ReadLayerDataZip.kt +++ b/src/net/torvald/terrarum/serialise/ReadLayerDataZip.kt @@ -2,7 +2,6 @@ package net.torvald.terrarum.serialise import net.torvald.terrarum.AppLoader.printdbg import net.torvald.terrarum.gameworld.BlockAddress -import net.torvald.terrarum.gameworld.BlockDamage import net.torvald.terrarum.gameworld.MapLayer import net.torvald.terrarum.gameworld.PairedMapLayer import net.torvald.terrarum.realestate.LandUtil @@ -153,8 +152,8 @@ internal object ReadLayerDataZip { val spawnPoint = LandUtil.resolveBlockAddr(width, spawnAddress) - val terrainDamages = HashMap() - val wallDamages = HashMap() + val terrainDamages = HashMap() + val wallDamages = HashMap() // parse terrain damages for (c in 0 until payloadBytes["TdMG"]!!.size step 10) { @@ -207,8 +206,8 @@ internal object ReadLayerDataZip { val spawnX: Int, val spawnY: Int, - val wallDamages: HashMap, - val terrainDamages: HashMap + val wallDamages: HashMap, + val terrainDamages: HashMap ) private fun ByteArray.shiftLeftBy(size: Int, fill: Byte = 0.toByte()) { diff --git a/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt b/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt index 9fe4ce8de..221163b6f 100644 --- a/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt +++ b/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt @@ -228,9 +228,9 @@ internal object BlocksDrawer { Block.SANDSTONE_DESERT, Block.SANDSTONE_RED, Block.SANDSTONE_WHITE, - Block.SANDSTONE_GREEN, + Block.SANDSTONE_GREEN - Block.WATER, + /*lock.WATER, Block.WATER_1, Block.WATER_2, Block.WATER_3, @@ -261,7 +261,7 @@ internal object BlocksDrawer { Block.LAVA_12, Block.LAVA_13, Block.LAVA_14, - Block.LAVA_15 + Block.LAVA_15*/ ) /** @@ -311,8 +311,8 @@ internal object BlocksDrawer { * will blend colour using colour multiplication * i.e. red hues get lost if you dive into the water */ - private val TILES_BLEND_MUL = hashSetOf( - Block.WATER, + private val TILES_BLEND_MUL = hashSetOf(-1 + /*Block.WATER, Block.WATER_1, Block.WATER_2, Block.WATER_3, @@ -343,7 +343,7 @@ internal object BlocksDrawer { Block.LAVA_12, Block.LAVA_13, Block.LAVA_14, - Block.LAVA_15 + Block.LAVA_15*/ ) /** diff --git a/src/net/torvald/terrarum/worlddrawer/BlocksDrawer_old.kt b/src/net/torvald/terrarum/worlddrawer/BlocksDrawer_old.kt index 372db439d..1fe142e02 100644 --- a/src/net/torvald/terrarum/worlddrawer/BlocksDrawer_old.kt +++ b/src/net/torvald/terrarum/worlddrawer/BlocksDrawer_old.kt @@ -215,9 +215,9 @@ object BlocksDrawerOLD { Block.SANDSTONE_DESERT, Block.SANDSTONE_RED, Block.SANDSTONE_WHITE, - Block.SANDSTONE_GREEN, + Block.SANDSTONE_GREEN - Block.WATER, + /*Block.WATER, Block.WATER_1, Block.WATER_2, Block.WATER_3, @@ -248,7 +248,7 @@ object BlocksDrawerOLD { Block.LAVA_12, Block.LAVA_13, Block.LAVA_14, - Block.LAVA_15 + Block.LAVA_15*/ ) /** @@ -298,8 +298,8 @@ object BlocksDrawerOLD { * will blend colour using colour multiplication * i.e. red hues get lost if you dive into the water */ - private val TILES_BLEND_MUL = hashSetOf( - Block.WATER, + private val TILES_BLEND_MUL = hashSetOf(-1 + /*Block.WATER, Block.WATER_1, Block.WATER_2, Block.WATER_3, @@ -330,7 +330,7 @@ object BlocksDrawerOLD { Block.LAVA_12, Block.LAVA_13, Block.LAVA_14, - Block.LAVA_15 + Block.LAVA_15*/ ) /**