codes to produce fluid atlas

This commit is contained in:
minjaesong
2019-03-03 00:25:42 +09:00
parent 44745bfad1
commit 58bbb73cb1
7 changed files with 292 additions and 191 deletions

View File

@@ -1,106 +1,106 @@
"id";"drop";"name";"shdr";"shdg";"shdb";"shduv";"str";"dsty";"mate";"solid";"plat";"wall";"fall";"dlfn";"fv";"fr";"lumr";"lumg";"lumb";"lumuv";"colour" "id";"drop";"name";"shdr";"shdg";"shdb";"shduv";"str";"dsty";"mate";"solid";"plat";"wall";"fall";"dlfn";"fv";"fr";"lumr";"lumg";"lumb";"lumuv";"colour";"vscs"
"0";"0";"BLOCK_AIR";"0.0312";"0.0312";"0.0312";"0.0312";"1";"1";"NULL";"0";"0";"1";"0";"0";"0";"4";"0.0000";"0.0000";"0.0000";"0.0000";"" "0";"0";"BLOCK_AIR";"0.0312";"0.0312";"0.0312";"0.0312";"1";"1";"NULL";"0";"0";"1";"0";"0";"0";"4";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"1";"1";"BLOCK_MIASMA";"0.0312";"0.0312";"0.0312";"0.0312";"1";"1";"NULL";"0";"0";"1";"0";"0";"0";"4";"0.0000";"0.0000";"0.0000";"0.0000";"" "1";"1";"BLOCK_MIASMA";"0.0312";"0.0312";"0.0312";"0.0312";"1";"1";"NULL";"0";"0";"1";"0";"0";"0";"4";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"16";"17";"BLOCK_STONE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"1";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "16";"17";"BLOCK_STONE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"1";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"17";"17";"BLOCK_STONE_QUARRIED";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"1";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "17";"17";"BLOCK_STONE_QUARRIED";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"1";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"18";"18";"BLOCK_STONE_TILE_WHITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"1";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "18";"18";"BLOCK_STONE_TILE_WHITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"1";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"19";"19";"BLOCK_STONE_BRICKS";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"1";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "19";"19";"BLOCK_STONE_BRICKS";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"1";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"32";"32";"BLOCK_DIRT";"0.1252";"0.1252";"0.1252";"0.1252";"24";"1400";"DIRT";"1";"0";"1";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "32";"32";"BLOCK_DIRT";"0.1252";"0.1252";"0.1252";"0.1252";"24";"1400";"DIRT";"1";"0";"1";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"33";"32";"BLOCK_GRASS";"0.1252";"0.1252";"0.1252";"0.1252";"24";"1400";"GRSS";"1";"0";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "33";"32";"BLOCK_GRASS";"0.1252";"0.1252";"0.1252";"0.1252";"24";"1400";"GRSS";"1";"0";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"34";"34";"BLOCK_GRASSWALL";"0.1252";"0.1252";"0.1252";"0.1252";"24";"1400";"GRSS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "34";"34";"BLOCK_GRASSWALL";"0.1252";"0.1252";"0.1252";"0.1252";"24";"1400";"GRSS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"35";"35";"BLOCK_FOLIAGE_GREEN";"0.1252";"0.1252";"0.1252";"0.1252";"24";"1400";"GRSS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "35";"35";"BLOCK_FOLIAGE_GREEN";"0.1252";"0.1252";"0.1252";"0.1252";"24";"1400";"GRSS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"36";"36";"BLOCK_FOLIAGE_LIME";"0.1252";"0.1252";"0.1252";"0.1252";"24";"1400";"GRSS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "36";"36";"BLOCK_FOLIAGE_LIME";"0.1252";"0.1252";"0.1252";"0.1252";"24";"1400";"GRSS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"37";"37";"BLOCK_FOLIAGE_GOLD";"0.1252";"0.1252";"0.1252";"0.1252";"24";"1400";"GRSS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "37";"37";"BLOCK_FOLIAGE_GOLD";"0.1252";"0.1252";"0.1252";"0.1252";"24";"1400";"GRSS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"38";"38";"BLOCK_FOLIAGE_RED";"0.1252";"0.1252";"0.1252";"0.1252";"24";"1400";"GRSS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "38";"38";"BLOCK_FOLIAGE_RED";"0.1252";"0.1252";"0.1252";"0.1252";"24";"1400";"GRSS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"39";"39";"BLOCK_FOLIAGE_ICEBLUE";"0.1252";"0.1252";"0.1252";"0.1252";"24";"1400";"GRSS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "39";"39";"BLOCK_FOLIAGE_ICEBLUE";"0.1252";"0.1252";"0.1252";"0.1252";"24";"1400";"GRSS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"40";"40";"BLOCK_FOLIAGE_PURPLE";"0.1252";"0.1252";"0.1252";"0.1252";"24";"1400";"GRSS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "40";"40";"BLOCK_FOLIAGE_PURPLE";"0.1252";"0.1252";"0.1252";"0.1252";"24";"1400";"GRSS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"48";"48";"BLOCK_PLANK_NORMAL";"0.1252";"0.1252";"0.1252";"0.1252";"16";"740";"WOOD";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "48";"48";"BLOCK_PLANK_NORMAL";"0.1252";"0.1252";"0.1252";"0.1252";"16";"740";"WOOD";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"49";"49";"BLOCK_PLANK_EBONY";"0.1252";"0.1252";"0.1252";"0.1252";"19";"1200";"WOOD";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "49";"49";"BLOCK_PLANK_EBONY";"0.1252";"0.1252";"0.1252";"0.1252";"19";"1200";"WOOD";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"50";"50";"BLOCK_PLANK_BIRCH";"0.1252";"0.1252";"0.1252";"0.1252";"15";"670";"WOOD";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "50";"50";"BLOCK_PLANK_BIRCH";"0.1252";"0.1252";"0.1252";"0.1252";"15";"670";"WOOD";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"51";"51";"BLOCK_PLANK_BLOODROSE";"0.1252";"0.1252";"0.1252";"0.1252";"17";"900";"WOOD";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "51";"51";"BLOCK_PLANK_BLOODROSE";"0.1252";"0.1252";"0.1252";"0.1252";"17";"900";"WOOD";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"64";"64";"BLOCK_TRUNK_NORMAL";"0.1252";"0.1252";"0.1252";"0.1252";"16";"740";"WOOD";"1";"0";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "64";"64";"BLOCK_TRUNK_NORMAL";"0.1252";"0.1252";"0.1252";"0.1252";"16";"740";"WOOD";"1";"0";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"65";"65";"BLOCK_TRUNK_EBONY";"0.1252";"0.1252";"0.1252";"0.1252";"19";"1200";"WOOD";"1";"0";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "65";"65";"BLOCK_TRUNK_EBONY";"0.1252";"0.1252";"0.1252";"0.1252";"19";"1200";"WOOD";"1";"0";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"66";"66";"BLOCK_TRUNK_BIRCH";"0.1252";"0.1252";"0.1252";"0.1252";"15";"670";"WOOD";"1";"0";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "66";"66";"BLOCK_TRUNK_BIRCH";"0.1252";"0.1252";"0.1252";"0.1252";"15";"670";"WOOD";"1";"0";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"67";"67";"BLOCK_TRUNK_BLOODROSE";"0.1252";"0.1252";"0.1252";"0.1252";"17";"900";"WOOD";"1";"0";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "67";"67";"BLOCK_TRUNK_BLOODROSE";"0.1252";"0.1252";"0.1252";"0.1252";"17";"900";"WOOD";"1";"0";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"80";"80";"BLOCK_SAND";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"1";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "80";"80";"BLOCK_SAND";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"1";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"81";"81";"BLOCK_SAND_WHITE";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"1";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "81";"81";"BLOCK_SAND_WHITE";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"1";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"82";"82";"BLOCK_SAND_RED";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"1";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "82";"82";"BLOCK_SAND_RED";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"1";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"83";"83";"BLOCK_SAND_DESERT";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"1";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "83";"83";"BLOCK_SAND_DESERT";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"1";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"84";"84";"BLOCK_SAND_BLACK";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"1";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "84";"84";"BLOCK_SAND_BLACK";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"1";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"85";"85";"BLOCK_SAND_GREEN";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"1";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "85";"85";"BLOCK_SAND_GREEN";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"1";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"96";"96";"BLOCK_GRAVEL";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"GRVL";"1";"0";"0";"1";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "96";"96";"BLOCK_GRAVEL";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"GRVL";"1";"0";"0";"1";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"97";"97";"BLOCK_GRAVEL_GREY";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"GRVL";"1";"0";"0";"1";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "97";"97";"BLOCK_GRAVEL_GREY";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"GRVL";"1";"0";"0";"1";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"112";"112";"BLOCK_ORE_MALACHITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "112";"112";"BLOCK_ORE_MALACHITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"113";"113";"BLOCK_ORE_HEMATITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "113";"113";"BLOCK_ORE_HEMATITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"114";"114";"BLOCK_ORE_NATURAL_GOLD";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "114";"114";"BLOCK_ORE_NATURAL_GOLD";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"115";"115";"BLOCK_ORE_NATURAL_SILVER";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "115";"115";"BLOCK_ORE_NATURAL_SILVER";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"116";"116";"BLOCK_ORE_RUTILE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "116";"116";"BLOCK_ORE_RUTILE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"117";"117";"BLOCK_ORE_AURICHALCUMITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "117";"117";"BLOCK_ORE_AURICHALCUMITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"128";"128";"BLOCK_GEM_RUBY";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "128";"128";"BLOCK_GEM_RUBY";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"129";"129";"BLOCK_GEM_EMERALD";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "129";"129";"BLOCK_GEM_EMERALD";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"130";"130";"BLOCK_GEM_SAPPHIRE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "130";"130";"BLOCK_GEM_SAPPHIRE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"131";"131";"BLOCK_GEM_TOPAZ";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "131";"131";"BLOCK_GEM_TOPAZ";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"132";"132";"BLOCK_GEM_DIAMOND";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "132";"132";"BLOCK_GEM_DIAMOND";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"133";"133";"BLOCK_GEM_AMETHYST";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "133";"133";"BLOCK_GEM_AMETHYST";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"144";"144";"BLOCK_SNOW";"0.1252";"0.1252";"0.1252";"0.1252";"24";"500";"SNOW";"1";"0";"1";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "144";"144";"BLOCK_SNOW";"0.1252";"0.1252";"0.1252";"0.1252";"24";"500";"SNOW";"1";"0";"1";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"145";"0";"BLOCK_ICE_FRAGILE";"0.0508";"0.0508";"0.0508";"0.0508";"5";"930";"ICEI";"1";"0";"0";"0";"0";"0";"4";"0.0000";"0.0000";"0.0000";"0.0000";"" "145";"0";"BLOCK_ICE_FRAGILE";"0.0508";"0.0508";"0.0508";"0.0508";"5";"930";"ICEI";"1";"0";"0";"0";"0";"0";"4";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"146";"146";"BLOCK_ICE_NATURAL";"0.1016";"0.1016";"0.1016";"0.1016";"35";"930";"ICEI";"1";"0";"1";"0";"0";"0";"4";"0.0000";"0.0000";"0.0000";"0.0000";"" "146";"146";"BLOCK_ICE_NATURAL";"0.1016";"0.1016";"0.1016";"0.1016";"35";"930";"ICEI";"1";"0";"1";"0";"0";"0";"4";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"147";"147";"BLOCK_ICE_CLEAR_MAGICAL";"0.1252";"0.1252";"0.1252";"0.1252";"48";"3720";"ICEX";"1";"0";"1";"0";"0";"0";"4";"0.0744";"0.1252";"0.2268";"0.0000";"" "147";"147";"BLOCK_ICE_CLEAR_MAGICAL";"0.1252";"0.1252";"0.1252";"0.1252";"48";"3720";"ICEX";"1";"0";"1";"0";"0";"0";"4";"0.0744";"0.1252";"0.2268";"0.0000";"N/A";"N/A"
"148";"148";"BLOCK_GLASS_CRUDE";"0.0876";"0.0424";"0.0876";"0.1252";"5";"2500";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "148";"148";"BLOCK_GLASS_CRUDE";"0.0876";"0.0424";"0.0876";"0.1252";"5";"2500";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"149";"149";"BLOCK_GLASS_CLEAN";"0.0424";"0.0424";"0.0424";"0.0636";"5";"2203";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "149";"149";"BLOCK_GLASS_CLEAN";"0.0424";"0.0424";"0.0424";"0.0636";"5";"2203";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"160";"160";"BLOCK_PLATFORM_STONE";"0.0312";"0.0312";"0.0312";"0.0312";"5";"N/A";"ROCK";"0";"1";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "160";"160";"BLOCK_PLATFORM_STONE";"0.0312";"0.0312";"0.0312";"0.0312";"5";"N/A";"ROCK";"0";"1";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"161";"161";"BLOCK_PLATFORM_WOODEN";"0.0312";"0.0312";"0.0312";"0.0312";"5";"N/A";"WOOD";"0";"1";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "161";"161";"BLOCK_PLATFORM_WOODEN";"0.0312";"0.0312";"0.0312";"0.0312";"5";"N/A";"WOOD";"0";"1";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"162";"162";"BLOCK_PLATFORM_EBONY";"0.0312";"0.0312";"0.0312";"0.0312";"5";"N/A";"WOOD";"0";"1";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "162";"162";"BLOCK_PLATFORM_EBONY";"0.0312";"0.0312";"0.0312";"0.0312";"5";"N/A";"WOOD";"0";"1";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"163";"163";"BLOCK_PLATFORM_BIRCH";"0.0312";"0.0312";"0.0312";"0.0312";"5";"N/A";"WOOD";"0";"1";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "163";"163";"BLOCK_PLATFORM_BIRCH";"0.0312";"0.0312";"0.0312";"0.0312";"5";"N/A";"WOOD";"0";"1";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"164";"164";"BLOCK_PLATFORM_BLOODROSE";"0.0312";"0.0312";"0.0312";"0.0312";"5";"N/A";"WOOD";"0";"1";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "164";"164";"BLOCK_PLATFORM_BLOODROSE";"0.0312";"0.0312";"0.0312";"0.0312";"5";"N/A";"WOOD";"0";"1";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"176";"176";"BLOCK_TORCH";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"FXTR";"0";"0";"0";"0";"1";"0";"16";"1.0000";"0.6372";"0.0000";"0.0000";"" "176";"176";"BLOCK_TORCH";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"FXTR";"0";"0";"0";"0";"1";"0";"16";"1.0000";"0.6372";"0.0000";"0.0000";"N/A";"N/A"
"177";"177";"BLOCK_TORCH_FROST";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"FXTR";"0";"0";"0";"0";"1";"0";"16";"0.3048";"0.4848";"1.0000";"0.0000";"" "177";"177";"BLOCK_TORCH_FROST";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"FXTR";"0";"0";"0";"0";"1";"0";"16";"0.3048";"0.4848";"1.0000";"0.0000";"N/A";"N/A"
"192";"176";"BLOCK_TORCH";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"FXTR";"0";"0";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "192";"176";"BLOCK_TORCH";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"FXTR";"0";"0";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"193";"177";"BLOCK_TORCH_FROST";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"FXTR";"0";"0";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "193";"177";"BLOCK_TORCH_FROST";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"FXTR";"0";"0";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"208";"208";"BLOCK_ILLUMINATOR_WHITE";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.9270";"0.9414";"0.8519";"0.0000";"" "208";"208";"BLOCK_ILLUMINATOR_WHITE";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.9270";"0.9414";"0.8519";"0.0000";"N/A";"N/A"
"209";"209";"BLOCK_ILLUMINATOR_YELLOW";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"1.0000";"0.8408";"0.0000";"0.0000";"" "209";"209";"BLOCK_ILLUMINATOR_YELLOW";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"1.0000";"0.8408";"0.0000";"0.0000";"N/A";"N/A"
"210";"210";"BLOCK_ILLUMINATOR_ORANGE";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"1.0000";"0.5294";"0.0000";"0.0000";"" "210";"210";"BLOCK_ILLUMINATOR_ORANGE";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"1.0000";"0.5294";"0.0000";"0.0000";"N/A";"N/A"
"211";"211";"BLOCK_ILLUMINATOR_RED";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.9188";"0.0000";"0.0000";"0.0000";"" "211";"211";"BLOCK_ILLUMINATOR_RED";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.9188";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"212";"212";"BLOCK_ILLUMINATOR_FUCHSIA";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.9188";"0.0000";"0.7156";"0.0000";"" "212";"212";"BLOCK_ILLUMINATOR_FUCHSIA";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.9188";"0.0000";"0.7156";"0.0000";"N/A";"N/A"
"213";"213";"BLOCK_ILLUMINATOR_PURPLE";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.7156";"0.0000";"0.9188";"0.0000";"" "213";"213";"BLOCK_ILLUMINATOR_PURPLE";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.7156";"0.0000";"0.9188";"0.0000";"N/A";"N/A"
"214";"214";"BLOCK_ILLUMINATOR_BLUE";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.1996";"0.9188";"0.0000";"" "214";"214";"BLOCK_ILLUMINATOR_BLUE";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.1996";"0.9188";"0.0000";"N/A";"N/A"
"215";"215";"BLOCK_ILLUMINATOR_CYAN";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.4621";"1.4188";"1.2368";"0.0000";"" "215";"215";"BLOCK_ILLUMINATOR_CYAN";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.4621";"1.4188";"1.2368";"0.0000";"N/A";"N/A"
"216";"216";"BLOCK_ILLUMINATOR_GREEN";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.2112";"1.0000";"0.0000";"0.0000";"" "216";"216";"BLOCK_ILLUMINATOR_GREEN";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.2112";"1.0000";"0.0000";"0.0000";"N/A";"N/A"
"217";"217";"BLOCK_ILLUMINATOR_GREEN_DARK";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.1252";"0.4068";"0.0000";"0.0000";"" "217";"217";"BLOCK_ILLUMINATOR_GREEN_DARK";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.1252";"0.4068";"0.0000";"0.0000";"N/A";"N/A"
"218";"218";"BLOCK_ILLUMINATOR_BROWN";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.3324";"0.1252";"0.0000";"0.0000";"" "218";"218";"BLOCK_ILLUMINATOR_BROWN";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.3324";"0.1252";"0.0000";"0.0000";"N/A";"N/A"
"219";"219";"BLOCK_ILLUMINATOR_TAN";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.5864";"0.4068";"0.2032";"0.0000";"" "219";"219";"BLOCK_ILLUMINATOR_TAN";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.5864";"0.4068";"0.2032";"0.0000";"N/A";"N/A"
"220";"220";"BLOCK_ILLUMINATOR_GREY_LIGHT";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.7392";"0.7392";"0.7392";"0.0000";"" "220";"220";"BLOCK_ILLUMINATOR_GREY_LIGHT";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.7392";"0.7392";"0.7392";"0.0000";"N/A";"N/A"
"221";"221";"BLOCK_ILLUMINATOR_GREY_MED";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.4576";"0.4576";"0.4576";"0.0000";"" "221";"221";"BLOCK_ILLUMINATOR_GREY_MED";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.4576";"0.4576";"0.4576";"0.0000";"N/A";"N/A"
"222";"222";"BLOCK_ILLUMINATOR_GREY_DARK";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.2540";"0.2540";"0.2540";"0.0000";"" "222";"222";"BLOCK_ILLUMINATOR_GREY_DARK";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.2540";"0.2540";"0.2540";"0.0000";"N/A";"N/A"
"223";"223";"BLOCK_ILLUMINATOR_BLACK";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.2140";"0.0000";"0.4932";"3.7499";"" "223";"223";"BLOCK_ILLUMINATOR_BLACK";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.2140";"0.0000";"0.4932";"3.7499";"N/A";"N/A"
"224";"208";"BLOCK_ILLUMINATOR_WHITE";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "224";"208";"BLOCK_ILLUMINATOR_WHITE";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"225";"209";"BLOCK_ILLUMINATOR_YELLOW";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "225";"209";"BLOCK_ILLUMINATOR_YELLOW";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"226";"210";"BLOCK_ILLUMINATOR_ORANGE";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "226";"210";"BLOCK_ILLUMINATOR_ORANGE";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"227";"211";"BLOCK_ILLUMINATOR_RED";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "227";"211";"BLOCK_ILLUMINATOR_RED";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"228";"212";"BLOCK_ILLUMINATOR_FUCHSIA";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "228";"212";"BLOCK_ILLUMINATOR_FUCHSIA";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"229";"213";"BLOCK_ILLUMINATOR_PURPLE";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "229";"213";"BLOCK_ILLUMINATOR_PURPLE";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"230";"214";"BLOCK_ILLUMINATOR_BLUE";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "230";"214";"BLOCK_ILLUMINATOR_BLUE";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"231";"215";"BLOCK_ILLUMINATOR_CYAN";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "231";"215";"BLOCK_ILLUMINATOR_CYAN";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"232";"216";"BLOCK_ILLUMINATOR_GREEN";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "232";"216";"BLOCK_ILLUMINATOR_GREEN";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"233";"217";"BLOCK_ILLUMINATOR_GREEN_DARK";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "233";"217";"BLOCK_ILLUMINATOR_GREEN_DARK";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"234";"218";"BLOCK_ILLUMINATOR_BROWN";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "234";"218";"BLOCK_ILLUMINATOR_BROWN";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"235";"219";"BLOCK_ILLUMINATOR_TAN";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "235";"219";"BLOCK_ILLUMINATOR_TAN";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"236";"220";"BLOCK_ILLUMINATOR_GREY_LIGHT";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "236";"220";"BLOCK_ILLUMINATOR_GREY_LIGHT";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"237";"221";"BLOCK_ILLUMINATOR_GREY_MED";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "237";"221";"BLOCK_ILLUMINATOR_GREY_MED";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"238";"222";"BLOCK_ILLUMINATOR_GREY_DARK";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "238";"222";"BLOCK_ILLUMINATOR_GREY_DARK";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"239";"223";"BLOCK_ILLUMINATOR_BLACK";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "239";"223";"BLOCK_ILLUMINATOR_BLACK";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"240";"240";"BLOCK_SANDSTONE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"1900";"ROCK";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "240";"240";"BLOCK_SANDSTONE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"1900";"ROCK";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"241";"241";"BLOCK_SANDSTONE_WHITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"1900";"ROCK";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "241";"241";"BLOCK_SANDSTONE_WHITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"1900";"ROCK";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"242";"242";"BLOCK_SANDSTONE_RED";"0.1252";"0.1252";"0.1252";"0.1252";"48";"1900";"ROCK";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "242";"242";"BLOCK_SANDSTONE_RED";"0.1252";"0.1252";"0.1252";"0.1252";"48";"1900";"ROCK";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"243";"243";"BLOCK_SANDSTONE_DESERT";"0.1252";"0.1252";"0.1252";"0.1252";"48";"1900";"ROCK";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "243";"243";"BLOCK_SANDSTONE_DESERT";"0.1252";"0.1252";"0.1252";"0.1252";"48";"1900";"ROCK";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"244";"244";"BLOCK_SANDSTONE_BLACK";"0.1252";"0.1252";"0.1252";"0.1252";"48";"1900";"ROCK";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "244";"244";"BLOCK_SANDSTONE_BLACK";"0.1252";"0.1252";"0.1252";"0.1252";"48";"1900";"ROCK";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"245";"245";"BLOCK_SANDSTONE_GREEN";"0.1252";"0.1252";"0.1252";"0.1252";"48";"1900";"ROCK";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "245";"245";"BLOCK_SANDSTONE_GREEN";"0.1252";"0.1252";"0.1252";"0.1252";"48";"1900";"ROCK";"1";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"256";"256";"BLOCK_LANTERN_IRON_REGULAR";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"FXTR";"0";"0";"0";"0";"0";"0";"16";"1.0000";"0.6372";"0.0000";"0.0000";"" "256";"256";"BLOCK_LANTERN_IRON_REGULAR";"0.0312";"0.0312";"0.0312";"0.0312";"1";"N/A";"FXTR";"0";"0";"0";"0";"0";"0";"16";"1.0000";"0.6372";"0.0000";"0.0000";"N/A";"N/A"
"257";"257";"BLOCK_SUNSTONE";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"ROCK";"1";"0";"0";"0";"2";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "257";"257";"BLOCK_SUNSTONE";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"ROCK";"1";"0";"0";"0";"2";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"258";"258";"BLOCK_DAYLIGHT_CAPACITOR";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"0";"0";"3";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "258";"258";"BLOCK_DAYLIGHT_CAPACITOR";"0.1252";"0.1252";"0.1252";"0.1252";"1";"N/A";"GLAS";"1";"0";"0";"0";"3";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
"4096";"0";"BLOCK_WATER";"0.1016";"0.0744";"0.0508";"0.0826";"100";"1000";"WATR";"0";"0";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"005599A6" "4096";"0";"BLOCK_WATER";"0.1016";"0.0744";"0.0508";"0.0826";"100";"1000";"WATR";"0";"0";"0";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"005599A6";"16"
"4097";"0";"BLOCK_LAVA";"0.9696";"0.9696";"0.9696";"0.9696";"100";"2600";"ROCK";"0";"0";"0";"0";"0";"0";"16";"0.7664";"0.2032";"0.0000";"0.0000";"FF4600E6" "4097";"0";"BLOCK_LAVA";"0.9696";"0.9696";"0.9696";"0.9696";"100";"2600";"ROCK";"0";"0";"0";"0";"0";"0";"16";"0.7664";"0.2032";"0.0000";"0.0000";"FF4600E6";"32"
"-1";"0";"BLOCK_NULL";"4.0000";"4.0000";"4.0000";"4.0000";"-1";"2600";"NULL";"0";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"" "-1";"0";"BLOCK_NULL";"4.0000";"4.0000";"4.0000";"4.0000";"-1";"2600";"NULL";"0";"0";"1";"0";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A"
## Notes ## ## Notes ##
1 id drop name shdr shdg shdb shduv str dsty mate solid plat wall fall dlfn fv fr lumr lumg lumb lumuv colour vscs
2 0 0 BLOCK_AIR 0.0312 0.0312 0.0312 0.0312 1 1 NULL 0 0 1 0 0 0 4 0.0000 0.0000 0.0000 0.0000 N/A N/A
3 1 1 BLOCK_MIASMA 0.0312 0.0312 0.0312 0.0312 1 1 NULL 0 0 1 0 0 0 4 0.0000 0.0000 0.0000 0.0000 N/A N/A
4 16 17 BLOCK_STONE 0.1252 0.1252 0.1252 0.1252 48 2400 ROCK 1 0 1 0 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
5 17 17 BLOCK_STONE_QUARRIED 0.1252 0.1252 0.1252 0.1252 48 2400 ROCK 1 0 1 0 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
6 18 18 BLOCK_STONE_TILE_WHITE 0.1252 0.1252 0.1252 0.1252 48 2400 ROCK 1 0 1 0 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
7 19 19 BLOCK_STONE_BRICKS 0.1252 0.1252 0.1252 0.1252 48 2400 ROCK 1 0 1 0 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
8 32 32 BLOCK_DIRT 0.1252 0.1252 0.1252 0.1252 24 1400 DIRT 1 0 1 0 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
9 33 32 BLOCK_GRASS 0.1252 0.1252 0.1252 0.1252 24 1400 GRSS 1 0 0 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
10 34 34 BLOCK_GRASSWALL 0.1252 0.1252 0.1252 0.1252 24 1400 GRSS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
11 35 35 BLOCK_FOLIAGE_GREEN 0.1252 0.1252 0.1252 0.1252 24 1400 GRSS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
12 36 36 BLOCK_FOLIAGE_LIME 0.1252 0.1252 0.1252 0.1252 24 1400 GRSS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
13 37 37 BLOCK_FOLIAGE_GOLD 0.1252 0.1252 0.1252 0.1252 24 1400 GRSS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
14 38 38 BLOCK_FOLIAGE_RED 0.1252 0.1252 0.1252 0.1252 24 1400 GRSS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
15 39 39 BLOCK_FOLIAGE_ICEBLUE 0.1252 0.1252 0.1252 0.1252 24 1400 GRSS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
16 40 40 BLOCK_FOLIAGE_PURPLE 0.1252 0.1252 0.1252 0.1252 24 1400 GRSS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
17 48 48 BLOCK_PLANK_NORMAL 0.1252 0.1252 0.1252 0.1252 16 740 WOOD 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
18 49 49 BLOCK_PLANK_EBONY 0.1252 0.1252 0.1252 0.1252 19 1200 WOOD 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
19 50 50 BLOCK_PLANK_BIRCH 0.1252 0.1252 0.1252 0.1252 15 670 WOOD 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
20 51 51 BLOCK_PLANK_BLOODROSE 0.1252 0.1252 0.1252 0.1252 17 900 WOOD 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
21 64 64 BLOCK_TRUNK_NORMAL 0.1252 0.1252 0.1252 0.1252 16 740 WOOD 1 0 0 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
22 65 65 BLOCK_TRUNK_EBONY 0.1252 0.1252 0.1252 0.1252 19 1200 WOOD 1 0 0 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
23 66 66 BLOCK_TRUNK_BIRCH 0.1252 0.1252 0.1252 0.1252 15 670 WOOD 1 0 0 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
24 67 67 BLOCK_TRUNK_BLOODROSE 0.1252 0.1252 0.1252 0.1252 17 900 WOOD 1 0 0 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
25 80 80 BLOCK_SAND 0.1252 0.1252 0.1252 0.1252 24 2400 SAND 1 0 0 1 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
26 81 81 BLOCK_SAND_WHITE 0.1252 0.1252 0.1252 0.1252 24 2400 SAND 1 0 0 1 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
27 82 82 BLOCK_SAND_RED 0.1252 0.1252 0.1252 0.1252 24 2400 SAND 1 0 0 1 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
28 83 83 BLOCK_SAND_DESERT 0.1252 0.1252 0.1252 0.1252 24 2400 SAND 1 0 0 1 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
29 84 84 BLOCK_SAND_BLACK 0.1252 0.1252 0.1252 0.1252 24 2400 SAND 1 0 0 1 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
30 85 85 BLOCK_SAND_GREEN 0.1252 0.1252 0.1252 0.1252 24 2400 SAND 1 0 0 1 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
31 96 96 BLOCK_GRAVEL 0.1252 0.1252 0.1252 0.1252 24 2400 GRVL 1 0 0 1 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
32 97 97 BLOCK_GRAVEL_GREY 0.1252 0.1252 0.1252 0.1252 24 2400 GRVL 1 0 0 1 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
33 112 112 BLOCK_ORE_MALACHITE 0.1252 0.1252 0.1252 0.1252 48 2400 ROCK 1 0 0 0 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
34 113 113 BLOCK_ORE_HEMATITE 0.1252 0.1252 0.1252 0.1252 48 2400 ROCK 1 0 0 0 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
35 114 114 BLOCK_ORE_NATURAL_GOLD 0.1252 0.1252 0.1252 0.1252 48 2400 ROCK 1 0 0 0 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
36 115 115 BLOCK_ORE_NATURAL_SILVER 0.1252 0.1252 0.1252 0.1252 48 2400 ROCK 1 0 0 0 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
37 116 116 BLOCK_ORE_RUTILE 0.1252 0.1252 0.1252 0.1252 48 2400 ROCK 1 0 0 0 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
38 117 117 BLOCK_ORE_AURICHALCUMITE 0.1252 0.1252 0.1252 0.1252 48 2400 ROCK 1 0 0 0 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
39 128 128 BLOCK_GEM_RUBY 0.1252 0.1252 0.1252 0.1252 48 2400 ROCK 1 0 0 0 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
40 129 129 BLOCK_GEM_EMERALD 0.1252 0.1252 0.1252 0.1252 48 2400 ROCK 1 0 0 0 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
41 130 130 BLOCK_GEM_SAPPHIRE 0.1252 0.1252 0.1252 0.1252 48 2400 ROCK 1 0 0 0 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
42 131 131 BLOCK_GEM_TOPAZ 0.1252 0.1252 0.1252 0.1252 48 2400 ROCK 1 0 0 0 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
43 132 132 BLOCK_GEM_DIAMOND 0.1252 0.1252 0.1252 0.1252 48 2400 ROCK 1 0 0 0 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
44 133 133 BLOCK_GEM_AMETHYST 0.1252 0.1252 0.1252 0.1252 48 2400 ROCK 1 0 0 0 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
45 144 144 BLOCK_SNOW 0.1252 0.1252 0.1252 0.1252 24 500 SNOW 1 0 1 0 0 4 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
46 145 0 BLOCK_ICE_FRAGILE 0.0508 0.0508 0.0508 0.0508 5 930 ICEI 1 0 0 0 0 0 4 0.0000 0.0000 0.0000 0.0000 N/A N/A
47 146 146 BLOCK_ICE_NATURAL 0.1016 0.1016 0.1016 0.1016 35 930 ICEI 1 0 1 0 0 0 4 0.0000 0.0000 0.0000 0.0000 N/A N/A
48 147 147 BLOCK_ICE_CLEAR_MAGICAL 0.1252 0.1252 0.1252 0.1252 48 3720 ICEX 1 0 1 0 0 0 4 0.0744 0.1252 0.2268 0.0000 N/A N/A
49 148 148 BLOCK_GLASS_CRUDE 0.0876 0.0424 0.0876 0.1252 5 2500 GLAS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
50 149 149 BLOCK_GLASS_CLEAN 0.0424 0.0424 0.0424 0.0636 5 2203 GLAS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
51 160 160 BLOCK_PLATFORM_STONE 0.0312 0.0312 0.0312 0.0312 5 N/A ROCK 0 1 0 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
52 161 161 BLOCK_PLATFORM_WOODEN 0.0312 0.0312 0.0312 0.0312 5 N/A WOOD 0 1 0 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
53 162 162 BLOCK_PLATFORM_EBONY 0.0312 0.0312 0.0312 0.0312 5 N/A WOOD 0 1 0 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
54 163 163 BLOCK_PLATFORM_BIRCH 0.0312 0.0312 0.0312 0.0312 5 N/A WOOD 0 1 0 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
55 164 164 BLOCK_PLATFORM_BLOODROSE 0.0312 0.0312 0.0312 0.0312 5 N/A WOOD 0 1 0 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
56 176 176 BLOCK_TORCH 0.0312 0.0312 0.0312 0.0312 1 N/A FXTR 0 0 0 0 1 0 16 1.0000 0.6372 0.0000 0.0000 N/A N/A
57 177 177 BLOCK_TORCH_FROST 0.0312 0.0312 0.0312 0.0312 1 N/A FXTR 0 0 0 0 1 0 16 0.3048 0.4848 1.0000 0.0000 N/A N/A
58 192 176 BLOCK_TORCH 0.0312 0.0312 0.0312 0.0312 1 N/A FXTR 0 0 0 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
59 193 177 BLOCK_TORCH_FROST 0.0312 0.0312 0.0312 0.0312 1 N/A FXTR 0 0 0 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
60 208 208 BLOCK_ILLUMINATOR_WHITE 0.0312 0.0312 0.0312 0.0312 1 N/A GLAS 1 0 1 0 0 0 16 0.9270 0.9414 0.8519 0.0000 N/A N/A
61 209 209 BLOCK_ILLUMINATOR_YELLOW 0.0312 0.0312 0.0312 0.0312 1 N/A GLAS 1 0 1 0 0 0 16 1.0000 0.8408 0.0000 0.0000 N/A N/A
62 210 210 BLOCK_ILLUMINATOR_ORANGE 0.0312 0.0312 0.0312 0.0312 1 N/A GLAS 1 0 1 0 0 0 16 1.0000 0.5294 0.0000 0.0000 N/A N/A
63 211 211 BLOCK_ILLUMINATOR_RED 0.0312 0.0312 0.0312 0.0312 1 N/A GLAS 1 0 1 0 0 0 16 0.9188 0.0000 0.0000 0.0000 N/A N/A
64 212 212 BLOCK_ILLUMINATOR_FUCHSIA 0.0312 0.0312 0.0312 0.0312 1 N/A GLAS 1 0 1 0 0 0 16 0.9188 0.0000 0.7156 0.0000 N/A N/A
65 213 213 BLOCK_ILLUMINATOR_PURPLE 0.0312 0.0312 0.0312 0.0312 1 N/A GLAS 1 0 1 0 0 0 16 0.7156 0.0000 0.9188 0.0000 N/A N/A
66 214 214 BLOCK_ILLUMINATOR_BLUE 0.0312 0.0312 0.0312 0.0312 1 N/A GLAS 1 0 1 0 0 0 16 0.0000 0.1996 0.9188 0.0000 N/A N/A
67 215 215 BLOCK_ILLUMINATOR_CYAN 0.0312 0.0312 0.0312 0.0312 1 N/A GLAS 1 0 1 0 0 0 16 0.4621 1.4188 1.2368 0.0000 N/A N/A
68 216 216 BLOCK_ILLUMINATOR_GREEN 0.0312 0.0312 0.0312 0.0312 1 N/A GLAS 1 0 1 0 0 0 16 0.2112 1.0000 0.0000 0.0000 N/A N/A
69 217 217 BLOCK_ILLUMINATOR_GREEN_DARK 0.0312 0.0312 0.0312 0.0312 1 N/A GLAS 1 0 1 0 0 0 16 0.1252 0.4068 0.0000 0.0000 N/A N/A
70 218 218 BLOCK_ILLUMINATOR_BROWN 0.0312 0.0312 0.0312 0.0312 1 N/A GLAS 1 0 1 0 0 0 16 0.3324 0.1252 0.0000 0.0000 N/A N/A
71 219 219 BLOCK_ILLUMINATOR_TAN 0.0312 0.0312 0.0312 0.0312 1 N/A GLAS 1 0 1 0 0 0 16 0.5864 0.4068 0.2032 0.0000 N/A N/A
72 220 220 BLOCK_ILLUMINATOR_GREY_LIGHT 0.0312 0.0312 0.0312 0.0312 1 N/A GLAS 1 0 1 0 0 0 16 0.7392 0.7392 0.7392 0.0000 N/A N/A
73 221 221 BLOCK_ILLUMINATOR_GREY_MED 0.0312 0.0312 0.0312 0.0312 1 N/A GLAS 1 0 1 0 0 0 16 0.4576 0.4576 0.4576 0.0000 N/A N/A
74 222 222 BLOCK_ILLUMINATOR_GREY_DARK 0.0312 0.0312 0.0312 0.0312 1 N/A GLAS 1 0 1 0 0 0 16 0.2540 0.2540 0.2540 0.0000 N/A N/A
75 223 223 BLOCK_ILLUMINATOR_BLACK 0.0312 0.0312 0.0312 0.0312 1 N/A GLAS 1 0 1 0 0 0 16 0.2140 0.0000 0.4932 3.7499 N/A N/A
76 224 208 BLOCK_ILLUMINATOR_WHITE 0.1252 0.1252 0.1252 0.1252 1 N/A GLAS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
77 225 209 BLOCK_ILLUMINATOR_YELLOW 0.1252 0.1252 0.1252 0.1252 1 N/A GLAS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
78 226 210 BLOCK_ILLUMINATOR_ORANGE 0.1252 0.1252 0.1252 0.1252 1 N/A GLAS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
79 227 211 BLOCK_ILLUMINATOR_RED 0.1252 0.1252 0.1252 0.1252 1 N/A GLAS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
80 228 212 BLOCK_ILLUMINATOR_FUCHSIA 0.1252 0.1252 0.1252 0.1252 1 N/A GLAS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
81 229 213 BLOCK_ILLUMINATOR_PURPLE 0.1252 0.1252 0.1252 0.1252 1 N/A GLAS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
82 230 214 BLOCK_ILLUMINATOR_BLUE 0.1252 0.1252 0.1252 0.1252 1 N/A GLAS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
83 231 215 BLOCK_ILLUMINATOR_CYAN 0.1252 0.1252 0.1252 0.1252 1 N/A GLAS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
84 232 216 BLOCK_ILLUMINATOR_GREEN 0.1252 0.1252 0.1252 0.1252 1 N/A GLAS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
85 233 217 BLOCK_ILLUMINATOR_GREEN_DARK 0.1252 0.1252 0.1252 0.1252 1 N/A GLAS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
86 234 218 BLOCK_ILLUMINATOR_BROWN 0.1252 0.1252 0.1252 0.1252 1 N/A GLAS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
87 235 219 BLOCK_ILLUMINATOR_TAN 0.1252 0.1252 0.1252 0.1252 1 N/A GLAS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
88 236 220 BLOCK_ILLUMINATOR_GREY_LIGHT 0.1252 0.1252 0.1252 0.1252 1 N/A GLAS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
89 237 221 BLOCK_ILLUMINATOR_GREY_MED 0.1252 0.1252 0.1252 0.1252 1 N/A GLAS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
90 238 222 BLOCK_ILLUMINATOR_GREY_DARK 0.1252 0.1252 0.1252 0.1252 1 N/A GLAS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
91 239 223 BLOCK_ILLUMINATOR_BLACK 0.1252 0.1252 0.1252 0.1252 1 N/A GLAS 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
92 240 240 BLOCK_SANDSTONE 0.1252 0.1252 0.1252 0.1252 48 1900 ROCK 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
93 241 241 BLOCK_SANDSTONE_WHITE 0.1252 0.1252 0.1252 0.1252 48 1900 ROCK 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
94 242 242 BLOCK_SANDSTONE_RED 0.1252 0.1252 0.1252 0.1252 48 1900 ROCK 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
95 243 243 BLOCK_SANDSTONE_DESERT 0.1252 0.1252 0.1252 0.1252 48 1900 ROCK 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
96 244 244 BLOCK_SANDSTONE_BLACK 0.1252 0.1252 0.1252 0.1252 48 1900 ROCK 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
97 245 245 BLOCK_SANDSTONE_GREEN 0.1252 0.1252 0.1252 0.1252 48 1900 ROCK 1 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
98 256 256 BLOCK_LANTERN_IRON_REGULAR 0.0312 0.0312 0.0312 0.0312 1 N/A FXTR 0 0 0 0 0 0 16 1.0000 0.6372 0.0000 0.0000 N/A N/A
99 257 257 BLOCK_SUNSTONE 0.1252 0.1252 0.1252 0.1252 1 N/A ROCK 1 0 0 0 2 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
100 258 258 BLOCK_DAYLIGHT_CAPACITOR 0.1252 0.1252 0.1252 0.1252 1 N/A GLAS 1 0 0 0 3 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
101 4096 0 BLOCK_WATER 0.1016 0.0744 0.0508 0.0826 100 1000 WATR 0 0 0 0 0 0 16 0.0000 0.0000 0.0000 0.0000 005599A6 16
102 4097 0 BLOCK_LAVA 0.9696 0.9696 0.9696 0.9696 100 2600 ROCK 0 0 0 0 0 0 16 0.7664 0.2032 0.0000 0.0000 FF4600E6 32
103 -1 0 BLOCK_NULL 4.0000 4.0000 4.0000 4.0000 -1 2600 NULL 0 0 1 0 0 0 16 0.0000 0.0000 0.0000 0.0000 N/A N/A
104 ## Notes ##
105 #
106 # Lava/Water props are left for future references, do not delete them until FluidCodex is built #

