mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-13 15:16:07 +09:00
Lightmap: HDR (0 - 4.0) implementation
Former-commit-id: 1f18bcecf936b68e11e482a65a3bb247d2fb6d94 Former-commit-id: 961a3236c03e353372e8aa107d56540622e9d303
This commit is contained in:
@@ -274,12 +274,15 @@ constructor() : BasicGameState() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private val globalLightByTime: Int
|
private val globalLightByTime: Int
|
||||||
get() = getGradientColour(2).getRGB24()
|
get() = getGradientColour(2).getRGB24().rgb24ExpandToRgb30()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* extension function for org.newdawn.slick.Color
|
* extension function for org.newdawn.slick.Color
|
||||||
*/
|
*/
|
||||||
fun Color.getRGB24(): Int = (this.redByte shl 16) or (this.greenByte shl 8) or (this.blueByte)
|
fun Color.getRGB24(): Int = (this.redByte shl 16) or (this.greenByte shl 8) or (this.blueByte)
|
||||||
|
fun Int.rgb24ExpandToRgb30(): Int = (this and 0xff) or
|
||||||
|
(this and 0xff00).ushr(8).shl(10) or
|
||||||
|
(this and 0xff0000).ushr(16).shl(20)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* actorContainer extensions
|
* actorContainer extensions
|
||||||
|
|||||||
@@ -19,13 +19,9 @@ object LightmapRenderer {
|
|||||||
/**
|
/**
|
||||||
* 8-Bit RGB values
|
* 8-Bit RGB values
|
||||||
*/
|
*/
|
||||||
@Volatile private var lightMapMSB: Array<CharArray>? = null
|
@Volatile private var lightmap: Array<IntArray> = Array(Terrarum.game.map.height) { IntArray(Terrarum.game.map.width) }
|
||||||
@Volatile private var lightMapLSB: Array<ByteArray>? = null // modify this to CharArray to implement 30-bit RGB
|
|
||||||
private var lightMapInitialised = false
|
private var lightMapInitialised = false
|
||||||
|
|
||||||
// TODO dynamic lightmap with overscanning, HDR (use 30-bit to store 0-1023, 255 = 1.0, 1024 = 4.0)
|
|
||||||
// redefine ONLY IF camera zoom has been changed!
|
|
||||||
|
|
||||||
private val AIR = 0
|
private val AIR = 0
|
||||||
private val SUNSTONE = 41 // TODO add sunstone: emits same light as Map.GL. Goes dark at night
|
private val SUNSTONE = 41 // TODO add sunstone: emits same light as Map.GL. Goes dark at night
|
||||||
|
|
||||||
@@ -37,7 +33,7 @@ object LightmapRenderer {
|
|||||||
private const val TSIZE = MapDrawer.TILE_SIZE
|
private const val TSIZE = MapDrawer.TILE_SIZE
|
||||||
|
|
||||||
// color model related constants
|
// color model related constants
|
||||||
const val MUL = 256 // modify this to 1024 to implement 30-bit RGB
|
const val MUL = 1024 // modify this to 1024 to implement 30-bit RGB
|
||||||
const val MUL_2 = MUL * MUL
|
const val MUL_2 = MUL * MUL
|
||||||
const val CHANNEL_MAX = MUL - 1
|
const val CHANNEL_MAX = MUL - 1
|
||||||
const val CHANNEL_MAX_FLOAT = CHANNEL_MAX.toFloat()
|
const val CHANNEL_MAX_FLOAT = CHANNEL_MAX.toFloat()
|
||||||
@@ -48,79 +44,69 @@ object LightmapRenderer {
|
|||||||
// if out of range then
|
// if out of range then
|
||||||
null
|
null
|
||||||
else
|
else
|
||||||
java.lang.Byte.toUnsignedInt(lightMapLSB!![y][x]) or (lightMapMSB!![y][x].toInt() shl 8)
|
lightmap[y][x]
|
||||||
|
|
||||||
|
|
||||||
fun setLight(x: Int, y: Int, colour: Int) {
|
fun setLight(x: Int, y: Int, colour: Int) {
|
||||||
lightMapLSB!![y][x] = (colour and 0xFF).toByte()
|
lightmap[y][x] = colour
|
||||||
lightMapMSB!![y][x] = (colour ushr 8).toChar()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun renderLightMap() {
|
fun renderLightMap() {
|
||||||
if (lightMapMSB == null && lightMapLSB == null) {
|
|
||||||
lightMapMSB = Array(Terrarum.game.map.height) { CharArray(Terrarum.game.map.width) }
|
|
||||||
lightMapLSB = Array(Terrarum.game.map.height) { ByteArray(Terrarum.game.map.width) }
|
|
||||||
|
|
||||||
if (lightMapInitialised) {
|
|
||||||
throw RuntimeException("Tried to re-initialise lightmap.")
|
|
||||||
}
|
|
||||||
|
|
||||||
lightMapInitialised = true
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
val for_x_start = div16(MapCamera.cameraX) - 1 // fix for premature lightmap rendering
|
val for_x_start = div16(MapCamera.cameraX) - 1 // fix for premature lightmap rendering
|
||||||
val for_y_start = div16(MapCamera.cameraY) - 1 // on topmost/leftmost side
|
val for_y_start = div16(MapCamera.cameraY) - 1 // on topmost/leftmost side
|
||||||
|
|
||||||
val for_x_end = for_x_start + div16(MapCamera.getRenderWidth()) + 3
|
val for_x_end = for_x_start + div16(MapCamera.getRenderWidth()) + 3
|
||||||
val for_y_end = for_y_start + div16(MapCamera.getRenderHeight()) + 2 // same fix as above
|
val for_y_end = for_y_start + div16(MapCamera.getRenderHeight()) + 2 // same fix as above
|
||||||
|
|
||||||
val overscan: Int = FastMath.ceil(256f / (TilePropCodex.getProp(TileNameCode.AIR).opacity and 0xFF).toFloat())
|
val overscan_open: Int = (256f / (TilePropCodex.getProp(TileNameCode.AIR).opacity and 0xFF).toFloat()).ceil()
|
||||||
val overscan_opaque: Int = FastMath.ceil(256f / (TilePropCodex.getProp(TileNameCode.STONE).opacity and 0xFF).toFloat())
|
val overscan_opaque: Int = (256f / (TilePropCodex.getProp(TileNameCode.STONE).opacity and 0xFF).toFloat()).ceil()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* * true: overscanning is limited to 8 tiles in width (overscan_opaque)
|
||||||
|
* * false: overscanning will fully applied to 32 tiles in width (overscan_open)
|
||||||
|
*/
|
||||||
val noop_mask = BitSet(2 * (for_x_end - for_x_start + 1) +
|
val noop_mask = BitSet(2 * (for_x_end - for_x_start + 1) +
|
||||||
2 * (for_y_end - for_y_start - 1))
|
2 * (for_y_end - for_y_start - 1))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updating order:
|
* Updating order:
|
||||||
* +--------+ +--+-----+ +-----+--+ +--------+ -
|
* +--------+ +--+-----+ +-----+--+ +--------+ -
|
||||||
* | ↘ | | | 3| |3 | | | ↙ | ↕︎ overscan
|
* |↘ | | | 3| |3 | | | ↙| ↕︎ overscan_open / overscan_opaque
|
||||||
* | +-----+ | | 2 | | 2 | | +-----+ | -
|
* | +-----+ | | 2 | | 2 | | +-----+ | - depending on the noop_mask
|
||||||
* | |1 | → | |1 | → | 1| | → | 1| |
|
* | |1 | → | |1 | → | 1| | → | 1| |
|
||||||
* | | 2 | | +-----+ +-----+ | | 2 | |
|
* | | 2 | | +-----+ +-----+ | | 2 | |
|
||||||
* | | 3| | ↗ | | ↖ | |3 | |
|
* | | 3| |↗ | | ↖| |3 | |
|
||||||
* +--+-----+ +--------+ +--------+ +-----+--+
|
* +--+-----+ +--------+ +--------+ +-----+--+
|
||||||
* round: 1 2 3 4
|
* round: 1 2 3 4
|
||||||
* for all staticLightMap[y][x]
|
* for all staticLightMap[y][x]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
purgePartOfLightmap(for_x_start - overscan, for_y_start - overscan, for_x_end + overscan, for_y_end + overscan)
|
purgePartOfLightmap(for_x_start - overscan_open, for_y_start - overscan_open, for_x_end + overscan_open, for_y_end + overscan_open)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Round 1
|
// Round 1
|
||||||
for (y in for_y_start - overscan..for_y_end) {
|
for (y in for_y_start - overscan_open..for_y_end) {
|
||||||
for (x in for_x_start - overscan..for_x_end) {
|
for (x in for_x_start - overscan_open..for_x_end) {
|
||||||
setLight(x, y, calculate(x, y))
|
setLight(x, y, calculate(x, y))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Round 2
|
// Round 2
|
||||||
for (y in for_y_end + overscan downTo for_y_start) {
|
for (y in for_y_end + overscan_open downTo for_y_start) {
|
||||||
for (x in for_x_start - overscan..for_x_end) {
|
for (x in for_x_start - overscan_open..for_x_end) {
|
||||||
setLight(x, y, calculate(x, y))
|
setLight(x, y, calculate(x, y))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Round 3
|
// Round 3
|
||||||
for (y in for_y_end + overscan downTo for_y_start) {
|
for (y in for_y_end + overscan_open downTo for_y_start) {
|
||||||
for (x in for_x_end + overscan downTo for_x_start) {
|
for (x in for_x_end + overscan_open downTo for_x_start) {
|
||||||
setLight(x, y, calculate(x, y))
|
setLight(x, y, calculate(x, y))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Round 4
|
// Round 4
|
||||||
for (y in for_y_start - overscan..for_y_end) {
|
for (y in for_y_start - overscan_open..for_y_end) {
|
||||||
for (x in for_x_end + overscan downTo for_x_start) {
|
for (x in for_x_end + overscan_open downTo for_x_start) {
|
||||||
setLight(x, y, calculate(x, y))
|
setLight(x, y, calculate(x, y))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -148,7 +134,7 @@ object LightmapRenderer {
|
|||||||
// luminous tile on top of air
|
// luminous tile on top of air
|
||||||
else if (thisWall == AIR && thisTileLuminosity.toInt() > 0) {
|
else if (thisWall == AIR && thisTileLuminosity.toInt() > 0) {
|
||||||
val darkenSunlight = darkenColoured(sunLight, thisTileOpacity)
|
val darkenSunlight = darkenColoured(sunLight, thisTileOpacity)
|
||||||
lightLevelThis = screenBlend(darkenSunlight, thisTileLuminosity)
|
lightLevelThis = maximiseRGB(darkenSunlight, thisTileLuminosity) // maximise to not exceed 1.0 with normal (<= 1.0) light
|
||||||
}
|
}
|
||||||
// opaque wall and luminous tile
|
// opaque wall and luminous tile
|
||||||
else if (thisWall != AIR && thisTileLuminosity.toInt() > 0) {
|
else if (thisWall != AIR && thisTileLuminosity.toInt() > 0) {
|
||||||
@@ -163,7 +149,7 @@ object LightmapRenderer {
|
|||||||
val tileY = Math.round(actor.hitbox!!.pointedY / TSIZE) - 1
|
val tileY = Math.round(actor.hitbox!!.pointedY / TSIZE) - 1
|
||||||
val actorLuminosity = actor.luminosity
|
val actorLuminosity = actor.luminosity
|
||||||
if (x == tileX && y == tileY) {
|
if (x == tileX && y == tileY) {
|
||||||
lightLevelThis = screenBlend(lightLevelThis, actorLuminosity)
|
lightLevelThis = maximiseRGB(lightLevelThis, actorLuminosity) // maximise to not exceed 1.0 with normal (<= 1.0) light
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -229,19 +215,23 @@ object LightmapRenderer {
|
|||||||
|
|
||||||
// draw
|
// draw
|
||||||
try {
|
try {
|
||||||
|
// loop for "scanlines"
|
||||||
for (y in for_y_start..for_y_end) {
|
for (y in for_y_start..for_y_end) {
|
||||||
|
// loop x
|
||||||
var x = for_x_start
|
var x = for_x_start
|
||||||
while (x < for_x_end) {
|
while (x < for_x_end) {
|
||||||
// smooth
|
// smoothing enabled
|
||||||
if (Terrarum.game.screenZoom >= 1 && Terrarum.gameConfig.getAsBoolean("smoothlighting") ?: false) {
|
if (Terrarum.game.screenZoom >= 1
|
||||||
|
&& Terrarum.gameConfig.getAsBoolean("smoothlighting") ?: false) {
|
||||||
|
|
||||||
val thisLightLevel = getLight(x, y) ?: 0
|
val thisLightLevel = getLight(x, y) ?: 0
|
||||||
if (y > 0 && x < for_x_end && thisLightLevel == 0
|
|
||||||
|
if (x < for_x_end && thisLightLevel == 0
|
||||||
&& getLight(x, y - 1) == 0) {
|
&& getLight(x, y - 1) == 0) {
|
||||||
try {
|
try {
|
||||||
// coalesce zero intensity blocks to one
|
// coalesce zero intensity blocks to one
|
||||||
var zeroLevelCounter = 1
|
var zeroLevelCounter = 1
|
||||||
while (getLight(x + zeroLevelCounter, y) == 0
|
while (getLight(x + zeroLevelCounter, y) == 0) {
|
||||||
&& getLight(x + zeroLevelCounter, y - 1) == 0) {
|
|
||||||
zeroLevelCounter += 1
|
zeroLevelCounter += 1
|
||||||
|
|
||||||
if (x + zeroLevelCounter >= for_x_end) break
|
if (x + zeroLevelCounter >= for_x_end) break
|
||||||
@@ -249,8 +239,11 @@ object LightmapRenderer {
|
|||||||
|
|
||||||
g.color = Color(0)
|
g.color = Color(0)
|
||||||
g.fillRect(
|
g.fillRect(
|
||||||
Math.round(x.toFloat() * TSIZE.toFloat() * Terrarum.game.screenZoom).toFloat(), Math.round(y.toFloat() * TSIZE.toFloat() * Terrarum.game.screenZoom).toFloat(), (FastMath.ceil(
|
(x.toFloat() * TSIZE.toFloat() * Terrarum.game.screenZoom).round().toFloat(),
|
||||||
TSIZE * Terrarum.game.screenZoom) * zeroLevelCounter).toFloat(), FastMath.ceil(TSIZE * Terrarum.game.screenZoom).toFloat())
|
(y.toFloat() * TSIZE.toFloat() * Terrarum.game.screenZoom).round().toFloat(),
|
||||||
|
((TSIZE * Terrarum.game.screenZoom).ceil() * zeroLevelCounter).toFloat(),
|
||||||
|
(TSIZE * Terrarum.game.screenZoom).ceil().toFloat()
|
||||||
|
)
|
||||||
|
|
||||||
x += zeroLevelCounter - 1
|
x += zeroLevelCounter - 1
|
||||||
}
|
}
|
||||||
@@ -292,16 +285,21 @@ object LightmapRenderer {
|
|||||||
|
|
||||||
for (iy in 0..1) {
|
for (iy in 0..1) {
|
||||||
for (ix in 0..1) {
|
for (ix in 0..1) {
|
||||||
g.color = Color(colourMapItoL[iy * 2 + ix])
|
g.color = Color(colourMapItoL[iy * 2 + ix].rgb30ClampTo24())
|
||||||
|
|
||||||
g.fillRect(
|
g.fillRect(
|
||||||
Math.round(
|
(x.toFloat() * TSIZE.toFloat() * Terrarum.game.screenZoom).round()
|
||||||
x.toFloat() * TSIZE.toFloat() * Terrarum.game.screenZoom) + ix * TSIZE / 2 * Terrarum.game.screenZoom, Math.round(
|
+ ix * TSIZE / 2 * Terrarum.game.screenZoom,
|
||||||
y.toFloat() * TSIZE.toFloat() * Terrarum.game.screenZoom) + iy * TSIZE / 2 * Terrarum.game.screenZoom, FastMath.ceil(TSIZE * Terrarum.game.screenZoom / 2).toFloat(), FastMath.ceil(TSIZE * Terrarum.game.screenZoom / 2).toFloat())
|
(y.toFloat() * TSIZE.toFloat() * Terrarum.game.screenZoom).round()
|
||||||
|
+ iy * TSIZE / 2 * Terrarum.game.screenZoom,
|
||||||
|
(TSIZE * Terrarum.game.screenZoom / 2).ceil().toFloat(),
|
||||||
|
(TSIZE * Terrarum.game.screenZoom / 2).ceil().toFloat()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// smoothing disabled
|
||||||
else {
|
else {
|
||||||
try {
|
try {
|
||||||
val thisLightLevel = getLight(x, y)
|
val thisLightLevel = getLight(x, y)
|
||||||
@@ -314,10 +312,13 @@ object LightmapRenderer {
|
|||||||
if (x + sameLevelCounter >= for_x_end) break
|
if (x + sameLevelCounter >= for_x_end) break
|
||||||
}
|
}
|
||||||
|
|
||||||
g.color = Color(getLight(x, y) ?: 0)
|
g.color = Color((getLight(x, y) ?: 0).rgb30ClampTo24())
|
||||||
g.fillRect(
|
g.fillRect(
|
||||||
Math.round(x.toFloat() * TSIZE.toFloat() * Terrarum.game.screenZoom).toFloat(), Math.round(y.toFloat() * TSIZE.toFloat() * Terrarum.game.screenZoom).toFloat(), (FastMath.ceil(
|
(x.toFloat() * TSIZE.toFloat() * Terrarum.game.screenZoom).round().toFloat(),
|
||||||
TSIZE * Terrarum.game.screenZoom) * sameLevelCounter).toFloat(), FastMath.ceil(TSIZE * Terrarum.game.screenZoom).toFloat())
|
(y.toFloat() * TSIZE.toFloat() * Terrarum.game.screenZoom).round().toFloat(),
|
||||||
|
((TSIZE * Terrarum.game.screenZoom).ceil() * sameLevelCounter).toFloat(),
|
||||||
|
(TSIZE * Terrarum.game.screenZoom).ceil().toFloat()
|
||||||
|
)
|
||||||
|
|
||||||
x += sameLevelCounter - 1
|
x += sameLevelCounter - 1
|
||||||
}
|
}
|
||||||
@@ -325,7 +326,8 @@ object LightmapRenderer {
|
|||||||
// do nothing
|
// do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
}// Retro
|
}
|
||||||
|
|
||||||
x++
|
x++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -350,33 +352,11 @@ object LightmapRenderer {
|
|||||||
if (darken.toInt() < 0 || darken.toInt() >= COLOUR_RANGE_SIZE)
|
if (darken.toInt() < 0 || darken.toInt() >= COLOUR_RANGE_SIZE)
|
||||||
throw IllegalArgumentException("darken: out of range ($darken)")
|
throw IllegalArgumentException("darken: out of range ($darken)")
|
||||||
|
|
||||||
val r = clampZero(getR(data) - getR(darken))
|
var r = data.r() * (1f - darken.r() * 6) // 6: Arbitrary value
|
||||||
val g = clampZero(getG(data) - getG(darken))
|
var g = data.g() * (1f - darken.g() * 6) // TODO gamma correction?
|
||||||
val b = clampZero(getB(data) - getB(darken))
|
var b = data.b() * (1f - darken.b() * 6)
|
||||||
|
|
||||||
return constructRGBFromFloat(r, g, b)
|
return constructRGBFromFloat(r.clampZero(), g.clampZero(), b.clampZero())
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Darken each channel by 'darken' argument
|
|
||||||
*
|
|
||||||
* It works like:
|
|
||||||
*
|
|
||||||
* f(data, darken) = RGB(data.r - darken, data.g - darken, data.b - darken)
|
|
||||||
*
|
|
||||||
* @param data (0-39) per channel
|
|
||||||
* @param darken (0-1)
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
fun darkenUniformFloat(data: Int, darken: Float): Int {
|
|
||||||
if (darken < 0 || darken > 1f)
|
|
||||||
throw IllegalArgumentException("darken: out of range ($darken)")
|
|
||||||
|
|
||||||
val r = clampZero(getR(data) - darken)
|
|
||||||
val g = clampZero(getG(data) - darken)
|
|
||||||
val b = clampZero(getB(data) - darken)
|
|
||||||
|
|
||||||
return constructRGBFromFloat(r, g, b)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -393,35 +373,8 @@ object LightmapRenderer {
|
|||||||
if (darken < 0 || darken > CHANNEL_MAX)
|
if (darken < 0 || darken > CHANNEL_MAX)
|
||||||
throw IllegalArgumentException("darken: out of range ($darken)")
|
throw IllegalArgumentException("darken: out of range ($darken)")
|
||||||
|
|
||||||
val r = clampZero(getRawR(data) - darken)
|
val darkenColoured = constructRGBFromInt(darken, darken, darken)
|
||||||
val g = clampZero(getRawG(data) - darken)
|
return darkenColoured(data, darkenColoured)
|
||||||
val b = clampZero(getRawB(data) - darken)
|
|
||||||
|
|
||||||
return constructRGBFromInt(r, g, b)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add each channel's RGB value.
|
|
||||||
*
|
|
||||||
* It works like:
|
|
||||||
*
|
|
||||||
* f(data, brighten) = RGB(data.r + brighten.r, data.g + brighten.g, data.b + brighten.b)
|
|
||||||
* @param data Raw channel value [0-39] per channel
|
|
||||||
* *
|
|
||||||
* @param brighten [0-39] per channel
|
|
||||||
* *
|
|
||||||
* @return brightened data [0-39] per channel
|
|
||||||
*/
|
|
||||||
private fun brightenColoured(data: Int, brighten: Int): Int {
|
|
||||||
if (brighten.toInt() < 0 || brighten.toInt() >= COLOUR_RANGE_SIZE)
|
|
||||||
throw IllegalArgumentException("brighten: out of range ($brighten)")
|
|
||||||
|
|
||||||
val r = clampFloat(getR(data) + getR(brighten))
|
|
||||||
val g = clampFloat(getG(data) + getG(brighten))
|
|
||||||
val b = clampFloat(getB(data) + getB(brighten))
|
|
||||||
|
|
||||||
return constructRGBFromFloat(r, g, b)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get each channel from two RGB values, return new RGB that has max value of each channel
|
/** Get each channel from two RGB values, return new RGB that has max value of each channel
|
||||||
@@ -432,58 +385,40 @@ object LightmapRenderer {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private fun maximiseRGB(rgb: Int, rgb2: Int): Int {
|
private fun maximiseRGB(rgb: Int, rgb2: Int): Int {
|
||||||
val r1 = getRawR(rgb)
|
val r1 = rgb.rawR()
|
||||||
val r2 = getRawR(rgb2)
|
val r2 = rgb2.rawR()
|
||||||
val newR = if (r1 > r2) r1 else r2
|
val newR = if (r1 > r2) r1 else r2
|
||||||
val g1 = getRawG(rgb)
|
val g1 = rgb.rawG()
|
||||||
val g2 = getRawG(rgb2)
|
val g2 = rgb2.rawG()
|
||||||
val newG = if (g1 > g2) g1 else g2
|
val newG = if (g1 > g2) g1 else g2
|
||||||
val b1 = getRawB(rgb)
|
val b1 = rgb.rawB()
|
||||||
val b2 = getRawB(rgb2)
|
val b2 = rgb2.rawB()
|
||||||
val newB = if (b1 > b2) b1 else b2
|
val newB = if (b1 > b2) b1 else b2
|
||||||
|
|
||||||
return constructRGBFromInt(newR, newG, newB)
|
return constructRGBFromInt(newR, newG, newB)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun minimiseRGB(rgb: Int, rgb2: Int): Int {
|
|
||||||
val r1 = getRawR(rgb)
|
|
||||||
val r2 = getRawR(rgb2)
|
|
||||||
val newR = if (r1 < r2) r1 else r2
|
|
||||||
val g1 = getRawG(rgb)
|
|
||||||
val g2 = getRawG(rgb2)
|
|
||||||
val newG = if (g1 < g2) g1 else g2
|
|
||||||
val b1 = getRawB(rgb)
|
|
||||||
val b2 = getRawB(rgb2)
|
|
||||||
val newB = if (b1 < b2) b1 else b2
|
|
||||||
|
|
||||||
return constructRGBFromInt(newR, newG, newB)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun screenBlend(rgb: Int, rgb2: Int): Int {
|
private fun screenBlend(rgb: Int, rgb2: Int): Int {
|
||||||
val r1 = getR(rgb)
|
val r1 = rgb.r()
|
||||||
val r2 = getR(rgb2)
|
val r2 = rgb2.r()
|
||||||
val newR = 1 - (1 - r1) * (1 - r2)
|
val newR = 1 - (1 - r1) * (1 - r2)
|
||||||
val g1 = getG(rgb)
|
val g1 = rgb.g()
|
||||||
val g2 = getG(rgb2)
|
val g2 = rgb2.g()
|
||||||
val newG = 1 - (1 - g1) * (1 - g2)
|
val newG = 1 - (1 - g1) * (1 - g2)
|
||||||
val b1 = getB(rgb)
|
val b1 = rgb.b()
|
||||||
val b2 = getB(rgb2)
|
val b2 = rgb2.b()
|
||||||
val newB = 1 - (1 - b1) * (1 - b2)
|
val newB = 1 - (1 - b1) * (1 - b2)
|
||||||
|
|
||||||
return constructRGBFromFloat(newR, newG, newB)
|
return constructRGBFromFloat(newR, newG, newB)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getRawR(RGB: Int): Int {
|
fun Int.rawR() = this / MUL_2
|
||||||
return RGB.toInt() / MUL_2
|
fun Int.rawG() = this % MUL_2 / MUL
|
||||||
}
|
fun Int.rawB() = this % MUL
|
||||||
|
|
||||||
fun getRawG(RGB: Int): Int {
|
fun Int.r(): Float = this.rawR() / CHANNEL_MAX_FLOAT
|
||||||
return RGB.toInt() % MUL_2 / MUL
|
fun Int.g(): Float = this.rawG() / CHANNEL_MAX_FLOAT
|
||||||
}
|
fun Int.b(): Float = this.rawB() / CHANNEL_MAX_FLOAT
|
||||||
|
|
||||||
fun getRawB(RGB: Int): Int {
|
|
||||||
return RGB.toInt() % MUL
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
||||||
@@ -494,55 +429,43 @@ object LightmapRenderer {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
fun getRaw(RGB: Int, offset: Int): Int {
|
fun getRaw(RGB: Int, offset: Int): Int {
|
||||||
if (offset == OFFSET_R) return getRawR(RGB)
|
if (offset == OFFSET_R) return RGB.rawR()
|
||||||
else if (offset == OFFSET_G) return getRawG(RGB)
|
else if (offset == OFFSET_G) return RGB.rawG()
|
||||||
else if (offset == OFFSET_B) return getRawB(RGB)
|
else if (offset == OFFSET_B) return RGB.rawB()
|
||||||
else throw IllegalArgumentException("Channel offset out of range")
|
else throw IllegalArgumentException("Channel offset out of range")
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getR(rgb: Int): Float {
|
|
||||||
return getRawR(rgb) / CHANNEL_MAX_FLOAT
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun getG(rgb: Int): Float {
|
|
||||||
return getRawG(rgb) / CHANNEL_MAX_FLOAT
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun getB(rgb: Int): Float {
|
|
||||||
return getRawB(rgb) / CHANNEL_MAX_FLOAT
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun addRaw(rgb1: Int, rgb2: Int): Int {
|
private fun addRaw(rgb1: Int, rgb2: Int): Int {
|
||||||
val newR = clampByte(getRawR(rgb1) + getRawB(rgb2))
|
val newR = (rgb1.rawR() + rgb2.rawR()).clampChannel()
|
||||||
val newG = clampByte(getRawG(rgb1) + getRawG(rgb2))
|
val newG = (rgb1.rawG() + rgb2.rawG()).clampChannel()
|
||||||
val newB = clampByte(getRawB(rgb1) + getRawB(rgb2))
|
val newB = (rgb1.rawB() + rgb2.rawB()).clampChannel()
|
||||||
|
|
||||||
return constructRGBFromInt(newR, newG, newB)
|
return constructRGBFromInt(newR, newG, newB)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun constructRGBFromInt(r: Int, g: Int, b: Int): Int {
|
fun constructRGBFromInt(r: Int, g: Int, b: Int): Int {
|
||||||
if (r !in 0..CHANNEL_MAX) throw IllegalArgumentException("Red: out of range")
|
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")
|
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")
|
if (b !in 0..CHANNEL_MAX) throw IllegalArgumentException("Blue: out of range ($b)")
|
||||||
return (r * MUL_2 + g * MUL + b)
|
return (r * MUL_2 + g * MUL + b)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun constructRGBFromFloat(r: Float, g: Float, b: Float): Int {
|
fun constructRGBFromFloat(r: Float, g: Float, b: Float): Int {
|
||||||
if (r < 0 || r > 1.0f) throw IllegalArgumentException("Red: out of range")
|
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")
|
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")
|
if (b < 0 || b > 1.0f) throw IllegalArgumentException("Blue: out of range ($b)")
|
||||||
|
|
||||||
val intR = Math.round(r * CHANNEL_MAX)
|
val intR = (r * CHANNEL_MAX).floor()
|
||||||
val intG = Math.round(g * CHANNEL_MAX)
|
val intG = (g * CHANNEL_MAX).floor()
|
||||||
val intB = Math.round(b * CHANNEL_MAX)
|
val intB = (b * CHANNEL_MAX).floor()
|
||||||
|
|
||||||
return constructRGBFromInt(intR, intG, intB)
|
return constructRGBFromInt(intR, intG, intB)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun colourLinearMix(colA: Int, colB: Int): Int {
|
private fun colourLinearMix(colA: Int, colB: Int): Int {
|
||||||
val r = getRawR(colA) + getRawR(colB) shr 1
|
val r = (colA.rawR() + colB.rawR()) ushr 1
|
||||||
val g = getRawG(colA) + getRawG(colB) shr 1
|
val g = (colA.rawG() + colB.rawG()) ushr 1
|
||||||
val b = getRawB(colA) + getRawB(colB) shr 1
|
val b = (colA.rawB() + colB.rawB()) ushr 1
|
||||||
return constructRGBFromInt(r, g, b)
|
return constructRGBFromInt(r, g, b)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -575,15 +498,16 @@ object LightmapRenderer {
|
|||||||
x !in 0..Terrarum.game.map.width - 1 || y !in 0..Terrarum.game.map.height - 1
|
x !in 0..Terrarum.game.map.width - 1 || y !in 0..Terrarum.game.map.height - 1
|
||||||
|
|
||||||
private fun outOfMapBounds(x: Int, y: Int): Boolean =
|
private fun outOfMapBounds(x: Int, y: Int): Boolean =
|
||||||
x !in 0..lightMapMSB!![0].size - 1 || y !in 0..lightMapMSB!!.size - 1
|
//x !in 0..lightMapMSB!![0].size - 1 || y !in 0..lightMapMSB!!.size - 1
|
||||||
|
x !in 0..lightmap[0].size - 1 || y !in 0..lightmap.size - 1
|
||||||
|
|
||||||
private fun clampZero(i: Int): Int = if (i < 0) 0 else i
|
private fun Int.clampZero() = if (this < 0) 0 else this
|
||||||
|
|
||||||
private fun clampZero(i: Float): Float = if (i < 0) 0f else i
|
private fun Float.clampZero() = if (this < 0) 0f else this
|
||||||
|
|
||||||
private fun clampByte(i: Int): Int = if (i < 0) 0 else if (i > CHANNEL_MAX) CHANNEL_MAX else i
|
private fun Int.clampChannel() = if (this < 0) 0 else if (this > CHANNEL_MAX) CHANNEL_MAX else this
|
||||||
|
|
||||||
private fun clampFloat(i: Float): Float = if (i < 0) 0f else if (i > 1) 1f else i
|
private fun Float.clampOne() = if (this < 0) 0f else if (this > 1) 1f else this
|
||||||
|
|
||||||
fun getValueFromMap(x: Int, y: Int): Int? = getLight(x, y)
|
fun getValueFromMap(x: Int, y: Int): Int? = getLight(x, y)
|
||||||
|
|
||||||
@@ -643,4 +567,21 @@ object LightmapRenderer {
|
|||||||
var y: Int,
|
var y: Int,
|
||||||
var intensity: Int
|
var intensity: Int
|
||||||
)
|
)
|
||||||
|
|
||||||
|
private fun Int.clamp256() = if (this > 255) 255 else this
|
||||||
|
|
||||||
|
fun Int.rgb30ClampTo24(): Int {
|
||||||
|
val r = this.rawR().clamp256()
|
||||||
|
val g = this.rawG().clamp256()
|
||||||
|
val b = this.rawB().clamp256()
|
||||||
|
|
||||||
|
return r.shl(16) or g.shl(8) or b
|
||||||
|
}
|
||||||
|
|
||||||
|
infix fun Float.powerOf(f: Float) = FastMath.pow(this, f)
|
||||||
|
private fun Float.sqr() = this * this
|
||||||
|
private fun Float.sqrt() = FastMath.sqrt(this)
|
||||||
|
fun Float.floor() = FastMath.floor(this)
|
||||||
|
fun Float.round(): Int = Math.round(this)
|
||||||
|
fun Float.ceil() = FastMath.ceil(this)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,122 +1,122 @@
|
|||||||
"id";"dmg";"name" ;"opacity";"strength";"dsty";"fluid";"movr";"solid";"wall";"lumcolor";"drop";"ddmg";"fall";"friction"
|
"id";"dmg";"name" ; "opacity";"strength";"dsty";"fluid";"movr";"solid";"wall"; "lumcolor";"drop";"ddmg";"fall";"friction"
|
||||||
"0"; "0";"TILE_AIR" ; "526344"; "0"; "1"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0";"16"
|
"0"; "0";"TILE_AIR" ; "8396808"; "0"; "1"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0";"16"
|
||||||
"1"; "0";"TILE_STONE" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "0"; "0";"16"
|
"1"; "0";"TILE_STONE" ; "33587232"; "25";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "0"; "0";"16"
|
||||||
"1"; "1";"TILE_STONE_QUARRIED" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "1"; "0";"16"
|
"1"; "1";"TILE_STONE_QUARRIED" ; "33587232"; "25";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "1"; "0";"16"
|
||||||
"2"; "0";"TILE_DIRT" ;"2105376"; "6";"1400"; "0"; "0"; "1"; "1"; "0"; "2"; "0"; "0";"16"
|
"2"; "0";"TILE_DIRT" ; "33587232"; "6";"1400"; "0"; "0"; "1"; "1"; "0"; "2"; "0"; "0";"16"
|
||||||
"2"; "1";"TILE_GRASS" ;"2105376"; "6";"1400"; "0"; "0"; "1"; "1"; "0"; "2"; "1"; "0";"16"
|
"2"; "1";"TILE_GRASS" ; "33587232"; "6";"1400"; "0"; "0"; "1"; "1"; "0"; "2"; "1"; "0";"16"
|
||||||
"3"; "0";"TILE_PLANK_NORMAL" ;"2105376"; "12"; "740"; "0"; "0"; "1"; "1"; "0"; "3"; "0"; "0";"16"
|
"3"; "0";"TILE_PLANK_NORMAL" ; "33587232"; "12"; "740"; "0"; "0"; "1"; "1"; "0"; "3"; "0"; "0";"16"
|
||||||
"3"; "1";"TILE_PLANK_EBONY" ;"2105376"; "12";"1200"; "0"; "0"; "1"; "1"; "0"; "3"; "1"; "0";"16"
|
"3"; "1";"TILE_PLANK_EBONY" ; "33587232"; "12";"1200"; "0"; "0"; "1"; "1"; "0"; "3"; "1"; "0";"16"
|
||||||
"3"; "2";"TILE_PLANK_BIRCH" ;"2105376"; "12"; "670"; "0"; "0"; "1"; "1"; "0"; "3"; "2"; "0";"16"
|
"3"; "2";"TILE_PLANK_BIRCH" ; "33587232"; "12"; "670"; "0"; "0"; "1"; "1"; "0"; "3"; "2"; "0";"16"
|
||||||
"3"; "3";"TILE_PLANK_BLOODROSE" ;"2105376"; "12"; "900"; "0"; "0"; "1"; "1"; "0"; "3"; "3"; "0";"16"
|
"3"; "3";"TILE_PLANK_BLOODROSE" ; "33587232"; "12"; "900"; "0"; "0"; "1"; "1"; "0"; "3"; "3"; "0";"16"
|
||||||
"4"; "0";"TILE_TRUNK_NORMAL" ;"2105376"; "12"; "740"; "0"; "0"; "1"; "0"; "0"; "3"; "0"; "0";"16"
|
"4"; "0";"TILE_TRUNK_NORMAL" ; "33587232"; "12"; "740"; "0"; "0"; "1"; "0"; "0"; "3"; "0"; "0";"16"
|
||||||
"4"; "1";"TILE_TRUNK_EBONY" ;"2105376"; "12";"1200"; "0"; "0"; "1"; "0"; "0"; "3"; "1"; "0";"16"
|
"4"; "1";"TILE_TRUNK_EBONY" ; "33587232"; "12";"1200"; "0"; "0"; "1"; "0"; "0"; "3"; "1"; "0";"16"
|
||||||
"4"; "2";"TILE_TRUNK_BIRCH" ;"2105376"; "12"; "670"; "0"; "0"; "1"; "0"; "0"; "3"; "2"; "0";"16"
|
"4"; "2";"TILE_TRUNK_BIRCH" ; "33587232"; "12"; "670"; "0"; "0"; "1"; "0"; "0"; "3"; "2"; "0";"16"
|
||||||
"4"; "3";"TILE_TRUNK_BLOODROSE" ;"2105376"; "12"; "900"; "0"; "0"; "1"; "0"; "0"; "3"; "3"; "0";"16"
|
"4"; "3";"TILE_TRUNK_BLOODROSE" ; "33587232"; "12"; "900"; "0"; "0"; "1"; "0"; "0"; "3"; "3"; "0";"16"
|
||||||
"5"; "0";"TILE_SAND" ;"2105376"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "5"; "0"; "1";"16"
|
"5"; "0";"TILE_SAND" ; "33587232"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "5"; "0"; "1";"16"
|
||||||
"5"; "1";"TILE_SAND_WHITE" ;"2105376"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "5"; "1"; "1";"16"
|
"5"; "1";"TILE_SAND_WHITE" ; "33587232"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "5"; "1"; "1";"16"
|
||||||
"5"; "2";"TILE_SAND_RED" ;"2105376"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "5"; "2"; "1";"16"
|
"5"; "2";"TILE_SAND_RED" ; "33587232"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "5"; "2"; "1";"16"
|
||||||
"5"; "3";"TILE_SAND_DESERT" ;"2105376"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "5"; "3"; "1";"16"
|
"5"; "3";"TILE_SAND_DESERT" ; "33587232"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "5"; "3"; "1";"16"
|
||||||
"5"; "4";"TILE_SAND_BLACK" ;"2105376"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "5"; "4"; "1";"16"
|
"5"; "4";"TILE_SAND_BLACK" ; "33587232"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "5"; "4"; "1";"16"
|
||||||
"5"; "5";"TILE_SAND_GREEN" ;"2105376"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "5"; "5"; "1";"16"
|
"5"; "5";"TILE_SAND_GREEN" ; "33587232"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "5"; "5"; "1";"16"
|
||||||
"6"; "0";"TILE_GRAVEL" ;"2105376"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "6"; "0"; "1";"16"
|
"6"; "0";"TILE_GRAVEL" ; "33587232"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "6"; "0"; "1";"16"
|
||||||
"6"; "1";"TILE_GRAVEL_GREY" ;"2105376"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "6"; "1"; "1";"16"
|
"6"; "1";"TILE_GRAVEL_GREY" ; "33587232"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "6"; "1"; "1";"16"
|
||||||
"7"; "0";"TILE_ORE_MALACHITE" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "7"; "0"; "0";"16"
|
"7"; "0";"TILE_ORE_MALACHITE" ; "33587232"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "7"; "0"; "0";"16"
|
||||||
"7"; "1";"TILE_ORE_HEMATITE" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "7"; "1"; "0";"16"
|
"7"; "1";"TILE_ORE_HEMATITE" ; "33587232"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "7"; "1"; "0";"16"
|
||||||
"7"; "2";"TILE_ORE_NATURAL_GOLD" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "7"; "2"; "0";"16"
|
"7"; "2";"TILE_ORE_NATURAL_GOLD" ; "33587232"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "7"; "2"; "0";"16"
|
||||||
"7"; "3";"TILE_ORE_NATURAL_SILVER" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "7"; "3"; "0";"16"
|
"7"; "3";"TILE_ORE_NATURAL_SILVER" ; "33587232"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "7"; "3"; "0";"16"
|
||||||
"7"; "4";"TILE_ORE_RUTILE" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "7"; "4"; "0";"16"
|
"7"; "4";"TILE_ORE_RUTILE" ; "33587232"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "7"; "4"; "0";"16"
|
||||||
"7"; "5";"TILE_ORE_AURICHALCUMITE" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "7"; "5"; "0";"16"
|
"7"; "5";"TILE_ORE_AURICHALCUMITE" ; "33587232"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "7"; "5"; "0";"16"
|
||||||
"8"; "0";"TILE_GEM_RUBY" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "8"; "0"; "0";"16"
|
"8"; "0";"TILE_GEM_RUBY" ; "33587232"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "8"; "0"; "0";"16"
|
||||||
"8"; "1";"TILE_GEM_EMERALD" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "8"; "1"; "0";"16"
|
"8"; "1";"TILE_GEM_EMERALD" ; "33587232"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "8"; "1"; "0";"16"
|
||||||
"8"; "2";"TILE_GEM_SAPPHIRE" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "8"; "2"; "0";"16"
|
"8"; "2";"TILE_GEM_SAPPHIRE" ; "33587232"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "8"; "2"; "0";"16"
|
||||||
"8"; "3";"TILE_GEM_TOPAZ" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "8"; "3"; "0";"16"
|
"8"; "3";"TILE_GEM_TOPAZ" ; "33587232"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "8"; "3"; "0";"16"
|
||||||
"8"; "4";"TILE_GEM_DIAMOND" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "8"; "4"; "0";"16"
|
"8"; "4";"TILE_GEM_DIAMOND" ; "33587232"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "8"; "4"; "0";"16"
|
||||||
"8"; "5";"TILE_GEM_AMETHYST" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "8"; "5"; "0";"16"
|
"8"; "5";"TILE_GEM_AMETHYST" ; "33587232"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "8"; "5"; "0";"16"
|
||||||
"9"; "0";"TILE_SNOW" ;"2105376"; "6"; "500"; "0"; "0"; "1"; "1"; "0"; "9"; "0"; "0";"16"
|
"9"; "0";"TILE_SNOW" ; "33587232"; "6"; "500"; "0"; "0"; "1"; "1"; "0"; "9"; "0"; "0";"16"
|
||||||
"9"; "1";"TILE_ICE_FRAGILE" ; "855309"; "1"; "930"; "0"; "0"; "1"; "0"; "0"; "9"; "1"; "0";"16"
|
"9"; "1";"TILE_ICE_FRAGILE" ; "13644813"; "1"; "930"; "0"; "0"; "1"; "0"; "0"; "9"; "1"; "0";"16"
|
||||||
"9"; "2";"TILE_ICE_NATURAL" ;"1710618"; "25"; "930"; "0"; "0"; "1"; "1"; "0"; "9"; "2"; "0"; "8"
|
"9"; "2";"TILE_ICE_NATURAL" ; "27289626"; "25"; "930"; "0"; "0"; "1"; "1"; "0"; "9"; "2"; "0"; "8"
|
||||||
"9"; "3";"TILE_ICE_CLEAR_MAGICAL" ;"2105376"; "25";"3720"; "0"; "0"; "1"; "1"; "1253434"; "9"; "3"; "0"; "8"
|
"9"; "3";"TILE_ICE_CLEAR_MAGICAL" ; "33587232"; "25";"3720"; "0"; "0"; "1"; "1"; "1253434"; "9"; "3"; "0"; "8"
|
||||||
"10"; "0";"TILE_PLATFORM_STONE" ; "526344"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "10"; "0"; "0";"16"
|
"10"; "0";"TILE_PLATFORM_STONE" ; "8396808"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "10"; "0"; "0";"16"
|
||||||
"10"; "1";"TILE_PLATFORM_WOODEN" ; "526344"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "10"; "1"; "0";"16"
|
"10"; "1";"TILE_PLATFORM_WOODEN" ; "8396808"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "10"; "1"; "0";"16"
|
||||||
"10"; "2";"TILE_PLATFORM_EBONY" ; "526344"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "10"; "2"; "0";"16"
|
"10"; "2";"TILE_PLATFORM_EBONY" ; "8396808"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "10"; "2"; "0";"16"
|
||||||
"10"; "3";"TILE_PLATFORM_BIRCH" ; "526344"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "10"; "3"; "0";"16"
|
"10"; "3";"TILE_PLATFORM_BIRCH" ; "8396808"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "10"; "3"; "0";"16"
|
||||||
"10"; "4";"TILE_PLATFORM_BLOODROSE" ; "526344"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "10"; "4"; "0";"16"
|
"10"; "4";"TILE_PLATFORM_BLOODROSE" ; "8396808"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "10"; "4"; "0";"16"
|
||||||
"11"; "0";"TILE_TORCH" ; "526344"; "0"; "N/A"; "0"; "0"; "0"; "0";"15304000"; "11"; "0"; "0";"16"
|
"11"; "0";"TILE_TORCH" ; "8396808"; "0"; "N/A"; "0"; "0"; "0"; "0"; "15304000"; "11"; "0"; "0";"16"
|
||||||
"11"; "1";"TILE_TORCH_FROST" ; "526344"; "0"; "N/A"; "0"; "0"; "0"; "0"; "5143807"; "11"; "1"; "0";"16"
|
"11"; "1";"TILE_TORCH_FROST" ; "8396808"; "0"; "N/A"; "0"; "0"; "0"; "0"; "5143807"; "11"; "1"; "0";"16"
|
||||||
"12"; "0";"TILE_TORCH" ; "526344"; "0"; "N/A"; "0"; "0"; "0"; "0"; "0"; "11"; "0"; "0";"16"
|
"12"; "0";"TILE_TORCH" ; "8396808"; "0"; "N/A"; "0"; "0"; "0"; "0"; "0"; "11"; "0"; "0";"16"
|
||||||
"12"; "1";"TILE_TORCH_FROST" ; "526344"; "0"; "N/A"; "0"; "0"; "0"; "0"; "0"; "11"; "1"; "0";"16"
|
"12"; "1";"TILE_TORCH_FROST" ; "8396808"; "0"; "N/A"; "0"; "0"; "0"; "0"; "0"; "11"; "1"; "0";"16"
|
||||||
"13"; "0";"TILE_ILLUMINATOR_WHITE" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1";"15461355"; "13"; "0"; "0";"16"
|
"13"; "0";"TILE_ILLUMINATOR_WHITE" ; "8396808"; "0"; "N/A"; "0"; "0"; "1"; "1"; "15461355"; "13"; "0"; "0";"16"
|
||||||
"13"; "1";"TILE_ILLUMINATOR_YELLOW" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1";"15461120"; "13"; "1"; "0";"16"
|
"13"; "1";"TILE_ILLUMINATOR_YELLOW" ; "8396808"; "0"; "N/A"; "0"; "0"; "1"; "1"; "15461120"; "13"; "1"; "0";"16"
|
||||||
"13"; "2";"TILE_ILLUMINATOR_ORANGE" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1";"15447808"; "13"; "2"; "0";"16"
|
"13"; "2";"TILE_ILLUMINATOR_ORANGE" ; "8396808"; "0"; "N/A"; "0"; "0"; "1"; "1"; "15447808"; "13"; "2"; "0";"16"
|
||||||
"13"; "3";"TILE_ILLUMINATOR_RED" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1";"15400960"; "13"; "3"; "0";"16"
|
"13"; "3";"TILE_ILLUMINATOR_RED" ; "8396808"; "0"; "N/A"; "0"; "0"; "1"; "1"; "15400960"; "13"; "3"; "0";"16"
|
||||||
"13"; "4";"TILE_ILLUMINATOR_FUCHSIA" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1";"15401143"; "13"; "4"; "0";"16"
|
"13"; "4";"TILE_ILLUMINATOR_FUCHSIA" ; "8396808"; "0"; "N/A"; "0"; "0"; "1"; "1"; "15401143"; "13"; "4"; "0";"16"
|
||||||
"13"; "5";"TILE_ILLUMINATOR_PURPLE" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1";"11993323"; "13"; "5"; "0";"16"
|
"13"; "5";"TILE_ILLUMINATOR_PURPLE" ; "8396808"; "0"; "N/A"; "0"; "0"; "1"; "1"; "11993323"; "13"; "5"; "0";"16"
|
||||||
"13"; "6";"TILE_ILLUMINATOR_BLUE" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1"; "235"; "13"; "6"; "0";"16"
|
"13"; "6";"TILE_ILLUMINATOR_BLUE" ; "8396808"; "0"; "N/A"; "0"; "0"; "1"; "1"; "235"; "13"; "6"; "0";"16"
|
||||||
"13"; "7";"TILE_ILLUMINATOR_CYAN" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1"; "51947"; "13"; "7"; "0";"16"
|
"13"; "7";"TILE_ILLUMINATOR_CYAN" ; "8396808"; "0"; "N/A"; "0"; "0"; "1"; "1"; "51947"; "13"; "7"; "0";"16"
|
||||||
"13"; "8";"TILE_ILLUMINATOR_GREEN" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1"; "4311552"; "13"; "8"; "0";"16"
|
"13"; "8";"TILE_ILLUMINATOR_GREEN" ; "8396808"; "0"; "N/A"; "0"; "0"; "1"; "1"; "4311552"; "13"; "8"; "0";"16"
|
||||||
"13"; "9";"TILE_ILLUMINATOR_GREEN_DARK";"526344"; "0"; "N/A"; "0"; "0"; "1"; "1"; "2123776"; "13"; "9"; "0";"16"
|
"13"; "9";"TILE_ILLUMINATOR_GREEN_DARK";"8396808"; "0"; "N/A"; "0"; "0"; "1"; "1"; "2123776"; "13"; "9"; "0";"16"
|
||||||
"13"; "10";"TILE_ILLUMINATOR_BROWN" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1"; "5578752"; "13"; "10"; "0";"16"
|
"13"; "10";"TILE_ILLUMINATOR_BROWN" ; "8396808"; "0"; "N/A"; "0"; "0"; "1"; "1"; "5578752"; "13"; "10"; "0";"16"
|
||||||
"13"; "11";"TILE_ILLUMINATOR_TAN" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1"; "9857076"; "13"; "11"; "0";"16"
|
"13"; "11";"TILE_ILLUMINATOR_TAN" ; "8396808"; "0"; "N/A"; "0"; "0"; "1"; "1"; "9857076"; "13"; "11"; "0";"16"
|
||||||
"13"; "12";"TILE_ILLUMINATOR_GREY_LIGHT";"526344"; "0"; "N/A"; "0"; "0"; "1"; "1";"12434877"; "13"; "12"; "0";"16"
|
"13"; "12";"TILE_ILLUMINATOR_GREY_LIGHT";"8396808"; "0"; "N/A"; "0"; "0"; "1"; "1"; "12434877"; "13"; "12"; "0";"16"
|
||||||
"13"; "13";"TILE_ILLUMINATOR_GREY_MED"; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1"; "7697781"; "13"; "13"; "0";"16"
|
"13"; "13";"TILE_ILLUMINATOR_GREY_MED"; "8396808"; "0"; "N/A"; "0"; "0"; "1"; "1"; "7697781"; "13"; "13"; "0";"16"
|
||||||
"13"; "14";"TILE_ILLUMINATOR_GREY_DARK";"526344"; "0"; "N/A"; "0"; "0"; "1"; "1"; "4276545"; "13"; "14"; "0";"16"
|
"13"; "14";"TILE_ILLUMINATOR_GREY_DARK"; "8396808"; "0"; "N/A"; "0"; "0"; "1"; "1"; "4276545"; "13"; "14"; "0";"16"
|
||||||
"13"; "15";"TILE_ILLUMINATOR_BLACK" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1"; "7274751"; "13"; "15"; "0";"16"
|
"13"; "15";"TILE_ILLUMINATOR_BLACK" ; "8396808"; "0"; "N/A"; "0"; "0"; "1"; "1"; "7274751"; "13"; "15"; "0";"16"
|
||||||
"14"; "0";"TILE_ILLUMINATOR_WHITE" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "0"; "0";"16"
|
"14"; "0";"TILE_ILLUMINATOR_WHITE" ; "33587232"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "0"; "0";"16"
|
||||||
"14"; "1";"TILE_ILLUMINATOR_YELLOW" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "1"; "0";"16"
|
"14"; "1";"TILE_ILLUMINATOR_YELLOW" ; "33587232"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "1"; "0";"16"
|
||||||
"14"; "2";"TILE_ILLUMINATOR_ORANGE" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "2"; "0";"16"
|
"14"; "2";"TILE_ILLUMINATOR_ORANGE" ; "33587232"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "2"; "0";"16"
|
||||||
"14"; "3";"TILE_ILLUMINATOR_RED" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "3"; "0";"16"
|
"14"; "3";"TILE_ILLUMINATOR_RED" ; "33587232"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "3"; "0";"16"
|
||||||
"14"; "4";"TILE_ILLUMINATOR_FUCHSIA" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "4"; "0";"16"
|
"14"; "4";"TILE_ILLUMINATOR_FUCHSIA" ; "33587232"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "4"; "0";"16"
|
||||||
"14"; "5";"TILE_ILLUMINATOR_PURPLE" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "5"; "0";"16"
|
"14"; "5";"TILE_ILLUMINATOR_PURPLE" ; "33587232"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "5"; "0";"16"
|
||||||
"14"; "6";"TILE_ILLUMINATOR_BLUE" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "6"; "0";"16"
|
"14"; "6";"TILE_ILLUMINATOR_BLUE" ; "33587232"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "6"; "0";"16"
|
||||||
"14"; "7";"TILE_ILLUMINATOR_CYAN" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "7"; "0";"16"
|
"14"; "7";"TILE_ILLUMINATOR_CYAN" ; "33587232"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "7"; "0";"16"
|
||||||
"14"; "8";"TILE_ILLUMINATOR_GREEN" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "8"; "0";"16"
|
"14"; "8";"TILE_ILLUMINATOR_GREEN" ; "33587232"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "8"; "0";"16"
|
||||||
"14"; "9";"TILE_ILLUMINATOR_GREEN_DARK";"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "9"; "0";"16"
|
"14"; "9";"TILE_ILLUMINATOR_GREEN_DARK";"33587232"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "9"; "0";"16"
|
||||||
"14"; "10";"TILE_ILLUMINATOR_BROWN" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "10"; "0";"16"
|
"14"; "10";"TILE_ILLUMINATOR_BROWN" ; "33587232"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "10"; "0";"16"
|
||||||
"14"; "11";"TILE_ILLUMINATOR_TAN" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "11"; "0";"16"
|
"14"; "11";"TILE_ILLUMINATOR_TAN" ; "33587232"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "11"; "0";"16"
|
||||||
"14"; "12";"TILE_ILLUMINATOR_GREY_LIGHT";"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "12"; "0";"16"
|
"14"; "12";"TILE_ILLUMINATOR_GREY_LIGHT";"33587232"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "12"; "0";"16"
|
||||||
"14"; "13";"TILE_ILLUMINATOR_GREY_MED";"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "13"; "0";"16"
|
"14"; "13";"TILE_ILLUMINATOR_GREY_MED"; "33587232"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "13"; "0";"16"
|
||||||
"14"; "14";"TILE_ILLUMINATOR_GREY_DARK";"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "14"; "0";"16"
|
"14"; "14";"TILE_ILLUMINATOR_GREY_DARK";"33587232"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "14"; "0";"16"
|
||||||
"14"; "15";"TILE_ILLUMINATOR_BLACK" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "15"; "0";"16"
|
"14"; "15";"TILE_ILLUMINATOR_BLACK" ; "33587232"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "15"; "0";"16"
|
||||||
"15"; "0";"TILE_SANDSTONE" ;"2105376"; "25";"1900"; "0"; "0"; "1"; "1"; "0"; "15"; "0"; "0";"16"
|
"15"; "0";"TILE_SANDSTONE" ; "33587232"; "25";"1900"; "0"; "0"; "1"; "1"; "0"; "15"; "0"; "0";"16"
|
||||||
"15"; "1";"TILE_SANDSTONE_WHITE" ;"2105376"; "25";"1900"; "0"; "0"; "1"; "1"; "0"; "15"; "1"; "0";"16"
|
"15"; "1";"TILE_SANDSTONE_WHITE" ; "33587232"; "25";"1900"; "0"; "0"; "1"; "1"; "0"; "15"; "1"; "0";"16"
|
||||||
"15"; "2";"TILE_SANDSTONE_RED" ;"2105376"; "25";"1900"; "0"; "0"; "1"; "1"; "0"; "15"; "2"; "0";"16"
|
"15"; "2";"TILE_SANDSTONE_RED" ; "33587232"; "25";"1900"; "0"; "0"; "1"; "1"; "0"; "15"; "2"; "0";"16"
|
||||||
"15"; "3";"TILE_SANDSTONE_DESERT" ;"2105376"; "25";"1900"; "0"; "0"; "1"; "1"; "0"; "15"; "3"; "0";"16"
|
"15"; "3";"TILE_SANDSTONE_DESERT" ; "33587232"; "25";"1900"; "0"; "0"; "1"; "1"; "0"; "15"; "3"; "0";"16"
|
||||||
"15"; "4";"TILE_SANDSTONE_BLACK" ;"2105376"; "25";"1900"; "0"; "0"; "1"; "1"; "0"; "15"; "4"; "0";"16"
|
"15"; "4";"TILE_SANDSTONE_BLACK" ; "33587232"; "25";"1900"; "0"; "0"; "1"; "1"; "0"; "15"; "4"; "0";"16"
|
||||||
"15"; "5";"TILE_SANDSTONE_BLACK" ;"2105376"; "25";"1900"; "0"; "0"; "1"; "1"; "0"; "15"; "5"; "0";"16"
|
"15"; "5";"TILE_SANDSTONE_BLACK" ; "33587232"; "25";"1900"; "0"; "0"; "1"; "1"; "0"; "15"; "5"; "0";"16"
|
||||||
"16"; "0";"TILE_LANTERN_IRON_REGULAR"; "526344"; "0"; "N/A"; "0"; "0"; "0"; "0";"16769944"; "16"; "0"; "0";"16"
|
"16"; "0";"TILE_LANTERN_IRON_REGULAR"; "8396808"; "0"; "N/A"; "0"; "0"; "0"; "0"; "16769944"; "16"; "0"; "0";"16"
|
||||||
"255"; "0";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
"255"; "0";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
"255"; "1";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
"255"; "1";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
"255"; "2";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
"255"; "2";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
"255"; "3";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
"255"; "3";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
"255"; "4";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
"255"; "4";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
"255"; "5";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
"255"; "5";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
"255"; "6";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
"255"; "6";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
"255"; "7";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
"255"; "7";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
"255"; "8";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
"255"; "8";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
"255"; "9";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
"255"; "9";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
"255"; "10";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
"255"; "10";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
"255"; "11";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
"255"; "11";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
"255"; "12";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
"255"; "12";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
"255"; "13";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
"255"; "13";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
"255"; "14";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
"255"; "14";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
"255"; "15";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
"255"; "15";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
"254"; "0";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
"254"; "0";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "48"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0";"16"
|
||||||
"254"; "1";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
"254"; "1";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "48"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0";"16"
|
||||||
"254"; "2";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
"254"; "2";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "48"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0";"16"
|
||||||
"254"; "3";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
"254"; "3";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "48"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0";"16"
|
||||||
"254"; "4";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
"254"; "4";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "48"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0";"16"
|
||||||
"254"; "5";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
"254"; "5";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "48"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0";"16"
|
||||||
"254"; "6";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
"254"; "6";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "48"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0";"16"
|
||||||
"254"; "7";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
"254"; "7";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "48"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0";"16"
|
||||||
"254"; "8";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
"254"; "8";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "48"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0";"16"
|
||||||
"254"; "9";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
"254"; "9";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "48"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0";"16"
|
||||||
"254"; "10";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
"254"; "10";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "48"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0";"16"
|
||||||
"254"; "11";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
"254"; "11";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "48"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0";"16"
|
||||||
"254"; "12";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
"254"; "12";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "48"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0";"16"
|
||||||
"254"; "13";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
"254"; "13";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "48"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0";"16"
|
||||||
"254"; "14";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
"254"; "14";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "48"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0";"16"
|
||||||
"254"; "15";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
"254"; "15";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "48"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0";"16"
|
||||||
"256"; "0";"TILE_NULL" ; "0"; "-1";"2600"; "0"; "0"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
"256"; "0";"TILE_NULL" ; "0"; "-1";"2600"; "0"; "0"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
# Friction: 0: frictionless, <16: slippery, 16: regular, >16: sticky
|
# Friction: 0: frictionless, <16: slippery, 16: regular, >16: sticky
|
||||||
# Opacity/Lumcolor: 40-step RGB
|
# Opacity/Lumcolor: 40-step RGB
|
||||||
# Solid: whether the tile has full collision
|
# Solid: whether the tile has full collision
|
||||||
|
|||||||
|
Can't render this file because it contains an unexpected character in line 1 and column 18.
|
@@ -54,7 +54,7 @@ object PFSigrid {
|
|||||||
|
|
||||||
p.actorValue[AVKey.INTELLIGENT] = true
|
p.actorValue[AVKey.INTELLIGENT] = true
|
||||||
|
|
||||||
p.actorValue[AVKey.LUMINOSITY] = 5980540
|
p.actorValue[AVKey.LUMINOSITY] = 95487100
|
||||||
|
|
||||||
p.actorValue[AVKey.BASEDEFENCE] = 141
|
p.actorValue[AVKey.BASEDEFENCE] = 141
|
||||||
|
|
||||||
|
|||||||
@@ -29,5 +29,6 @@ Connect two or more tracker head to play the array of trackers play simultaneous
|
|||||||
speed = 120
|
speed = 120
|
||||||
}
|
}
|
||||||
|
|
||||||
*int: (0-63) number of the note pitch that is struck. 32: Middle C (C3)
|
*int: (0-63) number of the note pitch that is struck. 32: Middle C (C3).
|
||||||
|
'A' just above of Middle C (A3) has base pitch of 440 Hz.
|
||||||
*speed: in BPM
|
*speed: in BPM
|
||||||
136
src/com/torvald/terrarum/tileproperties/tileprop_nohdr.csv
Normal file
136
src/com/torvald/terrarum/tileproperties/tileprop_nohdr.csv
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
"id";"dmg";"name" ;"opacity";"strength";"dsty";"fluid";"movr";"solid";"wall";"lumcolor";"drop";"ddmg";"fall";"friction"
|
||||||
|
"0"; "0";"TILE_AIR" ; "526344"; "0"; "1"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0";"16"
|
||||||
|
"1"; "0";"TILE_STONE" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "0"; "0";"16"
|
||||||
|
"1"; "1";"TILE_STONE_QUARRIED" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "1"; "0"; "1"; "1"; "0";"16"
|
||||||
|
"2"; "0";"TILE_DIRT" ;"2105376"; "6";"1400"; "0"; "0"; "1"; "1"; "0"; "2"; "0"; "0";"16"
|
||||||
|
"2"; "1";"TILE_GRASS" ;"2105376"; "6";"1400"; "0"; "0"; "1"; "1"; "0"; "2"; "1"; "0";"16"
|
||||||
|
"3"; "0";"TILE_PLANK_NORMAL" ;"2105376"; "12"; "740"; "0"; "0"; "1"; "1"; "0"; "3"; "0"; "0";"16"
|
||||||
|
"3"; "1";"TILE_PLANK_EBONY" ;"2105376"; "12";"1200"; "0"; "0"; "1"; "1"; "0"; "3"; "1"; "0";"16"
|
||||||
|
"3"; "2";"TILE_PLANK_BIRCH" ;"2105376"; "12"; "670"; "0"; "0"; "1"; "1"; "0"; "3"; "2"; "0";"16"
|
||||||
|
"3"; "3";"TILE_PLANK_BLOODROSE" ;"2105376"; "12"; "900"; "0"; "0"; "1"; "1"; "0"; "3"; "3"; "0";"16"
|
||||||
|
"4"; "0";"TILE_TRUNK_NORMAL" ;"2105376"; "12"; "740"; "0"; "0"; "1"; "0"; "0"; "3"; "0"; "0";"16"
|
||||||
|
"4"; "1";"TILE_TRUNK_EBONY" ;"2105376"; "12";"1200"; "0"; "0"; "1"; "0"; "0"; "3"; "1"; "0";"16"
|
||||||
|
"4"; "2";"TILE_TRUNK_BIRCH" ;"2105376"; "12"; "670"; "0"; "0"; "1"; "0"; "0"; "3"; "2"; "0";"16"
|
||||||
|
"4"; "3";"TILE_TRUNK_BLOODROSE" ;"2105376"; "12"; "900"; "0"; "0"; "1"; "0"; "0"; "3"; "3"; "0";"16"
|
||||||
|
"5"; "0";"TILE_SAND" ;"2105376"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "5"; "0"; "1";"16"
|
||||||
|
"5"; "1";"TILE_SAND_WHITE" ;"2105376"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "5"; "1"; "1";"16"
|
||||||
|
"5"; "2";"TILE_SAND_RED" ;"2105376"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "5"; "2"; "1";"16"
|
||||||
|
"5"; "3";"TILE_SAND_DESERT" ;"2105376"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "5"; "3"; "1";"16"
|
||||||
|
"5"; "4";"TILE_SAND_BLACK" ;"2105376"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "5"; "4"; "1";"16"
|
||||||
|
"5"; "5";"TILE_SAND_GREEN" ;"2105376"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "5"; "5"; "1";"16"
|
||||||
|
"6"; "0";"TILE_GRAVEL" ;"2105376"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "6"; "0"; "1";"16"
|
||||||
|
"6"; "1";"TILE_GRAVEL_GREY" ;"2105376"; "6";"2400"; "0"; "0"; "1"; "0"; "0"; "6"; "1"; "1";"16"
|
||||||
|
"7"; "0";"TILE_ORE_MALACHITE" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "7"; "0"; "0";"16"
|
||||||
|
"7"; "1";"TILE_ORE_HEMATITE" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "7"; "1"; "0";"16"
|
||||||
|
"7"; "2";"TILE_ORE_NATURAL_GOLD" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "7"; "2"; "0";"16"
|
||||||
|
"7"; "3";"TILE_ORE_NATURAL_SILVER" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "7"; "3"; "0";"16"
|
||||||
|
"7"; "4";"TILE_ORE_RUTILE" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "7"; "4"; "0";"16"
|
||||||
|
"7"; "5";"TILE_ORE_AURICHALCUMITE" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "7"; "5"; "0";"16"
|
||||||
|
"8"; "0";"TILE_GEM_RUBY" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "8"; "0"; "0";"16"
|
||||||
|
"8"; "1";"TILE_GEM_EMERALD" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "8"; "1"; "0";"16"
|
||||||
|
"8"; "2";"TILE_GEM_SAPPHIRE" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "8"; "2"; "0";"16"
|
||||||
|
"8"; "3";"TILE_GEM_TOPAZ" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "8"; "3"; "0";"16"
|
||||||
|
"8"; "4";"TILE_GEM_DIAMOND" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "8"; "4"; "0";"16"
|
||||||
|
"8"; "5";"TILE_GEM_AMETHYST" ;"2105376"; "25";"2400"; "0"; "0"; "1"; "0"; "0"; "8"; "5"; "0";"16"
|
||||||
|
"9"; "0";"TILE_SNOW" ;"2105376"; "6"; "500"; "0"; "0"; "1"; "1"; "0"; "9"; "0"; "0";"16"
|
||||||
|
"9"; "1";"TILE_ICE_FRAGILE" ; "855309"; "1"; "930"; "0"; "0"; "1"; "0"; "0"; "9"; "1"; "0";"16"
|
||||||
|
"9"; "2";"TILE_ICE_NATURAL" ;"1710618"; "25"; "930"; "0"; "0"; "1"; "1"; "0"; "9"; "2"; "0"; "8"
|
||||||
|
"9"; "3";"TILE_ICE_CLEAR_MAGICAL" ;"2105376"; "25";"3720"; "0"; "0"; "1"; "1"; "1253434"; "9"; "3"; "0"; "8"
|
||||||
|
"10"; "0";"TILE_PLATFORM_STONE" ; "526344"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "10"; "0"; "0";"16"
|
||||||
|
"10"; "1";"TILE_PLATFORM_WOODEN" ; "526344"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "10"; "1"; "0";"16"
|
||||||
|
"10"; "2";"TILE_PLATFORM_EBONY" ; "526344"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "10"; "2"; "0";"16"
|
||||||
|
"10"; "3";"TILE_PLATFORM_BIRCH" ; "526344"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "10"; "3"; "0";"16"
|
||||||
|
"10"; "4";"TILE_PLATFORM_BLOODROSE" ; "526344"; "1"; "N/A"; "0"; "0"; "0"; "0"; "0"; "10"; "4"; "0";"16"
|
||||||
|
"11"; "0";"TILE_TORCH" ; "526344"; "0"; "N/A"; "0"; "0"; "0"; "0";"15304000"; "11"; "0"; "0";"16"
|
||||||
|
"11"; "1";"TILE_TORCH_FROST" ; "526344"; "0"; "N/A"; "0"; "0"; "0"; "0"; "5143807"; "11"; "1"; "0";"16"
|
||||||
|
"12"; "0";"TILE_TORCH" ; "526344"; "0"; "N/A"; "0"; "0"; "0"; "0"; "0"; "11"; "0"; "0";"16"
|
||||||
|
"12"; "1";"TILE_TORCH_FROST" ; "526344"; "0"; "N/A"; "0"; "0"; "0"; "0"; "0"; "11"; "1"; "0";"16"
|
||||||
|
"13"; "0";"TILE_ILLUMINATOR_WHITE" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1";"15461355"; "13"; "0"; "0";"16"
|
||||||
|
"13"; "1";"TILE_ILLUMINATOR_YELLOW" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1";"15461120"; "13"; "1"; "0";"16"
|
||||||
|
"13"; "2";"TILE_ILLUMINATOR_ORANGE" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1";"15447808"; "13"; "2"; "0";"16"
|
||||||
|
"13"; "3";"TILE_ILLUMINATOR_RED" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1";"15400960"; "13"; "3"; "0";"16"
|
||||||
|
"13"; "4";"TILE_ILLUMINATOR_FUCHSIA" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1";"15401143"; "13"; "4"; "0";"16"
|
||||||
|
"13"; "5";"TILE_ILLUMINATOR_PURPLE" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1";"11993323"; "13"; "5"; "0";"16"
|
||||||
|
"13"; "6";"TILE_ILLUMINATOR_BLUE" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1"; "235"; "13"; "6"; "0";"16"
|
||||||
|
"13"; "7";"TILE_ILLUMINATOR_CYAN" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1"; "51947"; "13"; "7"; "0";"16"
|
||||||
|
"13"; "8";"TILE_ILLUMINATOR_GREEN" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1"; "4311552"; "13"; "8"; "0";"16"
|
||||||
|
"13"; "9";"TILE_ILLUMINATOR_GREEN_DARK";"526344"; "0"; "N/A"; "0"; "0"; "1"; "1"; "2123776"; "13"; "9"; "0";"16"
|
||||||
|
"13"; "10";"TILE_ILLUMINATOR_BROWN" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1"; "5578752"; "13"; "10"; "0";"16"
|
||||||
|
"13"; "11";"TILE_ILLUMINATOR_TAN" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1"; "9857076"; "13"; "11"; "0";"16"
|
||||||
|
"13"; "12";"TILE_ILLUMINATOR_GREY_LIGHT";"526344"; "0"; "N/A"; "0"; "0"; "1"; "1";"12434877"; "13"; "12"; "0";"16"
|
||||||
|
"13"; "13";"TILE_ILLUMINATOR_GREY_MED"; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1"; "7697781"; "13"; "13"; "0";"16"
|
||||||
|
"13"; "14";"TILE_ILLUMINATOR_GREY_DARK";"526344"; "0"; "N/A"; "0"; "0"; "1"; "1"; "4276545"; "13"; "14"; "0";"16"
|
||||||
|
"13"; "15";"TILE_ILLUMINATOR_BLACK" ; "526344"; "0"; "N/A"; "0"; "0"; "1"; "1"; "7274751"; "13"; "15"; "0";"16"
|
||||||
|
"14"; "0";"TILE_ILLUMINATOR_WHITE" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "0"; "0";"16"
|
||||||
|
"14"; "1";"TILE_ILLUMINATOR_YELLOW" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "1"; "0";"16"
|
||||||
|
"14"; "2";"TILE_ILLUMINATOR_ORANGE" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "2"; "0";"16"
|
||||||
|
"14"; "3";"TILE_ILLUMINATOR_RED" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "3"; "0";"16"
|
||||||
|
"14"; "4";"TILE_ILLUMINATOR_FUCHSIA" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "4"; "0";"16"
|
||||||
|
"14"; "5";"TILE_ILLUMINATOR_PURPLE" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "5"; "0";"16"
|
||||||
|
"14"; "6";"TILE_ILLUMINATOR_BLUE" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "6"; "0";"16"
|
||||||
|
"14"; "7";"TILE_ILLUMINATOR_CYAN" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "7"; "0";"16"
|
||||||
|
"14"; "8";"TILE_ILLUMINATOR_GREEN" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "8"; "0";"16"
|
||||||
|
"14"; "9";"TILE_ILLUMINATOR_GREEN_DARK";"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "9"; "0";"16"
|
||||||
|
"14"; "10";"TILE_ILLUMINATOR_BROWN" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "10"; "0";"16"
|
||||||
|
"14"; "11";"TILE_ILLUMINATOR_TAN" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "11"; "0";"16"
|
||||||
|
"14"; "12";"TILE_ILLUMINATOR_GREY_LIGHT";"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "12"; "0";"16"
|
||||||
|
"14"; "13";"TILE_ILLUMINATOR_GREY_MED";"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "13"; "0";"16"
|
||||||
|
"14"; "14";"TILE_ILLUMINATOR_GREY_DARK";"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "14"; "0";"16"
|
||||||
|
"14"; "15";"TILE_ILLUMINATOR_BLACK" ;"2105376"; "0"; "N/A"; "0"; "0"; "1"; "1"; "0"; "13"; "15"; "0";"16"
|
||||||
|
"15"; "0";"TILE_SANDSTONE" ;"2105376"; "25";"1900"; "0"; "0"; "1"; "1"; "0"; "15"; "0"; "0";"16"
|
||||||
|
"15"; "1";"TILE_SANDSTONE_WHITE" ;"2105376"; "25";"1900"; "0"; "0"; "1"; "1"; "0"; "15"; "1"; "0";"16"
|
||||||
|
"15"; "2";"TILE_SANDSTONE_RED" ;"2105376"; "25";"1900"; "0"; "0"; "1"; "1"; "0"; "15"; "2"; "0";"16"
|
||||||
|
"15"; "3";"TILE_SANDSTONE_DESERT" ;"2105376"; "25";"1900"; "0"; "0"; "1"; "1"; "0"; "15"; "3"; "0";"16"
|
||||||
|
"15"; "4";"TILE_SANDSTONE_BLACK" ;"2105376"; "25";"1900"; "0"; "0"; "1"; "1"; "0"; "15"; "4"; "0";"16"
|
||||||
|
"15"; "5";"TILE_SANDSTONE_BLACK" ;"2105376"; "25";"1900"; "0"; "0"; "1"; "1"; "0"; "15"; "5"; "0";"16"
|
||||||
|
"16"; "0";"TILE_LANTERN_IRON_REGULAR"; "526344"; "0"; "N/A"; "0"; "0"; "0"; "0";"16769944"; "16"; "0"; "0";"16"
|
||||||
|
"255"; "0";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"255"; "1";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"255"; "2";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"255"; "3";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"255"; "4";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"255"; "5";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"255"; "6";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"255"; "7";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"255"; "8";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"255"; "9";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"255"; "10";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"255"; "11";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"255"; "12";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"255"; "13";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"255"; "14";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"255"; "15";"TILE_WATER" ;"1708813"; "100";"1000"; "1"; "12"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"254"; "0";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"254"; "1";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"254"; "2";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"254"; "3";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"254"; "4";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"254"; "5";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"254"; "6";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"254"; "7";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"254"; "8";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"254"; "9";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"254"; "10";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"254"; "11";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"254"; "12";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"254"; "13";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"254"; "14";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"254"; "15";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "48"; "0"; "0";"12858368"; "N/A"; "N/A"; "0";"16"
|
||||||
|
"256"; "0";"TILE_NULL" ; "0"; "-1";"2600"; "0"; "0"; "0"; "0"; "0"; "N/A"; "N/A"; "0";"16"
|
||||||
|
# Friction: 0: frictionless, <16: slippery, 16: regular, >16: sticky
|
||||||
|
# Opacity/Lumcolor: 40-step RGB
|
||||||
|
# Solid: whether the tile has full collision
|
||||||
|
# movr: Movement resistance, (walkspeedmax) / (1 + (n/16)), 16 halves movement speed
|
||||||
|
# dsty: density. As we are putting water an 1000, it is identical to specific gravity. [g/l]
|
||||||
|
|
||||||
|
# Defalut torch : L 77 a 47 b 59; real candlelight colour taken from properly configured camera.
|
||||||
|
|
||||||
|
# 16 colour palette : Old Apple Macintosh 16-colour palette
|
||||||
|
|
||||||
|
# Magical ice: theoretical __metallic__ ice that might form under super-high pressure (> 5 TPa). Its density is a wild guess.
|
||||||
|
|
||||||
|
# Off illuminator: NO OPACITY! this is intended!
|
||||||
|
|
||||||
|
# References:
|
||||||
|
# * Density of various woods : http://www.engineeringtoolbox.com/wood-density-d_40.html
|
||||||
|
# * Density of various phases of ice : http://www1.lsbu.ac.uk/water/ice_phases.html
|
||||||
|
Can't render this file because it contains an unexpected character in line 1 and column 18.
|
@@ -44,6 +44,10 @@ class BasicDebugInfoWindow : UICanvas {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun render(gc: GameContainer, g: Graphics) {
|
override fun render(gc: GameContainer, g: Graphics) {
|
||||||
|
fun Int.rawR() = this / LightmapRenderer.MUL_2
|
||||||
|
fun Int.rawG() = this % LightmapRenderer.MUL_2 / LightmapRenderer.MUL
|
||||||
|
fun Int.rawB() = this % LightmapRenderer.MUL
|
||||||
|
|
||||||
val player = Terrarum.game.player
|
val player = Terrarum.game.player
|
||||||
|
|
||||||
val sb = StringBuilder()
|
val sb = StringBuilder()
|
||||||
@@ -81,9 +85,9 @@ class BasicDebugInfoWindow : UICanvas {
|
|||||||
var mtX = mouseTileX.toString()
|
var mtX = mouseTileX.toString()
|
||||||
var mtY = mouseTileY.toString()
|
var mtY = mouseTileY.toString()
|
||||||
val valRaw = LightmapRenderer.getValueFromMap(mouseTileX, mouseTileY) ?: -1
|
val valRaw = LightmapRenderer.getValueFromMap(mouseTileX, mouseTileY) ?: -1
|
||||||
val rawR = LightmapRenderer.getRawR(valRaw)
|
val rawR = valRaw.rawR()
|
||||||
val rawG = LightmapRenderer.getRawG(valRaw)
|
val rawG = valRaw.rawG()
|
||||||
val rawB = LightmapRenderer.getRawB(valRaw)
|
val rawB = valRaw.rawB()
|
||||||
lightVal = if (valRaw == -1)
|
lightVal = if (valRaw == -1)
|
||||||
"—"
|
"—"
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user