mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-12 03:24:06 +09:00
replacing water/lava tiles with one fluid marker
actual fluid not implemented
This commit is contained in:
@@ -115,39 +115,7 @@ object Block {
|
|||||||
val SUNSTONE = 257
|
val SUNSTONE = 257
|
||||||
val DAYLIGHT_CAPACITOR = 258
|
val DAYLIGHT_CAPACITOR = 258
|
||||||
|
|
||||||
val WATER_1 = 4080
|
val FLUID_MARKER = 4095
|
||||||
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 NULL = -1
|
val NULL = -1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
package net.torvald.terrarum.gameworld
|
package net.torvald.terrarum.gameworld
|
||||||
|
|
||||||
import com.badlogic.gdx.graphics.Color
|
import com.badlogic.gdx.graphics.Color
|
||||||
|
import net.torvald.terrarum.blockproperties.Block
|
||||||
import net.torvald.terrarum.realestate.LandUtil
|
import net.torvald.terrarum.realestate.LandUtil
|
||||||
import net.torvald.terrarum.blockproperties.BlockCodex
|
import net.torvald.terrarum.blockproperties.BlockCodex
|
||||||
import net.torvald.terrarum.serialise.ReadLayerDataLzma
|
import net.torvald.terrarum.serialise.ReadLayerDataLzma
|
||||||
@@ -336,6 +337,13 @@ open class GameWorld {
|
|||||||
fun getWallDamage(x: Int, y: Int): Float =
|
fun getWallDamage(x: Int, y: Int): Float =
|
||||||
wallDamages[LandUtil.getBlockAddr(this, x, y)] ?: 0f
|
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? {
|
fun getTemperature(worldTileX: Int, worldTileY: Int): Float? {
|
||||||
return null
|
return null
|
||||||
|
|||||||
@@ -47,9 +47,10 @@ abstract class GameItem : Comparable<GameItem>, Cloneable {
|
|||||||
|
|
||||||
var nameColour = Color.WHITE
|
var nameColour = Color.WHITE
|
||||||
|
|
||||||
|
/** In kg */
|
||||||
abstract var baseMass: Double
|
abstract var baseMass: Double
|
||||||
|
|
||||||
|
/** In kg */
|
||||||
abstract var baseToolSize: Double?
|
abstract var baseToolSize: Double?
|
||||||
|
|
||||||
abstract var inventoryCategory: String // "weapon", "tool", "armor", etc. (all smallcaps)
|
abstract var inventoryCategory: String // "weapon", "tool", "armor", etc. (all smallcaps)
|
||||||
|
|||||||
@@ -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
|
// read from save (if applicable) and fill dynamicItemDescription
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -42,8 +42,7 @@ internal object ExportMap : ConsoleCommand {
|
|||||||
colorTable.put(Block.RAW_TOPAZ, Col4096(0xC70))
|
colorTable.put(Block.RAW_TOPAZ, Col4096(0xC70))
|
||||||
colorTable.put(Block.RAW_AMETHYST, Col4096(0x70C))
|
colorTable.put(Block.RAW_AMETHYST, Col4096(0x70C))
|
||||||
|
|
||||||
colorTable.put(Block.WATER, Col4096(0x038))
|
colorTable.put(Block.FLUID_MARKER, Col4096(0x038))
|
||||||
colorTable.put(Block.LAVA, Col4096(0xF50))
|
|
||||||
|
|
||||||
colorTable.put(Block.SAND, Col4096(0xDDB))
|
colorTable.put(Block.SAND, Col4096(0xDDB))
|
||||||
colorTable.put(Block.SAND_WHITE, Col4096(0xFFD))
|
colorTable.put(Block.SAND_WHITE, Col4096(0xFFD))
|
||||||
|
|||||||
@@ -833,7 +833,7 @@ object WorldGenerator {
|
|||||||
/* Flood */
|
/* Flood */
|
||||||
|
|
||||||
private fun floodBottomLava() {
|
private fun floodBottomLava() {
|
||||||
println("[mapgenerator] Flooding with lava...")
|
/*println("[mapgenerator] Flooding with lava...")
|
||||||
LoadScreen.addMessage("Flooding with lava...")
|
LoadScreen.addMessage("Flooding with lava...")
|
||||||
for (i in HEIGHT * 14 / 15..HEIGHT - 1) {
|
for (i in HEIGHT * 14 / 15..HEIGHT - 1) {
|
||||||
for (j in 0..WIDTH - 1) {
|
for (j in 0..WIDTH - 1) {
|
||||||
@@ -841,7 +841,7 @@ object WorldGenerator {
|
|||||||
world.setTileTerrain(j, i, Block.LAVA)
|
world.setTileTerrain(j, i, Block.LAVA)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Plant */
|
/* Plant */
|
||||||
@@ -921,11 +921,11 @@ object WorldGenerator {
|
|||||||
if (ix < OCEAN_WIDTH) {
|
if (ix < OCEAN_WIDTH) {
|
||||||
if (worldOceanPosition == TYPE_OCEAN_LEFT) {
|
if (worldOceanPosition == TYPE_OCEAN_LEFT) {
|
||||||
for (y in getTerrainHeightFromHeightMap(OCEAN_WIDTH)..getTerrainHeightFromHeightMap(ix) - 1) {
|
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) {
|
} else if (worldOceanPosition == TYPE_OCEAN_RIGHT) {
|
||||||
for (y in getTerrainHeightFromHeightMap(world.width - 1 - OCEAN_WIDTH)..getTerrainHeightFromHeightMap(world.width - 1 - ix) - 1) {
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package net.torvald.terrarum.serialise
|
|||||||
|
|
||||||
import net.torvald.terrarum.AppLoader.printdbg
|
import net.torvald.terrarum.AppLoader.printdbg
|
||||||
import net.torvald.terrarum.gameworld.BlockAddress
|
import net.torvald.terrarum.gameworld.BlockAddress
|
||||||
import net.torvald.terrarum.gameworld.BlockDamage
|
|
||||||
import net.torvald.terrarum.gameworld.MapLayer
|
import net.torvald.terrarum.gameworld.MapLayer
|
||||||
import net.torvald.terrarum.gameworld.PairedMapLayer
|
import net.torvald.terrarum.gameworld.PairedMapLayer
|
||||||
import net.torvald.terrarum.realestate.LandUtil
|
import net.torvald.terrarum.realestate.LandUtil
|
||||||
@@ -153,8 +152,8 @@ internal object ReadLayerDataZip {
|
|||||||
|
|
||||||
val spawnPoint = LandUtil.resolveBlockAddr(width, spawnAddress)
|
val spawnPoint = LandUtil.resolveBlockAddr(width, spawnAddress)
|
||||||
|
|
||||||
val terrainDamages = HashMap<BlockAddress, BlockDamage>()
|
val terrainDamages = HashMap<BlockAddress, Float>()
|
||||||
val wallDamages = HashMap<BlockAddress, BlockDamage>()
|
val wallDamages = HashMap<BlockAddress, Float>()
|
||||||
|
|
||||||
// parse terrain damages
|
// parse terrain damages
|
||||||
for (c in 0 until payloadBytes["TdMG"]!!.size step 10) {
|
for (c in 0 until payloadBytes["TdMG"]!!.size step 10) {
|
||||||
@@ -207,8 +206,8 @@ internal object ReadLayerDataZip {
|
|||||||
|
|
||||||
val spawnX: Int,
|
val spawnX: Int,
|
||||||
val spawnY: Int,
|
val spawnY: Int,
|
||||||
val wallDamages: HashMap<BlockAddress, BlockDamage>,
|
val wallDamages: HashMap<BlockAddress, Float>,
|
||||||
val terrainDamages: HashMap<BlockAddress, BlockDamage>
|
val terrainDamages: HashMap<BlockAddress, Float>
|
||||||
)
|
)
|
||||||
|
|
||||||
private fun ByteArray.shiftLeftBy(size: Int, fill: Byte = 0.toByte()) {
|
private fun ByteArray.shiftLeftBy(size: Int, fill: Byte = 0.toByte()) {
|
||||||
|
|||||||
@@ -228,9 +228,9 @@ internal object BlocksDrawer {
|
|||||||
Block.SANDSTONE_DESERT,
|
Block.SANDSTONE_DESERT,
|
||||||
Block.SANDSTONE_RED,
|
Block.SANDSTONE_RED,
|
||||||
Block.SANDSTONE_WHITE,
|
Block.SANDSTONE_WHITE,
|
||||||
Block.SANDSTONE_GREEN,
|
Block.SANDSTONE_GREEN
|
||||||
|
|
||||||
Block.WATER,
|
/*lock.WATER,
|
||||||
Block.WATER_1,
|
Block.WATER_1,
|
||||||
Block.WATER_2,
|
Block.WATER_2,
|
||||||
Block.WATER_3,
|
Block.WATER_3,
|
||||||
@@ -261,7 +261,7 @@ internal object BlocksDrawer {
|
|||||||
Block.LAVA_12,
|
Block.LAVA_12,
|
||||||
Block.LAVA_13,
|
Block.LAVA_13,
|
||||||
Block.LAVA_14,
|
Block.LAVA_14,
|
||||||
Block.LAVA_15
|
Block.LAVA_15*/
|
||||||
)
|
)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -311,8 +311,8 @@ internal object BlocksDrawer {
|
|||||||
* will blend colour using colour multiplication
|
* will blend colour using colour multiplication
|
||||||
* i.e. red hues get lost if you dive into the water
|
* i.e. red hues get lost if you dive into the water
|
||||||
*/
|
*/
|
||||||
private val TILES_BLEND_MUL = hashSetOf(
|
private val TILES_BLEND_MUL = hashSetOf(-1
|
||||||
Block.WATER,
|
/*Block.WATER,
|
||||||
Block.WATER_1,
|
Block.WATER_1,
|
||||||
Block.WATER_2,
|
Block.WATER_2,
|
||||||
Block.WATER_3,
|
Block.WATER_3,
|
||||||
@@ -343,7 +343,7 @@ internal object BlocksDrawer {
|
|||||||
Block.LAVA_12,
|
Block.LAVA_12,
|
||||||
Block.LAVA_13,
|
Block.LAVA_13,
|
||||||
Block.LAVA_14,
|
Block.LAVA_14,
|
||||||
Block.LAVA_15
|
Block.LAVA_15*/
|
||||||
)
|
)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -215,9 +215,9 @@ object BlocksDrawerOLD {
|
|||||||
Block.SANDSTONE_DESERT,
|
Block.SANDSTONE_DESERT,
|
||||||
Block.SANDSTONE_RED,
|
Block.SANDSTONE_RED,
|
||||||
Block.SANDSTONE_WHITE,
|
Block.SANDSTONE_WHITE,
|
||||||
Block.SANDSTONE_GREEN,
|
Block.SANDSTONE_GREEN
|
||||||
|
|
||||||
Block.WATER,
|
/*Block.WATER,
|
||||||
Block.WATER_1,
|
Block.WATER_1,
|
||||||
Block.WATER_2,
|
Block.WATER_2,
|
||||||
Block.WATER_3,
|
Block.WATER_3,
|
||||||
@@ -248,7 +248,7 @@ object BlocksDrawerOLD {
|
|||||||
Block.LAVA_12,
|
Block.LAVA_12,
|
||||||
Block.LAVA_13,
|
Block.LAVA_13,
|
||||||
Block.LAVA_14,
|
Block.LAVA_14,
|
||||||
Block.LAVA_15
|
Block.LAVA_15*/
|
||||||
)
|
)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -298,8 +298,8 @@ object BlocksDrawerOLD {
|
|||||||
* will blend colour using colour multiplication
|
* will blend colour using colour multiplication
|
||||||
* i.e. red hues get lost if you dive into the water
|
* i.e. red hues get lost if you dive into the water
|
||||||
*/
|
*/
|
||||||
private val TILES_BLEND_MUL = hashSetOf(
|
private val TILES_BLEND_MUL = hashSetOf(-1
|
||||||
Block.WATER,
|
/*Block.WATER,
|
||||||
Block.WATER_1,
|
Block.WATER_1,
|
||||||
Block.WATER_2,
|
Block.WATER_2,
|
||||||
Block.WATER_3,
|
Block.WATER_3,
|
||||||
@@ -330,7 +330,7 @@ object BlocksDrawerOLD {
|
|||||||
Block.LAVA_12,
|
Block.LAVA_12,
|
||||||
Block.LAVA_13,
|
Block.LAVA_13,
|
||||||
Block.LAVA_14,
|
Block.LAVA_14,
|
||||||
Block.LAVA_15
|
Block.LAVA_15*/
|
||||||
)
|
)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user