code cleanup, shortening things

Former-commit-id: d1c81cf3207fff4dd311e9b6c3beb04c194aebc5
Former-commit-id: 26f5042ba41cd577e681a22465435945434c864b
This commit is contained in:
Song Minjae
2016-12-17 14:16:42 +09:00
parent af8516be68
commit 56530a6041
24 changed files with 473 additions and 672 deletions

View File

@@ -1,195 +0,0 @@
package net.torvald.terrarum.mapdrawer
import com.jme3.math.FastMath
import org.newdawn.slick.Color
/**
* Created by minjaesong on 16-07-08.
*/
/*class Light10B {
private var data = 0
constructor(r: Int, g: Int, b: Int) {
data = constructRGBFromInt(r, g, b)
}
constructor(r: Float, g: Float, b: Float) {
if (r < 0 || r > 1.0f) throw IllegalArgumentException("Red: out of range ($r)")
if (g < 0 || g > 1.0f) throw IllegalArgumentException("Green: out of range ($g)")
if (b < 0 || b > 1.0f) throw IllegalArgumentException("Blue: out of range ($b)")
val intR = (r * CHANNEL_MAX).floor()
val intG = (g * CHANNEL_MAX).floor()
val intB = (b * CHANNEL_MAX).floor()
data = constructRGBFromInt(intR, intG, intB)
}
constructor(raw: Int) {
data = raw
}
constructor(color: Color) {
data = constructRGBFromInt(color.red, color.green, color.blue)
}
/**
* Assigners
*/
fun fromRGB(r: Int, g: Int, b: Int): Light10B {
data = constructRGBFromInt(r, g, b)
return this
}
fun fromInt(raw: Int): Light10B {
data = raw
return this
}
fun fromSlickColor(color: Color): Light10B {
data = constructRGBFromInt(color.red, color.green, color.blue)
return this
}
fun toInt(): Int = data
fun constructRGBFromInt(r: Int, g: Int, b: Int): Int {
if (r !in 0..CHANNEL_MAX) throw IllegalArgumentException("Red: out of range ($r)")
if (g !in 0..CHANNEL_MAX) throw IllegalArgumentException("Green: out of range ($g)")
if (b !in 0..CHANNEL_MAX) throw IllegalArgumentException("Blue: out of range ($b)")
return (r * STEPS_2 + g * STEPS + b)
}
val STEPS = 1024
val STEPS_2 = STEPS * STEPS
val CHANNEL_MAX = STEPS - 1
val CHANNEL_MAX_FLOAT = CHANNEL_MAX.toFloat()
val CHANNEL_MAX_DECIMAL = 4f
val COLOUR_RANGE_SIZE = STEPS * STEPS_2
override fun toString() = "10BitCol:$data"
fun rawR() = data / STEPS_2
fun rawG() = data % STEPS_2 / STEPS
fun rawB() = data % STEPS
fun r(): Float = this.rawR() / CHANNEL_MAX_FLOAT
fun g(): Float = this.rawG() / CHANNEL_MAX_FLOAT
fun b(): Float = this.rawB() / CHANNEL_MAX_FLOAT
fun Float.floor() = FastMath.floor(this)
private fun Float.clampChannel() = if (this < 0) 0f else if (this > CHANNEL_MAX_DECIMAL) CHANNEL_MAX_DECIMAL else this
private fun Int.clampChannel() = if (this < 0) 0 else if (this > CHANNEL_MAX) CHANNEL_MAX else this
operator fun plus(other: Light10B) =
Light10B(
rawR().plus(other.rawR()).clampChannel(),
rawG().plus(other.rawG()).clampChannel(),
rawB().plus(other.rawB()).clampChannel()
)
operator fun minus(other: Light10B) =
Light10B(
rawR().minus(other.rawR()).clampChannel(),
rawG().minus(other.rawG()).clampChannel(),
rawB().minus(other.rawB()).clampChannel()
)
operator fun times(other: Light10B) =
Light10B(
r().times(other.r()).clampChannel(),
g().times(other.g()).clampChannel(),
b().times(other.b()).clampChannel()
)
infix fun darken(other: Light10B): Light10B {
if (other.toInt() < 0 || other.toInt() >= COLOUR_RANGE_SIZE)
throw IllegalArgumentException("darken: out of range ($other)")
val r = this.r() * (1f - other.r() * 6) // 6: Arbitrary value
val g = this.g() * (1f - other.g() * 6) // TODO gamma correction?
val b = this.b() * (1f - other.b() * 6)
return Light10B(r.clampChannel(), g.clampChannel(), b.clampChannel())
}
infix fun darken(darken: Int): Light10B {
if (darken < 0 || darken > CHANNEL_MAX)
throw IllegalArgumentException("darken: out of range ($darken)")
val darkenColoured = constructRGBFromInt(darken, darken, darken)
return (this darken darkenColoured)
}
infix fun brighten(other: Light10B): Light10B {
if (other.toInt() < 0 || other.toInt() >= COLOUR_RANGE_SIZE)
throw IllegalArgumentException("brighten: out of range ($other)")
val r = this.r() * (1f + other.r() * 6) // 6: Arbitrary value
val g = this.g() * (1f + other.g() * 6) // TODO gamma correction?
val b = this.b() * (1f + other.b() * 6)
return Light10B(r.clampChannel(), g.clampChannel(), b.clampChannel())
}
/**
* Darken or brighten colour by 'brighten' argument
*
* @param data Raw channel value (0-255) per channel
* @param brighten (-1.0 - 1.0) negative means darkening
* @return processed colour
*/
fun alterBrightnessUniform(data: Light10B, brighten: Float): Light10B {
val modifier = if (brighten < 0)
Light10B(-brighten, -brighten, -brighten)
else
Light10B(brighten, brighten, brighten)
return if (brighten < 0)
data darken modifier
else
data brighten modifier
}
/** Get each channel from two RGB values, return new RGB that has max value of each channel
* @param rgb
* @param rgb2
* @return
*/
infix fun maxBlend(other: Light10B): Light10B {
val r1 = this.rawR()
val r2 = other.rawR()
val newR = if (r1 > r2) r1 else r2
val g1 = this.rawG()
val g2 = other.rawG()
val newG = if (g1 > g2) g1 else g2
val b1 = this.rawB()
val b2 = other.rawB()
val newB = if (b1 > b2) b1 else b2
return Light10B(newR, newG, newB)
}
infix fun screenBlend(other: Light10B): Light10B {
val r1 = this.r()
val r2 = other.r()
val newR = 1 - (1 - r1) * (1 - r2)
val g1 = this.g()
val g2 = other.g()
val newG = 1 - (1 - g1) * (1 - g2)
val b1 = this.b()
val b2 = other.b()
val newB = 1 - (1 - b1) * (1 - b2)
return Light10B(newR, newG, newB)
}
private infix fun colSub(other: Light10B) = Light10B(
(this.rawR() - other.rawR()).clampChannel() ,
(this.rawG() - other.rawG()).clampChannel() ,
(this.rawB() - other.rawB()).clampChannel()
)
private infix fun colAdd(other: Light10B) = Light10B(
(this.rawR() + other.rawR()).clampChannel() ,
(this.rawG() + other.rawG()).clampChannel() ,
(this.rawB() + other.rawB()).clampChannel()
)
}*/