View File

@@ -16,15 +16,15 @@ import java.io.IOException
*/ */
object BlockCodex { object BlockCodex {
private var blockProps: Array<BlockProp> private var blockProps = HashMap<Int, BlockProp>()
/** 4096 */
const val MAX_TERRAIN_TILES = MapLayer.RANGE * PairedMapLayer.RANGE const val MAX_TERRAIN_TILES = MapLayer.RANGE * PairedMapLayer.RANGE
private val nullProp = BlockProp() private val nullProp = BlockProp()
init { var highestNumber = -1
blockProps = Array<BlockProp>(MAX_TERRAIN_TILES * 2, { BlockProp() }) private set
}
/** /**
* Later entry (possible from other modules) will replace older ones * Later entry (possible from other modules) will replace older ones
@@ -36,12 +36,18 @@ object BlockCodex {
AppLoader.printdbg(this, "Building block properties table") AppLoader.printdbg(this, "Building block properties table")
records.forEach { records.forEach {
if (intVal(it, "id") == -1) { /*if (intVal(it, "id") == -1) {
setProp(nullProp, it) setProp(nullProp, it)
} }
else { else {
setProp(blockProps[intVal(it, "id")], it) setProp(blockProps[intVal(it, "id")], it)
} }*/
val id = intVal(it, "id")
setProp(id, it)
if (id > highestNumber)
highestNumber = id
} }
} }
catch (e: IOException) { catch (e: IOException) {
@@ -68,7 +74,7 @@ object BlockCodex {
} }
try { try {
return blockProps[rawIndex] return blockProps[rawIndex]!!
} }
catch (e: NullPointerException) { catch (e: NullPointerException) {
throw NullPointerException("Blockprop with raw id $rawIndex does not exist.") throw NullPointerException("Blockprop with raw id $rawIndex does not exist.")
@@ -77,11 +83,11 @@ object BlockCodex {
operator fun get(fluidType: FluidType?): BlockProp { operator fun get(fluidType: FluidType?): BlockProp {
if (fluidType == null || fluidType.value == 0) { if (fluidType == null || fluidType.value == 0) {
return blockProps[Block.AIR] return blockProps[Block.AIR]!!
} }
try { try {
return blockProps[fluidType.abs() + GameWorld.TILES_SUPPORTED - 1] return blockProps[fluidType.abs() + GameWorld.TILES_SUPPORTED - 1]!!
} }
catch (e: NullPointerException) { catch (e: NullPointerException) {
throw NullPointerException("Blockprop with raw id $fluidType does not exist.") throw NullPointerException("Blockprop with raw id $fluidType does not exist.")
@@ -89,22 +95,14 @@ object BlockCodex {
} }
fun getOrNull(rawIndex: Int?): BlockProp? { fun getOrNull(rawIndex: Int?): BlockProp? {
if (rawIndex == null || rawIndex == Block.NULL) { return blockProps[rawIndex]
return null
}
try {
return blockProps[rawIndex]
}
catch (e: NullPointerException) {
throw NullPointerException("Blockprop with raw id $rawIndex does not exist.")
}
} }
private fun setProp(prop: BlockProp, record: CSVRecord) { private fun setProp(key: Int, record: CSVRecord) {
val prop = BlockProp()
prop.nameKey = record.get("name") prop.nameKey = record.get("name")
prop.id = intVal(record, "id") prop.id = if (key == -1) 0 else intVal(record, "id")
prop.drop = intVal(record, "drop") prop.drop = intVal(record, "drop")
prop.shadeColR = floatVal(record, "shdr") / LightmapRenderer.MUL_FLOAT prop.shadeColR = floatVal(record, "shdr") / LightmapRenderer.MUL_FLOAT
@@ -124,6 +122,7 @@ object BlockCodex {
prop.friction = intVal(record, "fr") prop.friction = intVal(record, "fr")
prop.viscosity = intVal(record, "vscs") prop.viscosity = intVal(record, "vscs")
prop.colour = str16ToInt(record, "colour")
//prop.isFluid = boolVal(record, "fluid") //prop.isFluid = boolVal(record, "fluid")
prop.isSolid = boolVal(record, "solid") prop.isSolid = boolVal(record, "solid")
@@ -135,10 +134,25 @@ object BlockCodex {
prop.dynamicLuminosityFunction = intVal(record, "dlfn") prop.dynamicLuminosityFunction = intVal(record, "dlfn")
blockProps[key] = prop
print("${intVal(record, "id")}") print("${intVal(record, "id")}")
println("\t" + prop.nameKey) println("\t" + prop.nameKey)
} }
private fun str16ToInt(rec: CSVRecord, s: String): Int {
var ret = 0
try {
ret = rec.get(s).toLong(16).toInt()
}
catch (e: NumberFormatException) {
}
catch (e1: IllegalStateException) {
}
return ret
}
private fun intVal(rec: CSVRecord, s: String): Int { private fun intVal(rec: CSVRecord, s: String): Int {
var ret = -1 var ret = -1
try { try {

View File

@@ -22,6 +22,7 @@ class BlockProp {
var strength: Int = 0 var strength: Int = 0
var density: Int = 0 var density: Int = 0
var viscosity: Int = 0 var viscosity: Int = 0
var colour: Int = 0
var isSolid: Boolean = false var isSolid: Boolean = false
//var isClear: Boolean = false //var isClear: Boolean = false

View File

@@ -28,12 +28,12 @@ import java.util.Properties;
public class CSVEditor extends JFrame { public class CSVEditor extends JFrame {
/** Default columns. When you open existing csv, it should overwrite this. */ /** Default columns. When you open existing csv, it should overwrite this. */
private String[] columns = new String[]{"id", "drop", "name", "shdr", "shdg", "shdb", "shduv", "str", "dsty", "mate", "solid", "plat", "wall", "fall", "dlfn", "fv", "fr", "lumr", "lumg", "lumb", "lumuv", "colour"}; private String[] columns = new String[]{"id", "drop", "name", "shdr", "shdg", "shdb", "shduv", "str", "dsty", "mate", "solid", "plat", "wall", "fall", "dlfn", "fv", "fr", "lumr", "lumg", "lumb", "lumuv", "colour", "vscs"};
private final int FOUR_DIGIT = 42; private final int FOUR_DIGIT = 42;
private final int SIX_DIGIT = 50; private final int SIX_DIGIT = 50;
private final int TWO_DIGIT = 30; private final int TWO_DIGIT = 30;
private final int ARBITRARY = 240; private final int ARBITRARY = 240;
private int[] colWidth = new int[]{FOUR_DIGIT, FOUR_DIGIT, ARBITRARY, SIX_DIGIT, SIX_DIGIT, SIX_DIGIT, SIX_DIGIT, TWO_DIGIT, FOUR_DIGIT, FOUR_DIGIT, TWO_DIGIT, TWO_DIGIT, TWO_DIGIT, TWO_DIGIT, TWO_DIGIT, TWO_DIGIT, TWO_DIGIT, SIX_DIGIT, SIX_DIGIT, SIX_DIGIT, SIX_DIGIT, FOUR_DIGIT * 2}; private int[] colWidth = new int[]{FOUR_DIGIT, FOUR_DIGIT, ARBITRARY, SIX_DIGIT, SIX_DIGIT, SIX_DIGIT, SIX_DIGIT, TWO_DIGIT, FOUR_DIGIT, FOUR_DIGIT, TWO_DIGIT, TWO_DIGIT, TWO_DIGIT, TWO_DIGIT, TWO_DIGIT, TWO_DIGIT, TWO_DIGIT, SIX_DIGIT, SIX_DIGIT, SIX_DIGIT, SIX_DIGIT, FOUR_DIGIT * 2, TWO_DIGIT};
private final int UNDO_BUFFER_SIZE = 10; private final int UNDO_BUFFER_SIZE = 10;
@@ -500,7 +500,8 @@ public class CSVEditor extends JFrame {
"dlfn=Dynamic Light Function. 0=Static. Please see <strong>notes</strong>\n" + "dlfn=Dynamic Light Function. 0=Static. Please see <strong>notes</strong>\n" +
"fv=Vertical friction when player slide on the cliff. 0 means not slide-able\n" + "fv=Vertical friction when player slide on the cliff. 0 means not slide-able\n" +
"fr=Horizontal friction. &lt;16:slippery 16:regular &gt;16:sticky\n" + "fr=Horizontal friction. &lt;16:slippery 16:regular &gt;16:sticky\n" +
"colour=Colour of the block in hexadecimal RGBA. Only makes sense for fluids (id >= 4096)\n"; "colour=[Fluids] Colour of the block in hexadecimal RGBA.\n" +
"vscs=[Fluids] Viscocity of the block. 16 for water.\n";
/** /**
* ¤ is used as a \n marker * ¤ is used as a \n marker

View File

@@ -36,66 +36,70 @@ class EntryPoint : ModuleEntryPoint() {
// blocks.csvs are loaded by ModMgr beforehand // blocks.csvs are loaded by ModMgr beforehand
// block items (blocks and walls are the same thing basically) // block items (blocks and walls are the same thing basically)
for (i in ItemCodex.ITEM_TILES + ItemCodex.ITEM_WALLS) { for (i in ItemCodex.ITEM_TILES + ItemCodex.ITEM_WALLS) {
ItemCodex.itemCodex[i] = object : GameItem() { val blockProp = BlockCodex.getOrNull(i % ItemCodex.ITEM_WALLS.first)
override val originalID = i
override var dynamicID = i
override val isUnique: Boolean = false
override var baseMass: Double = BlockCodex[i].density / 1000.0
override var baseToolSize: Double? = null
override val originalName = BlockCodex[i % ItemCodex.ITEM_WALLS.first].nameKey
override var stackable = true
override var inventoryCategory = if (i in ItemCodex.ITEM_TILES) Category.BLOCK else Category.WALL
override var isDynamic = false
override val material = Material(0,0,0,0,0,0,0,0,0,0.0)
init { if (blockProp != null) {
equipPosition = EquipPosition.HAND_GRIP ItemCodex.itemCodex[i] = object : GameItem() {
override val originalID = i
override var dynamicID = i
override val isUnique: Boolean = false
override var baseMass: Double = blockProp.density / 1000.0
override var baseToolSize: Double? = null
override val originalName = blockProp.nameKey
override var stackable = true
override var inventoryCategory = if (i in ItemCodex.ITEM_TILES) Category.BLOCK else Category.WALL
override var isDynamic = false
override val material = Material(0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0)
if (IS_DEVELOPMENT_BUILD) init {
print("$originalID ") equipPosition = EquipPosition.HAND_GRIP
}
override fun startPrimaryUse(delta: Float): Boolean { if (IS_DEVELOPMENT_BUILD)
val ingame = Terrarum.ingame!! as Ingame print("$originalID ")
}
val mousePoint = Point2d(Terrarum.mouseTileX.toDouble(), Terrarum.mouseTileY.toDouble()) override fun startPrimaryUse(delta: Float): Boolean {
val ingame = Terrarum.ingame!! as Ingame
// check for collision with actors (BLOCK only) val mousePoint = Point2d(Terrarum.mouseTileX.toDouble(), Terrarum.mouseTileY.toDouble())
if (this.inventoryCategory == Category.BLOCK) {
ingame.actorContainerActive.forEach { // check for collision with actors (BLOCK only)
if (it is ActorWBMovable && it.hIntTilewiseHitbox.intersects(mousePoint)) if (this.inventoryCategory == Category.BLOCK) {
return false ingame.actorContainerActive.forEach {
if (it is ActorWBMovable && it.hIntTilewiseHitbox.intersects(mousePoint))
return false
}
} }
}
// return false if the tile is already there // return false if the tile is already there
if (this.inventoryCategory == Category.BLOCK && if (this.inventoryCategory == Category.BLOCK &&
this.dynamicID == ingame.world.getTileFromTerrain(Terrarum.mouseTileX, Terrarum.mouseTileY) || this.dynamicID == ingame.world.getTileFromTerrain(Terrarum.mouseTileX, Terrarum.mouseTileY) ||
this.inventoryCategory == Category.WALL && this.inventoryCategory == Category.WALL &&
this.dynamicID - ItemCodex.ITEM_WALLS.start == ingame.world.getTileFromWall(Terrarum.mouseTileX, Terrarum.mouseTileY) || this.dynamicID - ItemCodex.ITEM_WALLS.start == ingame.world.getTileFromWall(Terrarum.mouseTileX, Terrarum.mouseTileY) ||
this.inventoryCategory == Category.WIRE && this.inventoryCategory == Category.WIRE &&
this.dynamicID - ItemCodex.ITEM_WIRES.start == ingame.world.getTileFromWire(Terrarum.mouseTileX, Terrarum.mouseTileY) this.dynamicID - ItemCodex.ITEM_WIRES.start == ingame.world.getTileFromWire(Terrarum.mouseTileX, Terrarum.mouseTileY)
)
return false
// filter passed, do the job
// FIXME this is only useful for Player
if (i in ItemCodex.ITEM_TILES) {
ingame.world.setTileTerrain(
Terrarum.mouseTileX,
Terrarum.mouseTileY,
i
) )
} return false
else {
ingame.world.setTileWall(
Terrarum.mouseTileX,
Terrarum.mouseTileY,
i
)
}
return true // filter passed, do the job
// FIXME this is only useful for Player
if (i in ItemCodex.ITEM_TILES) {
ingame.world.setTileTerrain(
Terrarum.mouseTileX,
Terrarum.mouseTileY,
i
)
}
else {
ingame.world.setTileWall(
Terrarum.mouseTileX,
Terrarum.mouseTileY,
i
)
}
return true
}
} }
} }
} }

View File

@@ -107,6 +107,8 @@ internal object BlocksDrawer {
//PixmapIO2.writeTGA(Gdx.files.absolute("${AppLoader.defaultDir}/atlasWinter.tga"), CreateTileAtlas.atlasWinter, false) //PixmapIO2.writeTGA(Gdx.files.absolute("${AppLoader.defaultDir}/atlasWinter.tga"), CreateTileAtlas.atlasWinter, false)
//printdbg(this, "Writing pixmap as tga: atlasSpring.tga") //printdbg(this, "Writing pixmap as tga: atlasSpring.tga")
//PixmapIO2.writeTGA(Gdx.files.absolute("${AppLoader.defaultDir}/atlasSpring.tga"), CreateTileAtlas.atlasSpring, false) //PixmapIO2.writeTGA(Gdx.files.absolute("${AppLoader.defaultDir}/atlasSpring.tga"), CreateTileAtlas.atlasSpring, false)
//printdbg(this, "Writing pixmap as tga: atlasFluid.tga")
//PixmapIO2.writeTGA(Gdx.files.absolute("${AppLoader.defaultDir}/atlasFluid.tga"), CreateTileAtlas.atlasFluid, false)
@@ -139,7 +141,7 @@ internal object BlocksDrawer {
val itemWallPixmap = Pixmap(16 * TILE_SIZE, TILES_IN_X * TILE_SIZE, Pixmap.Format.RGBA8888) val itemWallPixmap = Pixmap(16 * TILE_SIZE, TILES_IN_X * TILE_SIZE, Pixmap.Format.RGBA8888)
CreateTileAtlas.tags.toMap().forEach { t, u -> CreateTileAtlas.tags.toMap().forEach { t, u ->
val tilePosFromAtlas = u.atlasStartingPosition + maskTypetoTileIDForItemImage(u.maskType) val tilePosFromAtlas = u.tileNumber + maskTypetoTileIDForItemImage(u.maskType)
val srcX = (tilePosFromAtlas % TILES_IN_X) * TILE_SIZE val srcX = (tilePosFromAtlas % TILES_IN_X) * TILE_SIZE
val srcY = (tilePosFromAtlas / TILES_IN_X) * TILE_SIZE val srcY = (tilePosFromAtlas / TILES_IN_X) * TILE_SIZE
val destX = (t % 16) * TILE_SIZE val destX = (t % 16) * TILE_SIZE
@@ -347,7 +349,7 @@ internal object BlocksDrawer {
} }
val renderTag = CreateTileAtlas.getRenderTag(thisTile) val renderTag = CreateTileAtlas.getRenderTag(thisTile)
val tileNumberBase = renderTag.atlasStartingPosition val tileNumberBase = renderTag.tileNumber
val tileNumber = tileNumberBase + when (renderTag.maskType) { val tileNumber = tileNumberBase + when (renderTag.maskType) {
CreateTileAtlas.RenderTag.MASK_NA -> 0 CreateTileAtlas.RenderTag.MASK_NA -> 0
CreateTileAtlas.RenderTag.MASK_16 -> connectLut16[nearbyTilesInfo] CreateTileAtlas.RenderTag.MASK_16 -> connectLut16[nearbyTilesInfo]

View File

@@ -2,12 +2,16 @@ package net.torvald.terrarum.worlddrawer
import com.badlogic.gdx.Gdx import com.badlogic.gdx.Gdx
import com.badlogic.gdx.files.FileHandle import com.badlogic.gdx.files.FileHandle
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.Pixmap import com.badlogic.gdx.graphics.Pixmap
import com.badlogic.gdx.utils.GdxRuntimeException import com.badlogic.gdx.utils.GdxRuntimeException
import net.torvald.terrarum.AppLoader.printdbg
import net.torvald.terrarum.ModMgr import net.torvald.terrarum.ModMgr
import net.torvald.terrarum.blockproperties.BlockCodex
import net.torvald.terrarum.blockproperties.Fluid
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.toInt import net.torvald.terrarum.toInt
import net.torvald.terrarum.worlddrawer.FeaturesDrawer.TILE_SIZE import net.torvald.terrarum.worlddrawer.FeaturesDrawer.TILE_SIZE
import kotlin.math.roundToInt
/** /**
* This class implements work_files/dynamic_shape_2_0.psd * This class implements work_files/dynamic_shape_2_0.psd
@@ -22,6 +26,7 @@ object CreateTileAtlas {
lateinit var atlasAutumn: Pixmap lateinit var atlasAutumn: Pixmap
lateinit var atlasWinter: Pixmap lateinit var atlasWinter: Pixmap
lateinit var atlasSpring: Pixmap lateinit var atlasSpring: Pixmap
lateinit var atlasFluid: Pixmap
internal lateinit var tags: HashMap<Int, RenderTag> internal lateinit var tags: HashMap<Int, RenderTag>
private set private set
private val defaultRenderTag = RenderTag(3, RenderTag.CONNECT_SELF, RenderTag.MASK_NA) // 'update' block private val defaultRenderTag = RenderTag(3, RenderTag.CONNECT_SELF, RenderTag.MASK_NA) // 'update' block
@@ -31,6 +36,7 @@ object CreateTileAtlas {
/** 0000.tga, 1.tga.gz, 3242423.tga, 000033.tga.gz */ /** 0000.tga, 1.tga.gz, 3242423.tga, 000033.tga.gz */
// for right now, TGA file only, no gzip // for right now, TGA file only, no gzip
private val validTerrainTilesFilename = Regex("""[0-9]+\.tga""")//Regex("""[0-9]+\.tga(.gz)?""") private val validTerrainTilesFilename = Regex("""[0-9]+\.tga""")//Regex("""[0-9]+\.tga(.gz)?""")
private val validFluidTilesFilename = Regex("""fluid_[0-9]+\.tga""")
// 16 tiles are reserved for internal use: solid black, solid white, breakage stages. // 16 tiles are reserved for internal use: solid black, solid white, breakage stages.
// 0th tile is complete transparent tile and is also a BlockID of zero: air. // 0th tile is complete transparent tile and is also a BlockID of zero: air.
@@ -38,7 +44,7 @@ object CreateTileAtlas {
private val atlasInit = "./assets/graphics/blocks/init.tga" private val atlasInit = "./assets/graphics/blocks/init.tga"
/** /**
* Must be called AFTER mods' loading * Must be called AFTER mods' loading so that all the block props are loaded
*/ */
operator fun invoke(updateExisting: Boolean = false) { if (updateExisting || !initialised) { operator fun invoke(updateExisting: Boolean = false) { if (updateExisting || !initialised) {
@@ -49,6 +55,7 @@ object CreateTileAtlas {
atlasAutumn = Pixmap(TILES_IN_X * TILE_SIZE, TILES_IN_X * TILE_SIZE, Pixmap.Format.RGBA8888) atlasAutumn = Pixmap(TILES_IN_X * TILE_SIZE, TILES_IN_X * TILE_SIZE, Pixmap.Format.RGBA8888)
atlasWinter = Pixmap(TILES_IN_X * TILE_SIZE, TILES_IN_X * TILE_SIZE, Pixmap.Format.RGBA8888) atlasWinter = Pixmap(TILES_IN_X * TILE_SIZE, TILES_IN_X * TILE_SIZE, Pixmap.Format.RGBA8888)
atlasSpring = Pixmap(TILES_IN_X * TILE_SIZE, TILES_IN_X * TILE_SIZE, Pixmap.Format.RGBA8888) atlasSpring = Pixmap(TILES_IN_X * TILE_SIZE, TILES_IN_X * TILE_SIZE, Pixmap.Format.RGBA8888)
atlasFluid = Pixmap(TILES_IN_X * TILE_SIZE, TILES_IN_X * TILE_SIZE, Pixmap.Format.RGBA8888)
val initMap = Pixmap(Gdx.files.internal(atlasInit)) val initMap = Pixmap(Gdx.files.internal(atlasInit))
@@ -57,21 +64,20 @@ object CreateTileAtlas {
// get all the files applicable // get all the files applicable
// first, get all the '/blocks' directory // first, get all the '/blocks' directory, and add all the files, regardless of their extension, to the list
val tgaList = ArrayList<FileHandle>() val tgaList = ArrayList<FileHandle>()
ModMgr.getGdxFilesFromEveryMod("blocks").forEach { ModMgr.getGdxFilesFromEveryMod("blocks").forEach {
if (!it.isDirectory) { if (!it.isDirectory) {
throw Error("Path '${it.path()}' is not a directory") throw Error("Path '${it.path()}' is not a directory")
} }
// then, filter the file such that its name matches the regex it.list().forEach { tgaFile ->
it.list { _, name -> name.matches(validTerrainTilesFilename) }.forEach { tgaFile -> if (!tgaFile.isDirectory) tgaList.add(tgaFile)
tgaList.add(tgaFile)
} }
} }
// Sift through the file list, but TGA format first // Sift through the file list for blocks, but TGA format first
tgaList.filter { it.extension().toUpperCase() == "TGA" }.forEach { tgaList.filter { it.name().matches(validTerrainTilesFilename) && it.extension().toUpperCase() == "TGA" }.forEach {
try { try {
fileToAtlantes(it) fileToAtlantes(it)
} }
@@ -91,6 +97,72 @@ object CreateTileAtlas {
}*/ }*/
// Sift through the file list for fluids, but TGA format first
val fluidMasterPixmap = Pixmap(TILE_SIZE * 47, TILE_SIZE * 8, Pixmap.Format.RGBA8888)
tgaList.filter { it.name().matches(validFluidTilesFilename) && it.extension().toUpperCase() == "TGA" }.forEachIndexed { fluidLevel, it ->
val pixmap = Pixmap(it)
// dirty manual copy
repeat(5) {
fluidMasterPixmap.drawPixmap(pixmap,
it * TILE_SIZE * 7, fluidLevel * TILE_SIZE,
0, TILE_SIZE * it,
TILE_SIZE * 7, TILE_SIZE
)
}
repeat(2) {
fluidMasterPixmap.drawPixmap(pixmap,
(35 + it * 6) * TILE_SIZE, fluidLevel * TILE_SIZE,
0, TILE_SIZE * (5 + it),
TILE_SIZE * 6, TILE_SIZE
)
}
pixmap.dispose()
}
// test print
//PixmapIO2.writeTGA(Gdx.files.absolute("${AppLoader.defaultDir}/fluidpixmapmaster.tga"), fluidMasterPixmap, false)
// occupy the fluid pixmap with software rendering
for (i in BlockCodex.MAX_TERRAIN_TILES..BlockCodex.highestNumber) {
val fluid = Color(BlockCodex[i].colour)
// pixmap <- (color SCREEN fluidMasterPixmap)
// then occupy the atlasFluid
val pixmap = Pixmap(fluidMasterPixmap.width, fluidMasterPixmap.height, Pixmap.Format.RGBA8888)
for (y in 0 until pixmap.height) {
for (x in 0 until pixmap.width) {
val inColour = Color(fluidMasterPixmap.getPixel(x, y))
// SCREEN for RGB, MUL for A.
inColour.r = 1f - (1f - fluid.r) * (1f - inColour.r)
inColour.g = 1f - (1f - fluid.g) * (1f - inColour.g)
inColour.b = 1f - (1f - fluid.b) * (1f - inColour.b)
inColour.a = fluid.a * inColour.a
pixmap.drawPixel(x, y, inColour.toRGBA())
}
}
// test print
//PixmapIO2.writeTGA(Gdx.files.absolute("${AppLoader.defaultDir}/$i.tga"), pixmap, false)
// using the test print, I figured out that the output is alpha premultiplied.
// to the atlas
val atlasTargetPos = 1 + 47 * 8 * (i - BlockCodex.MAX_TERRAIN_TILES)
for (k in 0 until 47 * 8) {
val srcX = (k % 47) * TILE_SIZE
val srcY = (k / 47) * TILE_SIZE
val destX = ((atlasTargetPos + k) % TILES_IN_X) * TILE_SIZE
val destY = ((atlasTargetPos + k) / TILES_IN_X) * TILE_SIZE
atlasFluid.drawPixmap(pixmap, srcX, srcY, TILE_SIZE, TILE_SIZE, destX, destY, TILE_SIZE, TILE_SIZE)
}
pixmap.dispose()
}
fluidMasterPixmap.dispose()
initialised = true initialised = true
} } } }
@@ -98,6 +170,12 @@ object CreateTileAtlas {
return tags.getOrDefault(blockID, defaultRenderTag) return tags.getOrDefault(blockID, defaultRenderTag)
} }
fun fluidToTileNumber(fluid: GameWorld.FluidInfo): Int {
val fluidLevel = fluid.amount.coerceIn(0f, 1f).times(9).roundToInt()
return if (fluid.type == Fluid.NULL || fluidLevel == 0) 0 else
47 * 8 * (fluid.type.abs() - 1) + 47 * (fluidLevel - 1)
}
private fun fileToAtlantes(it: FileHandle) { private fun fileToAtlantes(it: FileHandle) {
val tilesPixmap = Pixmap(it) val tilesPixmap = Pixmap(it)
val blockID = it.nameWithoutExtension().toInt() val blockID = it.nameWithoutExtension().toInt()
@@ -160,7 +238,7 @@ object CreateTileAtlas {
val txOfPixmap = pixmap.width / TILE_SIZE val txOfPixmap = pixmap.width / TILE_SIZE
val tyOfPixmap = pixmap.height / TILE_SIZE val tyOfPixmap = pixmap.height / TILE_SIZE
for (i in 0 until tilesCount) { for (i in 0 until tilesCount) {
printdbg(this, "Rendering to atlas, tile# $atlasCursor") //printdbg(this, "Rendering to atlas, tile# $atlasCursor")
// different texture for different seasons (224x224) // different texture for different seasons (224x224)
if (seasonal) { if (seasonal) {
@@ -200,11 +278,12 @@ object CreateTileAtlas {
2 -> atlasAutumn.drawPixmap(pixmap, sourceX, sourceY, TILE_SIZE, TILE_SIZE, atlasX, atlasY, TILE_SIZE, TILE_SIZE) 2 -> atlasAutumn.drawPixmap(pixmap, sourceX, sourceY, TILE_SIZE, TILE_SIZE, atlasX, atlasY, TILE_SIZE, TILE_SIZE)
3 -> atlasWinter.drawPixmap(pixmap, sourceX, sourceY, TILE_SIZE, TILE_SIZE, atlasX, atlasY, TILE_SIZE, TILE_SIZE) 3 -> atlasWinter.drawPixmap(pixmap, sourceX, sourceY, TILE_SIZE, TILE_SIZE, atlasX, atlasY, TILE_SIZE, TILE_SIZE)
4 -> atlasSpring.drawPixmap(pixmap, sourceX, sourceY, TILE_SIZE, TILE_SIZE, atlasX, atlasY, TILE_SIZE, TILE_SIZE) 4 -> atlasSpring.drawPixmap(pixmap, sourceX, sourceY, TILE_SIZE, TILE_SIZE, atlasX, atlasY, TILE_SIZE, TILE_SIZE)
5 -> atlasFluid.drawPixmap(pixmap, sourceX, sourceY, TILE_SIZE, TILE_SIZE, atlasX, atlasY, TILE_SIZE, TILE_SIZE)
} }
} }
} }
data class RenderTag(val atlasStartingPosition: Int, val connectionType: Int, val maskType: Int) { data class RenderTag(val tileNumber: Int, val connectionType: Int, val maskType: Int) {
companion object { companion object {
const val CONNECT_MUTUAL = 0 const val CONNECT_MUTUAL = 0
const val CONNECT_SELF = 1 const val CONNECT_SELF = 1
@@ -233,6 +312,6 @@ object CreateTileAtlas {
atlasAutumn.dispose() atlasAutumn.dispose()
atlasWinter.dispose() atlasWinter.dispose()
atlasSpring.dispose() atlasSpring.dispose()
atlasFluid.dispose()
} }
} }