fluid multiplies themselves ?!

This commit is contained in:
Minjae Song
2018-12-17 22:39:19 +09:00
parent 8db2405232
commit 62319ba4d2
4 changed files with 73 additions and 58 deletions

View File

@@ -380,7 +380,7 @@ open class GameWorld {
else {
//printdbg(this, "> Setting nonzero ($fill) on ($x,$y)")
setTileTerrain(x, y, Block.WATER) // this function alters fluid list, must be called first // TODO fluidType aware
setTileTerrain(x, y, fluidTypeToBlock(fluidType)) // this function alters fluid list, must be called first // TODO fluidType aware
fluidTypes[addr] = fluidType
fluidFills[addr] = fill
}
@@ -401,6 +401,12 @@ open class GameWorld {
return if (type == null) FluidInfo(Fluid.NULL, 0f) else FluidInfo(type, fill!!)
}
private fun fluidTypeToBlock(type: FluidType) = when (type.abs()) {
Fluid.NULL.value -> Block.AIR
in Fluid.fluidRange -> GameWorld.TILES_SUPPORTED - type.abs()
else -> throw IllegalArgumentException("Unsupported fluid type: $type")
}
data class FluidInfo(val type: FluidType, val amount: Float) {
override fun toString() = "Fluid type: ${type.value}, amount: $amount"
}