View File

@@ -2,12 +2,12 @@ package net.torvald.terrarum.mapdrawer
import net.torvald.terrarum.gameactors.Luminous
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.tileproperties.TilePropCodex
import net.torvald.terrarum.tileproperties.TileCodex
import com.jme3.math.FastMath
import net.torvald.colourutil.RGB
import net.torvald.colourutil.CIELuvUtil.additiveLuv
import net.torvald.terrarum.gameactors.ActorWithBody
import net.torvald.terrarum.tileproperties.TileNameCode
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.tileproperties.TilePropUtil
import org.newdawn.slick.Color
import org.newdawn.slick.Graphics
@@ -18,8 +18,8 @@ import java.util.*
*/
object LightmapRenderer {
val overscan_open: Int = Math.min(32, 256f.div(TilePropCodex[TileNameCode.AIR].opacity and 0xFF).toFloat().ceil())
val overscan_opaque: Int = Math.min(8, 256f.div(TilePropCodex[TileNameCode.STONE].opacity and 0xFF).toFloat().ceil())
val overscan_open: Int = Math.min(32, 256f.div(TileCodex[Tile.AIR].opacity and 0xFF).toFloat().ceil())
val overscan_opaque: Int = Math.min(8, 256f.div(TileCodex[Tile.STONE].opacity and 0xFF).toFloat().ceil())
private val LIGHTMAP_WIDTH = Terrarum.ingame.ZOOM_MIN.inv().times(Terrarum.WIDTH)
.div(MapDrawer.TILE_SIZE).ceil() + overscan_open * 2 + 3
@@ -32,7 +32,7 @@ object LightmapRenderer {
private val lightmap: Array<IntArray> = Array(LIGHTMAP_HEIGHT) { IntArray(LIGHTMAP_WIDTH) }
private val lanternMap = ArrayList<Lantern>(Terrarum.ingame.ACTORCONTAINER_INITIAL_SIZE * 4)
private val AIR = TileNameCode.AIR
private val AIR = Tile.AIR
private val OFFSET_R = 2
private val OFFSET_G = 1
@@ -151,8 +151,8 @@ object LightmapRenderer {
// build noop map
for (i in 0..rect_size) {
val point = edgeToMaskNum(i)
val tile = Terrarum.ingame.world.getTileFromTerrain(point.first, point.second) ?: TileNameCode.NULL
val isSolid = TilePropCodex[tile].isSolid
val tile = Terrarum.ingame.world.getTileFromTerrain(point.first, point.second) ?: Tile.NULL
val isSolid = TileCodex[tile].isSolid
noop_mask.set(i, isSolid)
}
@@ -237,8 +237,8 @@ object LightmapRenderer {
var lightLevelThis: Int = 0
val thisTerrain = Terrarum.ingame.world.getTileFromTerrain(x, y)
val thisWall = Terrarum.ingame.world.getTileFromWall(x, y)
val thisTileLuminosity = TilePropCodex[thisTerrain].luminosity
val thisTileOpacity = TilePropCodex[thisTerrain].opacity
val thisTileLuminosity = TileCodex[thisTerrain].luminosity
val thisTileOpacity = TileCodex[thisTerrain].opacity
val sunLight = Terrarum.ingame.world.globalLight
// MIX TILE

View File

@@ -3,8 +3,8 @@ package net.torvald.terrarum.mapdrawer
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.gameworld.PairedMapLayer
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.tileproperties.TileNameCode
import net.torvald.terrarum.tileproperties.TilePropCodex
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.tileproperties.TileCodex
import com.jme3.math.FastMath
import net.torvald.terrarum.concurrent.ThreadPool
import net.torvald.terrarum.blendMul
@@ -63,48 +63,48 @@ object MapCamera {
* These are the tiles that only connects to itself, will not connect to colour variants
*/
val TILES_CONNECT_SELF = arrayOf(
TileNameCode.ICE_MAGICAL
, TileNameCode.GLASS_CRUDE
, TileNameCode.GLASS_CLEAN
, TileNameCode.ILLUMINATOR_BLACK
, TileNameCode.ILLUMINATOR_BLUE
, TileNameCode.ILLUMINATOR_BROWN
, TileNameCode.ILLUMINATOR_CYAN
, TileNameCode.ILLUMINATOR_FUCHSIA
, TileNameCode.ILLUMINATOR_GREEN
, TileNameCode.ILLUMINATOR_GREEN_DARK
, TileNameCode.ILLUMINATOR_GREY_DARK
, TileNameCode.ILLUMINATOR_GREY_LIGHT
, TileNameCode.ILLUMINATOR_GREY_MED
, TileNameCode.ILLUMINATOR_ORANGE
, TileNameCode.ILLUMINATOR_PURPLE
, TileNameCode.ILLUMINATOR_RED
, TileNameCode.ILLUMINATOR_TAN
, TileNameCode.ILLUMINATOR_WHITE
, TileNameCode.ILLUMINATOR_YELLOW
, TileNameCode.ILLUMINATOR_BLACK_OFF
, TileNameCode.ILLUMINATOR_BLUE_OFF
, TileNameCode.ILLUMINATOR_BROWN_OFF
, TileNameCode.ILLUMINATOR_CYAN_OFF
, TileNameCode.ILLUMINATOR_FUCHSIA_OFF
, TileNameCode.ILLUMINATOR_GREEN_OFF
, TileNameCode.ILLUMINATOR_GREEN_DARK_OFF
, TileNameCode.ILLUMINATOR_GREY_DARK_OFF
, TileNameCode.ILLUMINATOR_GREY_LIGHT_OFF
, TileNameCode.ILLUMINATOR_GREY_MED_OFF
, TileNameCode.ILLUMINATOR_ORANGE_OFF
, TileNameCode.ILLUMINATOR_PURPLE_OFF
, TileNameCode.ILLUMINATOR_RED_OFF
, TileNameCode.ILLUMINATOR_TAN_OFF
, TileNameCode.ILLUMINATOR_WHITE_OFF
, TileNameCode.ILLUMINATOR_YELLOW
, TileNameCode.SANDSTONE
, TileNameCode.SANDSTONE_BLACK
, TileNameCode.SANDSTONE_DESERT
, TileNameCode.SANDSTONE_RED
, TileNameCode.SANDSTONE_WHITE
, TileNameCode.SANDSTONE_GREEN
, TileNameCode.DAYLIGHT_CAPACITOR
Tile.ICE_MAGICAL
, Tile.GLASS_CRUDE
, Tile.GLASS_CLEAN
, Tile.ILLUMINATOR_BLACK
, Tile.ILLUMINATOR_BLUE
, Tile.ILLUMINATOR_BROWN
, Tile.ILLUMINATOR_CYAN
, Tile.ILLUMINATOR_FUCHSIA
, Tile.ILLUMINATOR_GREEN
, Tile.ILLUMINATOR_GREEN_DARK
, Tile.ILLUMINATOR_GREY_DARK
, Tile.ILLUMINATOR_GREY_LIGHT
, Tile.ILLUMINATOR_GREY_MED
, Tile.ILLUMINATOR_ORANGE
, Tile.ILLUMINATOR_PURPLE
, Tile.ILLUMINATOR_RED
, Tile.ILLUMINATOR_TAN
, Tile.ILLUMINATOR_WHITE
, Tile.ILLUMINATOR_YELLOW
, Tile.ILLUMINATOR_BLACK_OFF
, Tile.ILLUMINATOR_BLUE_OFF
, Tile.ILLUMINATOR_BROWN_OFF
, Tile.ILLUMINATOR_CYAN_OFF
, Tile.ILLUMINATOR_FUCHSIA_OFF
, Tile.ILLUMINATOR_GREEN_OFF
, Tile.ILLUMINATOR_GREEN_DARK_OFF
, Tile.ILLUMINATOR_GREY_DARK_OFF
, Tile.ILLUMINATOR_GREY_LIGHT_OFF
, Tile.ILLUMINATOR_GREY_MED_OFF
, Tile.ILLUMINATOR_ORANGE_OFF
, Tile.ILLUMINATOR_PURPLE_OFF
, Tile.ILLUMINATOR_RED_OFF
, Tile.ILLUMINATOR_TAN_OFF
, Tile.ILLUMINATOR_WHITE_OFF
, Tile.ILLUMINATOR_YELLOW
, Tile.SANDSTONE
, Tile.SANDSTONE_BLACK
, Tile.SANDSTONE_DESERT
, Tile.SANDSTONE_RED
, Tile.SANDSTONE_WHITE
, Tile.SANDSTONE_GREEN
, Tile.DAYLIGHT_CAPACITOR
)
/**
@@ -112,75 +112,75 @@ object MapCamera {
* It holds different shading rule to discriminate with group 01, index 0 is middle tile.
*/
val TILES_CONNECT_MUTUAL = arrayOf(
TileNameCode.STONE
, TileNameCode.STONE_QUARRIED
, TileNameCode.STONE_TILE_WHITE
, TileNameCode.STONE_BRICKS
, TileNameCode.DIRT
, TileNameCode.GRASS
, TileNameCode.PLANK_BIRCH
, TileNameCode.PLANK_BLOODROSE
, TileNameCode.PLANK_EBONY
, TileNameCode.PLANK_NORMAL
, TileNameCode.SAND
, TileNameCode.SAND_WHITE
, TileNameCode.SAND_RED
, TileNameCode.SAND_DESERT
, TileNameCode.SAND_BLACK
, TileNameCode.SAND_GREEN
, TileNameCode.GRAVEL
, TileNameCode.GRAVEL_GREY
, TileNameCode.SNOW
, TileNameCode.ICE_NATURAL
, TileNameCode.ORE_COPPER
, TileNameCode.ORE_IRON
, TileNameCode.ORE_GOLD
, TileNameCode.ORE_SILVER
, TileNameCode.ORE_ILMENITE
, TileNameCode.ORE_AURICHALCUM
Tile.STONE
, Tile.STONE_QUARRIED
, Tile.STONE_TILE_WHITE
, Tile.STONE_BRICKS
, Tile.DIRT
, Tile.GRASS
, Tile.PLANK_BIRCH
, Tile.PLANK_BLOODROSE
, Tile.PLANK_EBONY
, Tile.PLANK_NORMAL
, Tile.SAND
, Tile.SAND_WHITE
, Tile.SAND_RED
, Tile.SAND_DESERT
, Tile.SAND_BLACK
, Tile.SAND_GREEN
, Tile.GRAVEL
, Tile.GRAVEL_GREY
, Tile.SNOW
, Tile.ICE_NATURAL
, Tile.ORE_COPPER
, Tile.ORE_IRON
, Tile.ORE_GOLD
, Tile.ORE_SILVER
, Tile.ORE_ILMENITE
, Tile.ORE_AURICHALCUM
, TileNameCode.WATER
, TileNameCode.WATER_1
, TileNameCode.WATER_2
, TileNameCode.WATER_3
, TileNameCode.WATER_4
, TileNameCode.WATER_5
, TileNameCode.WATER_6
, TileNameCode.WATER_7
, TileNameCode.WATER_8
, TileNameCode.WATER_9
, TileNameCode.WATER_10
, TileNameCode.WATER_11
, TileNameCode.WATER_12
, TileNameCode.WATER_13
, TileNameCode.WATER_14
, TileNameCode.WATER_15
, TileNameCode.LAVA
, TileNameCode.LAVA_1
, TileNameCode.LAVA_2
, TileNameCode.LAVA_3
, TileNameCode.LAVA_4
, TileNameCode.LAVA_5
, TileNameCode.LAVA_6
, TileNameCode.LAVA_7
, TileNameCode.LAVA_8
, TileNameCode.LAVA_9
, TileNameCode.LAVA_10
, TileNameCode.LAVA_11
, TileNameCode.LAVA_12
, TileNameCode.LAVA_13
, TileNameCode.LAVA_14
, TileNameCode.LAVA_15
, Tile.WATER
, Tile.WATER_1
, Tile.WATER_2
, Tile.WATER_3
, Tile.WATER_4
, Tile.WATER_5
, Tile.WATER_6
, Tile.WATER_7
, Tile.WATER_8
, Tile.WATER_9
, Tile.WATER_10
, Tile.WATER_11
, Tile.WATER_12
, Tile.WATER_13
, Tile.WATER_14
, Tile.WATER_15
, Tile.LAVA
, Tile.LAVA_1
, Tile.LAVA_2
, Tile.LAVA_3
, Tile.LAVA_4
, Tile.LAVA_5
, Tile.LAVA_6
, Tile.LAVA_7
, Tile.LAVA_8
, Tile.LAVA_9
, Tile.LAVA_10
, Tile.LAVA_11
, Tile.LAVA_12
, Tile.LAVA_13
, Tile.LAVA_14
, Tile.LAVA_15
)
/**
* Torches, levers, switches, ...
*/
val TILES_WALL_STICKER = arrayOf(
TileNameCode.TORCH
, TileNameCode.TORCH_FROST
, TileNameCode.TORCH_OFF
, TileNameCode.TORCH_FROST_OFF
Tile.TORCH
, Tile.TORCH_FROST
, Tile.TORCH_OFF
, Tile.TORCH_FROST_OFF
)
/**
@@ -196,38 +196,38 @@ object MapCamera {
* i.e. red hues get lost if you dive into the water
*/
val TILES_BLEND_MUL = arrayOf(
TileNameCode.WATER
, TileNameCode.WATER_1
, TileNameCode.WATER_2
, TileNameCode.WATER_3
, TileNameCode.WATER_4
, TileNameCode.WATER_5
, TileNameCode.WATER_6
, TileNameCode.WATER_7
, TileNameCode.WATER_8
, TileNameCode.WATER_9
, TileNameCode.WATER_10
, TileNameCode.WATER_11
, TileNameCode.WATER_12
, TileNameCode.WATER_13
, TileNameCode.WATER_14
, TileNameCode.WATER_15
, TileNameCode.LAVA
, TileNameCode.LAVA_1
, TileNameCode.LAVA_2
, TileNameCode.LAVA_3
, TileNameCode.LAVA_4
, TileNameCode.LAVA_5
, TileNameCode.LAVA_6
, TileNameCode.LAVA_7
, TileNameCode.LAVA_8
, TileNameCode.LAVA_9
, TileNameCode.LAVA_10
, TileNameCode.LAVA_11
, TileNameCode.LAVA_12
, TileNameCode.LAVA_13
, TileNameCode.LAVA_14
, TileNameCode.LAVA_15
Tile.WATER
, Tile.WATER_1
, Tile.WATER_2
, Tile.WATER_3
, Tile.WATER_4
, Tile.WATER_5
, Tile.WATER_6
, Tile.WATER_7
, Tile.WATER_8
, Tile.WATER_9
, Tile.WATER_10
, Tile.WATER_11
, Tile.WATER_12
, Tile.WATER_13
, Tile.WATER_14
, Tile.WATER_15
, Tile.LAVA
, Tile.LAVA_1
, Tile.LAVA_2
, Tile.LAVA_3
, Tile.LAVA_4
, Tile.LAVA_5
, Tile.LAVA_6
, Tile.LAVA_7
, Tile.LAVA_8
, Tile.LAVA_9
, Tile.LAVA_10
, Tile.LAVA_11
, Tile.LAVA_12
, Tile.LAVA_13
, Tile.LAVA_14
, Tile.LAVA_15
)
fun update(gc: GameContainer, delta_t: Int) {
@@ -387,8 +387,8 @@ object MapCamera {
var ret = 0
for (i in 0..3) {
try {
if (!TilePropCodex[nearbyTiles[i]].isSolid &&
!TilePropCodex[nearbyTiles[i]].isFluid) {
if (!TileCodex[nearbyTiles[i]].isSolid &&
!TileCodex[nearbyTiles[i]].isFluid) {
ret += (1 shl i) // add 1, 2, 4, 8 for i = 0, 1, 2, 3
}
} catch (e: ArrayIndexOutOfBoundsException) {
@@ -408,26 +408,26 @@ object MapCamera {
nearbyTiles[NEARBY_TILE_KEY_BACK] = WORLD.getTileFrom(WALL, x , y) ?: 4096
try {
if (TilePropCodex[nearbyTiles[NEARBY_TILE_KEY_DOWN]].isSolid)
if (TileCodex[nearbyTiles[NEARBY_TILE_KEY_DOWN]].isSolid)
// has tile on the bottom
return 3
else if (TilePropCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid
&& TilePropCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid)
else if (TileCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid
&& TileCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid)
// has tile on both sides
return 0
else if (TilePropCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid)
else if (TileCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid)
// has tile on the right
return 2
else if (TilePropCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid)
else if (TileCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid)
// has tile on the left
return 1
else if (TilePropCodex[nearbyTiles[NEARBY_TILE_KEY_BACK]].isSolid)
else if (TileCodex[nearbyTiles[NEARBY_TILE_KEY_BACK]].isSolid)
// has tile on the back
return 0
else
return 3
} catch (e: ArrayIndexOutOfBoundsException) {
return if (TilePropCodex[nearbyTiles[NEARBY_TILE_KEY_DOWN]].isSolid)
return if (TileCodex[nearbyTiles[NEARBY_TILE_KEY_DOWN]].isSolid)
// has tile on the bottom
3 else 0
}

View File

@@ -2,7 +2,7 @@ package net.torvald.terrarum.mapdrawer
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.tileproperties.TileNameCode
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.tilestats.TileStats
import com.jme3.math.FastMath
import net.torvald.colourutil.ColourTemp
@@ -23,14 +23,14 @@ object MapDrawer {
private set
private val TILES_COLD = intArrayOf(
TileNameCode.ICE_MAGICAL
, TileNameCode.ICE_FRAGILE
, TileNameCode.ICE_NATURAL
, TileNameCode.SNOW)
Tile.ICE_MAGICAL
, Tile.ICE_FRAGILE
, Tile.ICE_NATURAL
, Tile.SNOW)
private val TILES_WARM = intArrayOf(
TileNameCode.SAND_DESERT
, TileNameCode.SAND_RED)
Tile.SAND_DESERT
, Tile.SAND_RED)
fun update(gc: GameContainer, delta_t: Int) {
}