mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 20:31:51 +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 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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -47,9 +47,10 @@ abstract class GameItem : Comparable<GameItem>, 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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<BlockAddress, BlockDamage>()
|
||||
val wallDamages = HashMap<BlockAddress, BlockDamage>()
|
||||
val terrainDamages = HashMap<BlockAddress, Float>()
|
||||
val wallDamages = HashMap<BlockAddress, Float>()
|
||||
|
||||
// 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<BlockAddress, BlockDamage>,
|
||||
val terrainDamages: HashMap<BlockAddress, BlockDamage>
|
||||
val wallDamages: HashMap<BlockAddress, Float>,
|
||||
val terrainDamages: HashMap<BlockAddress, Float>
|
||||
)
|
||||
|
||||
private fun ByteArray.shiftLeftBy(size: Int, fill: Byte = 0.toByte()) {
|
||||
|
||||
@@ -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*/
|
||||
)
|
||||
|
||||
/**
|
||||
|
||||
@@ -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*/
|
||||
)
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user