light calc takes fluid into account

This commit is contained in:
minjaesong
2019-01-27 00:30:56 +09:00
parent 55cfae831a
commit 02f9a5e127
18 changed files with 133 additions and 87 deletions

View File

@@ -1,6 +1,8 @@
package net.torvald.terrarum.blockproperties
import net.torvald.terrarum.AppLoader
import net.torvald.terrarum.gameworld.FluidType
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.gameworld.MapLayer
import net.torvald.terrarum.gameworld.PairedMapLayer
import net.torvald.terrarum.utils.CSVFetcher
@@ -72,6 +74,19 @@ object BlockCodex {
}
}
operator fun get(fluidType: FluidType?): BlockProp {
if (fluidType == null || fluidType.value == 0) {
return blockProps[Block.AIR]
}
try {
return blockProps[fluidType.abs() + GameWorld.TILES_SUPPORTED - 1]
}
catch (e: NullPointerException) {
throw NullPointerException("Blockprop with raw id $fluidType does not exist.")
}
}
fun getOrNull(rawIndex: Int?): BlockProp? {
if (rawIndex == null || rawIndex == Block.NULL) {
return null