diching RGB10; colors are now fully vec3

This commit is contained in:
minjaesong
2017-07-09 02:21:24 +09:00
parent b3a355f51d
commit c96fb5e017
23 changed files with 299 additions and 282 deletions

View File

@@ -1,145 +1,146 @@
"blid";"drid";"name" ; "opacity";"strength";"dsty";"mate";"fluid";"solid";"wall"; "lumcolor";"fall";"dlfn";"vscs";"fv";"friction"
"0"; "0";"BLOCK_AIR" ; "8396808"; "1"; "1";"null"; "0"; "0"; "1"; "0"; "0"; "0"; "N/A"; "0";"4"
"16"; "17";"BLOCK_STONE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"17"; "17";"BLOCK_STONE_QUARRIED" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"18"; "18";"BLOCK_STONE_TILE_WHITE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"19"; "19";"BLOCK_STONE_BRICKS" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"32"; "32";"BLOCK_DIRT" ; "33587232"; "24";"1400";"dirt"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"33"; "32";"BLOCK_GRASS" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"34"; "34";"BLOCK_GRASSWALL" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"35"; "35";"BLOCK_FOLIAGE_GREEN" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"36"; "36";"BLOCK_FOLIAGE_LIME" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"37"; "37";"BLOCK_FOLIAGE_GOLD" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"38"; "38";"BLOCK_FOLIAGE_RED" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"39"; "39";"BLOCK_FOLIAGE_ICEBLUE" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"40"; "40";"BLOCK_FOLIAGE_PURPLE" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"48"; "48";"BLOCK_PLANK_NORMAL" ; "33587232"; "16"; "740";"wood"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"49"; "49";"BLOCK_PLANK_EBONY" ; "33587232"; "19";"1200";"wood"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"50"; "50";"BLOCK_PLANK_BIRCH" ; "33587232"; "15"; "670";"wood"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"51"; "51";"BLOCK_PLANK_BLOODROSE" ; "33587232"; "17"; "900";"wood"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"64"; "64";"BLOCK_TRUNK_NORMAL" ; "33587232"; "16"; "740";"wood"; "0"; "1"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"65"; "65";"BLOCK_TRUNK_EBONY" ; "33587232"; "19";"1200";"wood"; "0"; "1"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"66"; "66";"BLOCK_TRUNK_BIRCH" ; "33587232"; "15"; "670";"wood"; "0"; "1"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"67"; "67";"BLOCK_TRUNK_BLOODROSE" ; "33587232"; "17"; "900";"wood"; "0"; "1"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"80"; "80";"BLOCK_SAND" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "1"; "0"; "N/A"; "0";"16"
"81"; "81";"BLOCK_SAND_WHITE" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "1"; "0"; "N/A"; "0";"16"
"82"; "82";"BLOCK_SAND_RED" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "1"; "0"; "N/A"; "0";"16"
"83"; "83";"BLOCK_SAND_DESERT" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "1"; "0"; "N/A"; "0";"16"
"84"; "84";"BLOCK_SAND_BLACK" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "1"; "0"; "N/A"; "0";"16"
"85"; "85";"BLOCK_SAND_GREEN" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "1"; "0"; "N/A"; "0";"16"
"96"; "96";"BLOCK_GRAVEL" ; "33587232"; "24";"2400";"grvl"; "0"; "1"; "0"; "0"; "1"; "0"; "N/A"; "0";"16"
"97"; "97";"BLOCK_GRAVEL_GREY" ; "33587232"; "24";"2400";"grvl"; "0"; "1"; "0"; "0"; "1"; "0"; "N/A"; "0";"16"
"112"; "112";"BLOCK_ORE_MALACHITE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"113"; "113";"BLOCK_ORE_HEMATITE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"114"; "114";"BLOCK_ORE_NATURAL_GOLD" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"115"; "115";"BLOCK_ORE_NATURAL_SILVER" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"116"; "116";"BLOCK_ORE_RUTILE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"117"; "117";"BLOCK_ORE_AURICHALCUMITE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"128"; "128";"BLOCK_GEM_RUBY" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"129"; "129";"BLOCK_GEM_EMERALD" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"130"; "130";"BLOCK_GEM_SAPPHIRE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"131"; "131";"BLOCK_GEM_TOPAZ" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"132"; "132";"BLOCK_GEM_DIAMOND" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"133"; "133";"BLOCK_GEM_AMETHYST" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"144"; "144";"BLOCK_SNOW" ; "33587232"; "24"; "500";"snow"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"145"; "0";"BLOCK_ICE_FRAGILE" ; "13644813"; "5"; "930";"icei"; "0"; "1"; "0"; "0"; "0"; "0"; "N/A"; "0"; "4"
"146"; "146";"BLOCK_ICE_NATURAL" ; "27289626"; "35"; "930";"icei"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0"; "4"
"147"; "147";"BLOCK_ICE_CLEAR_MAGICAL" ; "33587232"; "48";"3720";"icex"; "0"; "1"; "1"; "19955770"; "0"; "0"; "N/A"; "0"; "4"
"148"; "148";"BLOCK_GLASS_CRUDE" ; "3146755"; "5";"2500";"glas"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"149"; "149";"BLOCK_GLASS_CLEAN" ; "1049601"; "5";"2203";"glas"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"160"; "160";"BLOCK_PLATFORM_STONE" ; "8396808"; "5"; "N/A";"rock"; "0"; "0"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"161"; "161";"BLOCK_PLATFORM_WOODEN" ; "8396808"; "5"; "N/A";"wood"; "0"; "0"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"162"; "162";"BLOCK_PLATFORM_EBONY" ; "8396808"; "5"; "N/A";"wood"; "0"; "0"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"163"; "163";"BLOCK_PLATFORM_BIRCH" ; "8396808"; "5"; "N/A";"wood"; "0"; "0"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"164"; "164";"BLOCK_PLATFORM_BLOODROSE" ; "8396808"; "5"; "N/A";"wood"; "0"; "0"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"176"; "176";"BLOCK_TORCH" ; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "267553792"; "0"; "1"; "N/A"; "0";"16"
"177"; "177";"BLOCK_TORCH_FROST" ; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "81916159"; "0"; "1"; "N/A"; "0";"16"
"192"; "176";"BLOCK_TORCH" ; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"193"; "177";"BLOCK_TORCH_FROST" ; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "0"; "0"; "0"; "N/A"; "0";"16"
"208"; "208";"BLOCK_ILLUMINATOR_WHITE" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "239319274"; "0"; "0"; "N/A"; "0";"16"
"209"; "209";"BLOCK_ILLUMINATOR_YELLOW" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "267607040"; "0"; "0"; "N/A"; "0";"16"
"210"; "210";"BLOCK_ILLUMINATOR_ORANGE" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "267546624"; "0"; "0"; "N/A"; "0";"16"
"211"; "211";"BLOCK_ILLUMINATOR_RED" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "246415360"; "0"; "0"; "N/A"; "0";"16"
"212"; "212";"BLOCK_ILLUMINATOR_FUCHSIA" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "246415543"; "0"; "0"; "N/A"; "0";"16"
"213"; "213";"BLOCK_ILLUMINATOR_PURPLE" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "191889643"; "0"; "0"; "N/A"; "0";"16"
"214"; "214";"BLOCK_ILLUMINATOR_BLUE" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "52479"; "0"; "0"; "N/A"; "0";"16"
"215"; "215";"BLOCK_ILLUMINATOR_CYAN" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "219391"; "0"; "0"; "N/A"; "0";"16"
"216"; "216";"BLOCK_ILLUMINATOR_GREEN" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "56884224"; "0"; "0"; "N/A"; "0";"16"
"217"; "217";"BLOCK_ILLUMINATOR_GREEN_DARK";"8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "33660928"; "0"; "0"; "N/A"; "0";"16"
"218"; "218";"BLOCK_ILLUMINATOR_BROWN" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "89161728"; "0"; "0"; "N/A"; "0";"16"
"219"; "219";"BLOCK_ILLUMINATOR_TAN" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "157392948"; "0"; "0"; "N/A"; "0";"16"
"220"; "220";"BLOCK_ILLUMINATOR_GREY_LIGHT";"8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "198374589"; "0"; "0"; "N/A"; "0";"16"
"221"; "221";"BLOCK_ILLUMINATOR_GREY_MED"; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "122803317"; "0"; "0"; "N/A"; "0";"16"
"222"; "222";"BLOCK_ILLUMINATOR_GREY_DARK"; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "68224065"; "0"; "0"; "N/A"; "0";"16"
"223"; "223";"BLOCK_ILLUMINATOR_BLACK" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "116392191"; "0"; "0"; "N/A"; "0";"16"
"224"; "208";"BLOCK_ILLUMINATOR_WHITE" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"225"; "209";"BLOCK_ILLUMINATOR_YELLOW" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"226"; "210";"BLOCK_ILLUMINATOR_ORANGE" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"227"; "211";"BLOCK_ILLUMINATOR_RED" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"228"; "212";"BLOCK_ILLUMINATOR_FUCHSIA" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"229"; "213";"BLOCK_ILLUMINATOR_PURPLE" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"230"; "214";"BLOCK_ILLUMINATOR_BLUE" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"231"; "215";"BLOCK_ILLUMINATOR_CYAN" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"232"; "216";"BLOCK_ILLUMINATOR_GREEN" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"233"; "217";"BLOCK_ILLUMINATOR_GREEN_DARK";"33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"234"; "218";"BLOCK_ILLUMINATOR_BROWN" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"235"; "219";"BLOCK_ILLUMINATOR_TAN" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"236"; "220";"BLOCK_ILLUMINATOR_GREY_LIGHT";"33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"237"; "221";"BLOCK_ILLUMINATOR_GREY_MED"; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"238"; "222";"BLOCK_ILLUMINATOR_GREY_DARK";"33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"239"; "223";"BLOCK_ILLUMINATOR_BLACK" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"240"; "240";"BLOCK_SANDSTONE" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"241"; "241";"BLOCK_SANDSTONE_WHITE" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"242"; "242";"BLOCK_SANDSTONE_RED" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"243"; "243";"BLOCK_SANDSTONE_DESERT" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"244"; "244";"BLOCK_SANDSTONE_BLACK" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"245"; "245";"BLOCK_SANDSTONE_GREEN" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"256"; "256";"BLOCK_LANTERN_IRON_REGULAR"; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "267553792"; "0"; "0"; "N/A"; "0";"16"
"257"; "257";"BLOCK_SUNSTONE" ; "33587232"; "1"; "N/A";"rock"; "0"; "1"; "0"; "0"; "0"; "2"; "N/A"; "0";"16"
"258"; "258";"BLOCK_DAYLIGHT_CAPACITOR" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "0"; "0"; "0"; "3"; "N/A"; "0";"16"
"4064"; "0";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "0"; "0"; "32"; "0";"16"
"4065"; "0";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "0"; "0"; "32"; "0";"16"
"4066"; "0";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "0"; "0"; "32"; "0";"16"
"4067"; "0";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "0"; "0"; "32"; "0";"16"
"4068"; "0";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "0"; "0"; "32"; "0";"16"
"4069"; "0";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "0"; "0"; "32"; "0";"16"
"4070"; "0";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "0"; "0"; "32"; "0";"16"
"4071"; "0";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "0"; "0"; "32"; "0";"16"
"4072"; "0";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "0"; "0"; "32"; "0";"16"
"4073"; "0";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "0"; "0"; "32"; "0";"16"
"4074"; "0";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "0"; "0"; "32"; "0";"16"
"4075"; "0";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "0"; "0"; "32"; "0";"16"
"4076"; "0";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "0"; "0"; "32"; "0";"16"
"4077"; "0";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "0"; "0"; "32"; "0";"16"
"4078"; "0";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "0"; "0"; "32"; "0";"16"
"4079"; "0";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "0"; "0"; "32"; "0";"16"
"4080"; "0";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "0"; "0"; "16"; "0";"16"
"4081"; "0";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "0"; "0"; "16"; "0";"16"
"4082"; "0";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "0"; "0"; "16"; "0";"16"
"4083"; "0";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "0"; "0"; "16"; "0";"16"
"4084"; "0";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "0"; "0"; "16"; "0";"16"
"4085"; "0";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "0"; "0"; "16"; "0";"16"
"4086"; "0";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "0"; "0"; "16"; "0";"16"
"4087"; "0";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "0"; "0"; "16"; "0";"16"
"4088"; "0";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "0"; "0"; "16"; "0";"16"
"4089"; "0";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "0"; "0"; "16"; "0";"16"
"4090"; "0";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "0"; "0"; "16"; "0";"16"
"4091"; "0";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "0"; "0"; "16"; "0";"16"
"4092"; "0";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "0"; "0"; "16"; "0";"16"
"4093"; "0";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "0"; "0"; "16"; "0";"16"
"4094"; "0";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "0"; "0"; "16"; "0";"16"
"4095"; "0";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "0"; "0"; "16"; "0";"16"
"-1"; "0";"BLOCK_NULL" ;"1073741823"; "-1";"2600";"null"; "0"; "0"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"id";"drop";"name" ; "shdr"; "shdg"; "shdb";"strength";"dsty";"mate";"fluid";"solid";"wall"; "lumr"; "lumg"; "lumb";"fall";"dlfn";"vscs";"fv";"friction"
"0"; "0";"BLOCK_AIR" ;"0.0312";"0.0312";"0.0312"; "1"; "1";"null"; "0"; "0"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"4"
"16"; "17";"BLOCK_STONE" ;"0.1252";"0.1252";"0.1252"; "48";"2400";"rock"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"17"; "17";"BLOCK_STONE_QUARRIED" ;"0.1252";"0.1252";"0.1252"; "48";"2400";"rock"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"18"; "18";"BLOCK_STONE_TILE_WHITE" ;"0.1252";"0.1252";"0.1252"; "48";"2400";"rock"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"19"; "19";"BLOCK_STONE_BRICKS" ;"0.1252";"0.1252";"0.1252"; "48";"2400";"rock"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"32"; "32";"BLOCK_DIRT" ;"0.1252";"0.1252";"0.1252"; "24";"1400";"dirt"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"33"; "32";"BLOCK_GRASS" ;"0.1252";"0.1252";"0.1252"; "24";"1400";"grss"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"34"; "34";"BLOCK_GRASSWALL" ;"0.1252";"0.1252";"0.1252"; "24";"1400";"grss"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"35"; "35";"BLOCK_FOLIAGE_GREEN" ;"0.1252";"0.1252";"0.1252"; "24";"1400";"grss"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"36"; "36";"BLOCK_FOLIAGE_LIME" ;"0.1252";"0.1252";"0.1252"; "24";"1400";"grss"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"37"; "37";"BLOCK_FOLIAGE_GOLD" ;"0.1252";"0.1252";"0.1252"; "24";"1400";"grss"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"38"; "38";"BLOCK_FOLIAGE_RED" ;"0.1252";"0.1252";"0.1252"; "24";"1400";"grss"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"39"; "39";"BLOCK_FOLIAGE_ICEBLUE" ;"0.1252";"0.1252";"0.1252"; "24";"1400";"grss"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"40"; "40";"BLOCK_FOLIAGE_PURPLE" ;"0.1252";"0.1252";"0.1252"; "24";"1400";"grss"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"48"; "48";"BLOCK_PLANK_NORMAL" ;"0.1252";"0.1252";"0.1252"; "16"; "740";"wood"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"49"; "49";"BLOCK_PLANK_EBONY" ;"0.1252";"0.1252";"0.1252"; "19";"1200";"wood"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"50"; "50";"BLOCK_PLANK_BIRCH" ;"0.1252";"0.1252";"0.1252"; "15"; "670";"wood"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"51"; "51";"BLOCK_PLANK_BLOODROSE" ;"0.1252";"0.1252";"0.1252"; "17"; "900";"wood"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"64"; "64";"BLOCK_TRUNK_NORMAL" ;"0.1252";"0.1252";"0.1252"; "16"; "740";"wood"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"65"; "65";"BLOCK_TRUNK_EBONY" ;"0.1252";"0.1252";"0.1252"; "19";"1200";"wood"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"66"; "66";"BLOCK_TRUNK_BIRCH" ;"0.1252";"0.1252";"0.1252"; "15"; "670";"wood"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"67"; "67";"BLOCK_TRUNK_BLOODROSE" ;"0.1252";"0.1252";"0.1252"; "17"; "900";"wood"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"80"; "80";"BLOCK_SAND" ;"0.1252";"0.1252";"0.1252"; "24";"2400";"sand"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "1"; "0"; "N/A"; "0";"16"
"81"; "81";"BLOCK_SAND_WHITE" ;"0.1252";"0.1252";"0.1252"; "24";"2400";"sand"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "1"; "0"; "N/A"; "0";"16"
"82"; "82";"BLOCK_SAND_RED" ;"0.1252";"0.1252";"0.1252"; "24";"2400";"sand"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "1"; "0"; "N/A"; "0";"16"
"83"; "83";"BLOCK_SAND_DESERT" ;"0.1252";"0.1252";"0.1252"; "24";"2400";"sand"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "1"; "0"; "N/A"; "0";"16"
"84"; "84";"BLOCK_SAND_BLACK" ;"0.1252";"0.1252";"0.1252"; "24";"2400";"sand"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "1"; "0"; "N/A"; "0";"16"
"85"; "85";"BLOCK_SAND_GREEN" ;"0.1252";"0.1252";"0.1252"; "24";"2400";"sand"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "1"; "0"; "N/A"; "0";"16"
"96"; "96";"BLOCK_GRAVEL" ;"0.1252";"0.1252";"0.1252"; "24";"2400";"grvl"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "1"; "0"; "N/A"; "0";"16"
"97"; "97";"BLOCK_GRAVEL_GREY" ;"0.1252";"0.1252";"0.1252"; "24";"2400";"grvl"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "1"; "0"; "N/A"; "0";"16"
"112"; "112";"BLOCK_ORE_MALACHITE" ;"0.1252";"0.1252";"0.1252"; "48";"2400";"rock"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"113"; "113";"BLOCK_ORE_HEMATITE" ;"0.1252";"0.1252";"0.1252"; "48";"2400";"rock"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"114"; "114";"BLOCK_ORE_NATURAL_GOLD" ;"0.1252";"0.1252";"0.1252"; "48";"2400";"rock"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"115"; "115";"BLOCK_ORE_NATURAL_SILVER" ;"0.1252";"0.1252";"0.1252"; "48";"2400";"rock"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"116"; "116";"BLOCK_ORE_RUTILE" ;"0.1252";"0.1252";"0.1252"; "48";"2400";"rock"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"117"; "117";"BLOCK_ORE_AURICHALCUMITE" ;"0.1252";"0.1252";"0.1252"; "48";"2400";"rock"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"128"; "128";"BLOCK_GEM_RUBY" ;"0.1252";"0.1252";"0.1252"; "48";"2400";"rock"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"129"; "129";"BLOCK_GEM_EMERALD" ;"0.1252";"0.1252";"0.1252"; "48";"2400";"rock"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"130"; "130";"BLOCK_GEM_SAPPHIRE" ;"0.1252";"0.1252";"0.1252"; "48";"2400";"rock"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"131"; "131";"BLOCK_GEM_TOPAZ" ;"0.1252";"0.1252";"0.1252"; "48";"2400";"rock"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"132"; "132";"BLOCK_GEM_DIAMOND" ;"0.1252";"0.1252";"0.1252"; "48";"2400";"rock"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"133"; "133";"BLOCK_GEM_AMETHYST" ;"0.1252";"0.1252";"0.1252"; "48";"2400";"rock"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"144"; "144";"BLOCK_SNOW" ;"0.1252";"0.1252";"0.1252"; "24"; "500";"snow"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"145"; "0";"BLOCK_ICE_FRAGILE" ;"0.0508";"0.0508";"0.0508"; "5"; "930";"icei"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0"; "4"
"146"; "146";"BLOCK_ICE_NATURAL" ;"0.1016";"0.1016";"0.1016"; "35"; "930";"icei"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0"; "4"
"147"; "147";"BLOCK_ICE_CLEAR_MAGICAL" ;"0.1252";"0.1252";"0.1252"; "48";"3720";"icex"; "0"; "1"; "1";"0.0744";"0.1252";"0.2268"; "0"; "0"; "N/A"; "0"; "4"
"148"; "148";"BLOCK_GLASS_CRUDE" ;"0.0120";"0.0040";"0.0120"; "5";"2500";"glas"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"149"; "149";"BLOCK_GLASS_CLEAN" ;"0.0040";"0.0040";"0.0040"; "5";"2203";"glas"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"160"; "160";"BLOCK_PLATFORM_STONE" ;"0.0312";"0.0312";"0.0312"; "5"; "N/A";"rock"; "0"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"161"; "161";"BLOCK_PLATFORM_WOODEN" ;"0.0312";"0.0312";"0.0312"; "5"; "N/A";"wood"; "0"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"162"; "162";"BLOCK_PLATFORM_EBONY" ;"0.0312";"0.0312";"0.0312"; "5"; "N/A";"wood"; "0"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"163"; "163";"BLOCK_PLATFORM_BIRCH" ;"0.0312";"0.0312";"0.0312"; "5"; "N/A";"wood"; "0"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"164"; "164";"BLOCK_PLATFORM_BLOODROSE" ;"0.0312";"0.0312";"0.0312"; "5"; "N/A";"wood"; "0"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"176"; "176";"BLOCK_TORCH" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"fxtr"; "0"; "0"; "0";"1.0000";"0.6372";"0.0000"; "0"; "1"; "N/A"; "0";"16"
"177"; "177";"BLOCK_TORCH_FROST" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"fxtr"; "0"; "0"; "0";"0.3048";"0.4848";"1.0000"; "0"; "1"; "N/A"; "0";"16"
"192"; "176";"BLOCK_TORCH" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"fxtr"; "0"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"193"; "177";"BLOCK_TORCH_FROST" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"fxtr"; "0"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"208"; "208";"BLOCK_ILLUMINATOR_WHITE" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.8916";"0.9304";"0.9148"; "0"; "0"; "N/A"; "0";"16"
"209"; "209";"BLOCK_ILLUMINATOR_YELLOW" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"glas"; "0"; "1"; "1";"1.0000";"0.8408";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"210"; "210";"BLOCK_ILLUMINATOR_ORANGE" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"glas"; "0"; "1"; "1";"1.0000";"0.6100";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"211"; "211";"BLOCK_ILLUMINATOR_RED" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.9188";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"212"; "212";"BLOCK_ILLUMINATOR_FUCHSIA" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.9188";"0.0000";"0.7156"; "0"; "0"; "N/A"; "0";"16"
"213"; "213";"BLOCK_ILLUMINATOR_PURPLE" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.7156";"0.0000";"0.9188"; "0"; "0"; "N/A"; "0";"16"
"214"; "214";"BLOCK_ILLUMINATOR_BLUE" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.0000";"0.1996";"0.9188"; "0"; "0"; "N/A"; "0";"16"
"215"; "215";"BLOCK_ILLUMINATOR_CYAN" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.0000";"0.8368";"0.9188"; "0"; "0"; "N/A"; "0";"16"
"216"; "216";"BLOCK_ILLUMINATOR_GREEN" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.2112";"1.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"217"; "217";"BLOCK_ILLUMINATOR_GREEN_DARK";"0.0312";"0.0312";"0.0312"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.1252";"0.4068";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"218"; "218";"BLOCK_ILLUMINATOR_BROWN" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.3324";"0.1252";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"219"; "219";"BLOCK_ILLUMINATOR_TAN" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.5864";"0.4068";"0.2032"; "0"; "0"; "N/A"; "0";"16"
"220"; "220";"BLOCK_ILLUMINATOR_GREY_LIGHT";"0.0312";"0.0312";"0.0312"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.7392";"0.7392";"0.7392"; "0"; "0"; "N/A"; "0";"16"
"221"; "221";"BLOCK_ILLUMINATOR_GREY_MED" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.4576";"0.4576";"0.4576"; "0"; "0"; "N/A"; "0";"16"
"222"; "222";"BLOCK_ILLUMINATOR_GREY_DARK" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.2540";"0.2540";"0.2540"; "0"; "0"; "N/A"; "0";"16"
"223"; "223";"BLOCK_ILLUMINATOR_BLACK" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.4340";"0.0000";"0.9972"; "0"; "0"; "N/A"; "0";"16"
"224"; "208";"BLOCK_ILLUMINATOR_WHITE" ;"0.1252";"0.1252";"0.1252"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"225"; "209";"BLOCK_ILLUMINATOR_YELLOW" ;"0.1252";"0.1252";"0.1252"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"226"; "210";"BLOCK_ILLUMINATOR_ORANGE" ;"0.1252";"0.1252";"0.1252"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"227"; "211";"BLOCK_ILLUMINATOR_RED" ;"0.1252";"0.1252";"0.1252"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"228"; "212";"BLOCK_ILLUMINATOR_FUCHSIA" ;"0.1252";"0.1252";"0.1252"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"229"; "213";"BLOCK_ILLUMINATOR_PURPLE" ;"0.1252";"0.1252";"0.1252"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"230"; "214";"BLOCK_ILLUMINATOR_BLUE" ;"0.1252";"0.1252";"0.1252"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"231"; "215";"BLOCK_ILLUMINATOR_CYAN" ;"0.1252";"0.1252";"0.1252"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"232"; "216";"BLOCK_ILLUMINATOR_GREEN" ;"0.1252";"0.1252";"0.1252"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"233"; "217";"BLOCK_ILLUMINATOR_GREEN_DARK";"0.1252";"0.1252";"0.1252"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"234"; "218";"BLOCK_ILLUMINATOR_BROWN" ;"0.1252";"0.1252";"0.1252"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"235"; "219";"BLOCK_ILLUMINATOR_TAN" ;"0.1252";"0.1252";"0.1252"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"236"; "220";"BLOCK_ILLUMINATOR_GREY_LIGHT";"0.1252";"0.1252";"0.1252"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"237"; "221";"BLOCK_ILLUMINATOR_GREY_MED" ;"0.1252";"0.1252";"0.1252"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"238"; "222";"BLOCK_ILLUMINATOR_GREY_DARK" ;"0.1252";"0.1252";"0.1252"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"239"; "223";"BLOCK_ILLUMINATOR_BLACK" ;"0.1252";"0.1252";"0.1252"; "1"; "N/A";"glas"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"240"; "240";"BLOCK_SANDSTONE" ;"0.1252";"0.1252";"0.1252"; "48";"1900";"rock"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"241"; "241";"BLOCK_SANDSTONE_WHITE" ;"0.1252";"0.1252";"0.1252"; "48";"1900";"rock"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"242"; "242";"BLOCK_SANDSTONE_RED" ;"0.1252";"0.1252";"0.1252"; "48";"1900";"rock"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"243"; "243";"BLOCK_SANDSTONE_DESERT" ;"0.1252";"0.1252";"0.1252"; "48";"1900";"rock"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"244"; "244";"BLOCK_SANDSTONE_BLACK" ;"0.1252";"0.1252";"0.1252"; "48";"1900";"rock"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"245"; "245";"BLOCK_SANDSTONE_GREEN" ;"0.1252";"0.1252";"0.1252"; "48";"1900";"rock"; "0"; "1"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"256"; "256";"BLOCK_LANTERN_IRON_REGULAR" ;"0.0312";"0.0312";"0.0312"; "1"; "N/A";"fxtr"; "0"; "0"; "0";"1.0000";"0.6372";"0.0000"; "0"; "0"; "N/A"; "0";"16"
"257"; "257";"BLOCK_SUNSTONE" ;"0.1252";"0.1252";"0.1252"; "1"; "N/A";"rock"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "2"; "N/A"; "0";"16"
"258"; "258";"BLOCK_DAYLIGHT_CAPACITOR" ;"0.1252";"0.1252";"0.1252"; "1"; "N/A";"glas"; "0"; "1"; "0";"0.0000";"0.0000";"0.0000"; "0"; "3"; "N/A"; "0";"16"
"4064"; "0";"BLOCK_LAVA" ;"0.9696";"0.9696";"0.9696"; "100";"2600";"rock"; "1"; "0"; "0";"0.7664";"0.2032";"0.0000"; "0"; "0"; "32"; "0";"16"
"4065"; "0";"BLOCK_LAVA" ;"0.9696";"0.9696";"0.9696"; "100";"2600";"rock"; "1"; "0"; "0";"0.7664";"0.2032";"0.0000"; "0"; "0"; "32"; "0";"16"
"4066"; "0";"BLOCK_LAVA" ;"0.9696";"0.9696";"0.9696"; "100";"2600";"rock"; "1"; "0"; "0";"0.7664";"0.2032";"0.0000"; "0"; "0"; "32"; "0";"16"
"4067"; "0";"BLOCK_LAVA" ;"0.9696";"0.9696";"0.9696"; "100";"2600";"rock"; "1"; "0"; "0";"0.7664";"0.2032";"0.0000"; "0"; "0"; "32"; "0";"16"
"4068"; "0";"BLOCK_LAVA" ;"0.9696";"0.9696";"0.9696"; "100";"2600";"rock"; "1"; "0"; "0";"0.7664";"0.2032";"0.0000"; "0"; "0"; "32"; "0";"16"
"4069"; "0";"BLOCK_LAVA" ;"0.9696";"0.9696";"0.9696"; "100";"2600";"rock"; "1"; "0"; "0";"0.7664";"0.2032";"0.0000"; "0"; "0"; "32"; "0";"16"
"4070"; "0";"BLOCK_LAVA" ;"0.9696";"0.9696";"0.9696"; "100";"2600";"rock"; "1"; "0"; "0";"0.7664";"0.2032";"0.0000"; "0"; "0"; "32"; "0";"16"
"4071"; "0";"BLOCK_LAVA" ;"0.9696";"0.9696";"0.9696"; "100";"2600";"rock"; "1"; "0"; "0";"0.7664";"0.2032";"0.0000"; "0"; "0"; "32"; "0";"16"
"4072"; "0";"BLOCK_LAVA" ;"0.9696";"0.9696";"0.9696"; "100";"2600";"rock"; "1"; "0"; "0";"0.7664";"0.2032";"0.0000"; "0"; "0"; "32"; "0";"16"
"4073"; "0";"BLOCK_LAVA" ;"0.9696";"0.9696";"0.9696"; "100";"2600";"rock"; "1"; "0"; "0";"0.7664";"0.2032";"0.0000"; "0"; "0"; "32"; "0";"16"
"4074"; "0";"BLOCK_LAVA" ;"0.9696";"0.9696";"0.9696"; "100";"2600";"rock"; "1"; "0"; "0";"0.7664";"0.2032";"0.0000"; "0"; "0"; "32"; "0";"16"
"4075"; "0";"BLOCK_LAVA" ;"0.9696";"0.9696";"0.9696"; "100";"2600";"rock"; "1"; "0"; "0";"0.7664";"0.2032";"0.0000"; "0"; "0"; "32"; "0";"16"
"4076"; "0";"BLOCK_LAVA" ;"0.9696";"0.9696";"0.9696"; "100";"2600";"rock"; "1"; "0"; "0";"0.7664";"0.2032";"0.0000"; "0"; "0"; "32"; "0";"16"
"4077"; "0";"BLOCK_LAVA" ;"0.9696";"0.9696";"0.9696"; "100";"2600";"rock"; "1"; "0"; "0";"0.7664";"0.2032";"0.0000"; "0"; "0"; "32"; "0";"16"
"4078"; "0";"BLOCK_LAVA" ;"0.9696";"0.9696";"0.9696"; "100";"2600";"rock"; "1"; "0"; "0";"0.7664";"0.2032";"0.0000"; "0"; "0"; "32"; "0";"16"
"4079"; "0";"BLOCK_LAVA" ;"0.9696";"0.9696";"0.9696"; "100";"2600";"rock"; "1"; "0"; "0";"0.7664";"0.2032";"0.0000"; "0"; "0"; "32"; "0";"16"
"4080"; "0";"BLOCK_WATER" ;"0.1016";"0.0744";"0.0508"; "100";"1000";"watr"; "1"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "16"; "0";"16"
"4081"; "0";"BLOCK_WATER" ;"0.1016";"0.0744";"0.0508"; "100";"1000";"watr"; "1"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "16"; "0";"16"
"4082"; "0";"BLOCK_WATER" ;"0.1016";"0.0744";"0.0508"; "100";"1000";"watr"; "1"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "16"; "0";"16"
"4083"; "0";"BLOCK_WATER" ;"0.1016";"0.0744";"0.0508"; "100";"1000";"watr"; "1"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "16"; "0";"16"
"4084"; "0";"BLOCK_WATER" ;"0.1016";"0.0744";"0.0508"; "100";"1000";"watr"; "1"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "16"; "0";"16"
"4085"; "0";"BLOCK_WATER" ;"0.1016";"0.0744";"0.0508"; "100";"1000";"watr"; "1"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "16"; "0";"16"
"4086"; "0";"BLOCK_WATER" ;"0.1016";"0.0744";"0.0508"; "100";"1000";"watr"; "1"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "16"; "0";"16"
"4087"; "0";"BLOCK_WATER" ;"0.1016";"0.0744";"0.0508"; "100";"1000";"watr"; "1"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "16"; "0";"16"
"4088"; "0";"BLOCK_WATER" ;"0.1016";"0.0744";"0.0508"; "100";"1000";"watr"; "1"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "16"; "0";"16"
"4089"; "0";"BLOCK_WATER" ;"0.1016";"0.0744";"0.0508"; "100";"1000";"watr"; "1"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "16"; "0";"16"
"4090"; "0";"BLOCK_WATER" ;"0.1016";"0.0744";"0.0508"; "100";"1000";"watr"; "1"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "16"; "0";"16"
"4091"; "0";"BLOCK_WATER" ;"0.1016";"0.0744";"0.0508"; "100";"1000";"watr"; "1"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "16"; "0";"16"
"4092"; "0";"BLOCK_WATER" ;"0.1016";"0.0744";"0.0508"; "100";"1000";"watr"; "1"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "16"; "0";"16"
"4093"; "0";"BLOCK_WATER" ;"0.1016";"0.0744";"0.0508"; "100";"1000";"watr"; "1"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "16"; "0";"16"
"4094"; "0";"BLOCK_WATER" ;"0.1016";"0.0744";"0.0508"; "100";"1000";"watr"; "1"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "16"; "0";"16"
"4095"; "0";"BLOCK_WATER" ;"0.1016";"0.0744";"0.0508"; "100";"1000";"watr"; "1"; "0"; "0";"0.0000";"0.0000";"0.0000"; "0"; "0"; "16"; "0";"16"
"-1"; "0";"BLOCK_NULL" ;"4.0000";"4.0000";"4.0000"; "-1";"2600";"null"; "0"; "0"; "1";"0.0000";"0.0000";"0.0000"; "0"; "0"; "N/A"; "0";"16"
## Notes ##
# blid: Block ID
# drid: Drop ID
# id: Block ID
# drop: Drop ID
# shdr/g/b, lumr/g/b: Shade RGB/ Lum RGB.
# valid range: float of 0..4; 1.0 for 255
# Friction: 0: frictionless, <16: slippery, 16: regular, >16: sticky
# Opacity/Lumcolor: 30-bit RGB. Only the light diffusers have a opacity value of ZERO.
# Solid: whether the tile has full collision
# vscs: viscosity, (velocity) / (1 + (n/16)), 16 halves movement speed, can be used to non-fluid tiles (sticky hazard, tarmac road in Terraria)
Can't render this file because it contains an unexpected character in line 1 and column 20.

View File

@@ -398,7 +398,7 @@ class Ingame(val batch: SpriteBatch) : Screen {
WeatherMixer.update(delta)
BlockStats.update()
if (!(CommandDict["setgl"] as SetGlobalLightOverride).lightOverride)
world.globalLight = WeatherMixer.globalLightNow.toRGB10()
world.globalLight = WeatherMixer.globalLightNow
///////////////////////////

View File

@@ -72,6 +72,10 @@ open class KVHashMap {
return value as Double
}
fun getAsFloat(key: String): Float? {
return getAsDouble(key)?.toFloat()
}
fun getAsString(key: String): String? {
val value = get(key)

View File

@@ -20,7 +20,6 @@ import net.torvald.terrarum.imagefont.TinyAlphNum
import net.torvald.terrarum.itemproperties.ItemCodex
import net.torvald.terrarum.utils.JsonFetcher
import net.torvald.terrarum.utils.JsonWriter
import net.torvald.terrarum.worlddrawer.RGB10
import net.torvald.terrarumsansbitmap.gdx.GameFontBase
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
import org.lwjgl.input.Controllers
@@ -562,12 +561,12 @@ infix fun Color.mul(other: Color): Color = this.cpy().mul(other)
inline fun Color.toRGB10(): RGB10 {
/*inline fun Color.toRGB10(): RGB10 {
val bits = this.toIntBits() // ABGR
// 0bxxRRRRRRRRRRGGGGGGGGGGBBBBBBBBBB
// 0bAAAAAAAABBBBBBBBGGGGGGGGRRRRRRRR
return bits.and(0x0000FF).shl(20) or bits.and(0x00FF00).shl(2) or bits.and(0xFF0000).ushr(16)
}
}*/

View File

@@ -3,6 +3,7 @@ package net.torvald.terrarum.blockproperties
import net.torvald.terrarum.utils.CSVFetcher
import net.torvald.terrarum.gameworld.MapLayer
import net.torvald.terrarum.gameworld.PairedMapLayer
import net.torvald.terrarum.worlddrawer.LightmapRenderer
import org.apache.commons.csv.CSVRecord
import java.io.IOException
@@ -29,11 +30,11 @@ object BlockCodex {
println("[BlockCodex] Building block properties table")
records.forEach {
if (intVal(it, "blid") == -1) {
if (intVal(it, "id") == -1) {
setProp(nullProp, it)
}
else {
setProp(blockProps[intVal(it, "blid")], it)
setProp(blockProps[intVal(it, "id")], it)
}
}
}
@@ -84,13 +85,20 @@ object BlockCodex {
private fun setProp(prop: BlockProp, record: CSVRecord) {
prop.nameKey = record.get("name")
prop.id = intVal(record, "blid")
prop.drop = intVal(record, "drid")
prop.id = intVal(record, "id")
prop.drop = intVal(record, "drop")
prop.shadeColR = floatVal(record, "shdr") / LightmapRenderer.MUL_FLOAT
prop.shadeColG = floatVal(record, "shdg") / LightmapRenderer.MUL_FLOAT
prop.shadeColB = floatVal(record, "shdb") / LightmapRenderer.MUL_FLOAT
prop.opacity = intVal(record, "opacity")
prop.strength = intVal(record, "strength")
prop.density = intVal(record, "dsty")
prop.luminosity = intVal(record, "lumcolor")
prop.lumColR = floatVal(record, "lumr") / LightmapRenderer.MUL_FLOAT
prop.lumColG = floatVal(record, "lumg") / LightmapRenderer.MUL_FLOAT
prop.lumColB = floatVal(record, "lumb") / LightmapRenderer.MUL_FLOAT
prop.friction = intVal(record, "friction")
prop.viscosity = intVal(record, "vscs")
@@ -102,22 +110,31 @@ object BlockCodex {
prop.dynamicLuminosityFunction = intVal(record, "dlfn")
print("${intVal(record, "blid")}")
print("${intVal(record, "id")}")
println("\t" + prop.nameKey)
}
private fun intVal(rec: CSVRecord, s: String): Int {
var ret = -1
try {
ret = Integer.decode(rec.get(s))!!
ret = rec.get(s).toInt()
}
catch (e: NullPointerException) {
catch (e: NumberFormatException) {
}
return ret
}
private fun floatVal(rec: CSVRecord, s: String): Float {
var ret = -1f
try {
ret = rec.get(s).toFloat()
}
catch (e: NumberFormatException) {
}
return ret
}
private fun boolVal(rec: CSVRecord, s: String) = intVal(rec, s) != 0
private fun formatNum2(i: Int) = if (i < 10) "0" + i else i.toString()
}

View File

@@ -1,5 +1,7 @@
package net.torvald.terrarum.blockproperties
import com.badlogic.gdx.graphics.Color
/**
* Created by minjaesong on 16-02-16.
*/
@@ -9,10 +11,16 @@ class BlockProp {
var nameKey: String = ""
var shadeColR = 0f
var shadeColG = 0f
var shadeColB = 0f
/**
* @param opacity Raw RGB value, without alpha
*/
var opacity: Int = 0 // colour attenuation
inline val opacity: Color
get() = Color(shadeColR, shadeColG, shadeColB, 1f)
var strength: Int = 0
var density: Int = 0
@@ -23,14 +31,16 @@ class BlockProp {
var isWallable: Boolean = false
var isVertFriction: Boolean = false
var lumColR = 0f
var lumColG = 0f
var lumColB = 0f
/**
* @param luminosity Raw RGB value, without alpha
*/
var luminosity: Int = 0
set(value) {
field = value
}
get() = BlockPropUtil.getDynamicLumFunc(field, dynamicLuminosityFunction)
inline val luminosity: Color
get() = BlockPropUtil.getDynamicLumFunc(Color(lumColR, lumColG, lumColB, 1f), dynamicLuminosityFunction)
var drop: Int = 0

View File

@@ -1,15 +1,14 @@
package net.torvald.terrarum.blockproperties
import com.badlogic.gdx.Gdx
import com.badlogic.gdx.graphics.Color
import com.jme3.math.FastMath
import net.torvald.random.HQRNG
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.Second
import net.torvald.terrarum.gameworld.WorldTime
import net.torvald.terrarum.worlddrawer.LightmapRenderer
import net.torvald.terrarum.toRGB10
import net.torvald.terrarum.weather.WeatherMixer
import net.torvald.terrarum.worlddrawer.RGB10
/**
* Created by minjaesong on 16-06-16.
@@ -38,21 +37,21 @@ object BlockPropUtil {
}
private fun getTorchFlicker(baseLum: Int): RGB10 {
val funcY = FastMath.interpolateCatmullRom(0.0f, flickerFuncX.toFloat() / flickerFuncDomain,
private fun getTorchFlicker(baseLum: Color): Color {
val funcY = FastMath.interpolateCatmullRom(0.0f, flickerFuncX / flickerFuncDomain,
flickerP0, flickerP1, flickerP2, flickerP3
)
return LightmapRenderer.alterBrightnessUniform(baseLum, funcY)
}
private fun getSlowBreath(baseLum: Int): RGB10 {
private fun getSlowBreath(baseLum: Color): Color {
val funcY = FastMath.sin(FastMath.PI * breathFuncX / breathCycleDuration) * breathRange
return LightmapRenderer.alterBrightnessUniform(baseLum, funcY)
}
private fun getPulsate(baseLum: Int): RGB10 {
private fun getPulsate(baseLum: Color): Color {
val funcY = FastMath.sin(FastMath.PI * pulsateFuncX / pulsateCycleDuration) * pulsateRange
return LightmapRenderer.alterBrightnessUniform(baseLum, funcY)
@@ -92,11 +91,11 @@ object BlockPropUtil {
private fun linearInterpolation1D(a: Float, b: Float, x: Float) = a * (1 - x) + b * x
fun getDynamicLumFunc(baseLum: Int, type: Int): Int {
fun getDynamicLumFunc(baseLum: Color, type: Int): Color {
return when (type) {
1 -> getTorchFlicker(baseLum)
2 -> Terrarum.ingame!!.world.globalLight // current global light
3 -> WeatherMixer.getGlobalLightOfTime(WorldTime.DAY_LENGTH / 2).toRGB10() // daylight at noon
3 -> WeatherMixer.getGlobalLightOfTime(WorldTime.DAY_LENGTH / 2) // daylight at noon
4 -> getSlowBreath(baseLum)
5 -> getPulsate(baseLum)
else -> baseLum

View File

@@ -1,5 +1,6 @@
package net.torvald.terrarum.console
import com.badlogic.gdx.graphics.Color
import net.torvald.terrarum.worlddrawer.LightmapRenderer
import net.torvald.terrarum.Terrarum
@@ -14,10 +15,10 @@ internal object SetGlobalLightOverride : ConsoleCommand {
override fun execute(args: Array<String>) {
if (args.size == 4) {
try {
val r = args[1].toInt()
val g = args[2].toInt()
val b = args[3].toInt()
val GL = LightmapRenderer.constructRGBFromInt(r, g, b)
val r = args[1].toFloat()
val g = args[2].toFloat()
val b = args[3].toFloat()
val GL = Color(r, g, b, 1f)
lightOverride = true
Terrarum.ingame!!.world.globalLight = GL
@@ -29,25 +30,6 @@ internal object SetGlobalLightOverride : ConsoleCommand {
Echo("Range: 0-" + LightmapRenderer.CHANNEL_MAX + " per channel")
}
}
else if (args.size == 2) {
try {
val GL = args[1].toInt()
if (GL.toInt() < 0 || GL.toInt() >= LightmapRenderer.COLOUR_RANGE_SIZE) {
Echo("Range: 0-" + (LightmapRenderer.COLOUR_RANGE_SIZE - 1))
}
else {
Terrarum.ingame!!.world.globalLight = GL
}
}
catch (e: NumberFormatException) {
if (args[1].toLowerCase() == "none")
lightOverride = false
else
Echo("Wrong number input.")
}
}
else {
printUsage()

View File

@@ -39,7 +39,9 @@ object AVKey {
* 0000 0010000000 0010000000 0010000000
* ^ Red ^ Green ^ Blue
*/
const val LUMINOSITY = "luminosity"
const val LUMR = "luminosityred"
const val LUMG = "luminositygreen"
const val LUMB = "luminosityblue"
const val DRAGCOEFF = "dragcoeff"
const val FALLDAMPENMULT = "falldampenmult"

View File

@@ -1,6 +1,7 @@
package net.torvald.terrarum.gameactors
import com.badlogic.gdx.Gdx
import com.badlogic.gdx.graphics.Color
import com.jme3.math.FastMath
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.faction.Faction
@@ -8,6 +9,7 @@ import net.torvald.terrarum.itemproperties.GameItem
import net.torvald.terrarum.itemproperties.Material
import net.torvald.terrarum.realestate.LandUtil
import net.torvald.terrarum.ui.UIInventory
import net.torvald.terrarum.worlddrawer.LightmapRenderer
import java.util.*
/**
@@ -47,19 +49,17 @@ open class ActorHumanoid(birth: GameDate, death: GameDate? = null)
if (houseDesignation != null) houseDesignation!!.clear()
}
/**
* Recommended implementation:
*
override var luminosity: Int
get() = actorValue.getAsInt(AVKey.LUMINOSITY) ?: 0
set(value) {
actorValue[AVKey.LUMINOSITY] = value
}
*/
override var luminosity: Int
get() = actorValue.getAsInt(AVKey.LUMINOSITY) ?: 0
override var luminosity: Color
get() = Color(
(actorValue.getAsFloat(AVKey.LUMR) ?: 0f) / LightmapRenderer.MUL_FLOAT,
(actorValue.getAsFloat(AVKey.LUMG) ?: 0f) / LightmapRenderer.MUL_FLOAT,
(actorValue.getAsFloat(AVKey.LUMB) ?: 0f) / LightmapRenderer.MUL_FLOAT,
1f
)
set(value) {
actorValue[AVKey.LUMINOSITY] = value
actorValue[AVKey.LUMR] = value.r * LightmapRenderer.MUL_FLOAT
actorValue[AVKey.LUMG] = value.g * LightmapRenderer.MUL_FLOAT
actorValue[AVKey.LUMB] = value.b * LightmapRenderer.MUL_FLOAT
}
/**

View File

@@ -31,7 +31,8 @@ typealias Second = Float
*
* Created by minjaesong on 16-01-13.
*/
open class ActorWithPhysics(renderOrder: RenderOrder, val immobileBody: Boolean = false, physics: Boolean = true) : ActorWithBody(renderOrder) {
open class ActorWithPhysics(renderOrder: RenderOrder, val immobileBody: Boolean = false, physics: Boolean = true) :
ActorWithBody(renderOrder) {
val COLLISION_TEST_MODE = false

View File

@@ -1,5 +1,6 @@
package net.torvald.terrarum.gameactors
import com.badlogic.gdx.graphics.Color
import net.torvald.terrarum.ModMgr
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.blockproperties.BlockCodex
@@ -11,11 +12,12 @@ import java.util.*
*/
internal class FixtureTikiTorch : FixtureBase(), Luminous {
override var luminosity: Int
override var luminosity: Color
get() = BlockCodex[Block.TORCH].luminosity
set(value) {
throw UnsupportedOperationException()
}
override val lightBoxList: ArrayList<Hitbox>
init {

View File

@@ -1,5 +1,7 @@
package net.torvald.terrarum.gameactors
import com.badlogic.gdx.graphics.Color
/**
* Created by minjaesong on 16-02-19.
*/
@@ -8,13 +10,20 @@ interface Luminous {
/**
* Recommended implementation:
*
override var luminosity: Int
get() = actorValue.getAsInt(AVKey.LUMINOSITY) ?: 0
override var luminosity: Color
get() = Color(
(actorValue.getAsFloat(AVKey.LUMR) ?: 0f) / LightmapRenderer.MUL_FLOAT,
(actorValue.getAsFloat(AVKey.LUMG) ?: 0f) / LightmapRenderer.MUL_FLOAT,
(actorValue.getAsFloat(AVKey.LUMB) ?: 0f) / LightmapRenderer.MUL_FLOAT,
1f
)
set(value) {
actorValue[AVKey.LUMINOSITY] = value
actorValue[AVKey.LUMR] = value.r * LightmapRenderer.MUL_FLOAT
actorValue[AVKey.LUMG] = value.g * LightmapRenderer.MUL_FLOAT
actorValue[AVKey.LUMB] = value.b * LightmapRenderer.MUL_FLOAT
}
*/
var luminosity: Int
var luminosity: Color
/**
* Arguments:

View File

@@ -49,8 +49,9 @@ object PlayerBuilderSigrid {
p.actorValue[AVKey.INTELLIGENT] = true
//p.actorValue[AVKey.LUMINOSITY] = Color(0x434aff).to10bit()
//p.actorValue[AVKey.LUMINOSITY] = 214127943 // bright purple
//p.actorValue[AVKey.LUMR] = 0.84f
//p.actorValue[AVKey.LUMR] = 0.93f
//p.actorValue[AVKey.LUMR] = 1.37f
p.actorValue[AVKey.BASEDEFENCE] = 141

View File

@@ -28,8 +28,8 @@ open class ProjectileSimple(
val speed: Int
override var luminosity: Int
get() = bulletDatabase[type][OFFSET_LUMINOSITY] as Int
override var luminosity: Color
get() = (bulletDatabase[type][OFFSET_LUMINOSITY] as Color).cpy()
set(value) {
}
/**
@@ -115,8 +115,8 @@ open class ProjectileSimple(
val OFFSET_LUMINOSITY = 4
val bulletDatabase = arrayOf(
// damage, display colour, no gravity, speed
arrayOf(7, Color(0xFF5429), true, 40, 32),
arrayOf(8, Color(0xFF5429), true, 20, 0)
arrayOf(7, Color(0xFF5429_FF.toInt()), true, 40, 32),
arrayOf(8, Color(0xFF5429_FF.toInt()), true, 20, 0)
// ...
)
}

View File

@@ -1,5 +1,7 @@
package net.torvald.terrarum.gameactors
import com.badlogic.gdx.graphics.Color
/**
* Created by minjaesong on 16-04-26.
*/
@@ -15,7 +17,7 @@ class WeaponSwung(val itemID: Int) : ActorWithPhysics(Actor.RenderOrder.MIDTOP),
actorValue[AVKey.LUMINOSITY] = value
}
*/
override var luminosity: Int
override var luminosity: Color
get() = throw UnsupportedOperationException()
set(value) {
}

View File

@@ -73,14 +73,6 @@ internal class AILuaAPI(g: Globals, actor: ActorWithPhysics) {
t["strength"] = actor.avStrength.toLua()
val lumrgb: Int = actor.actorValue.getAsInt(AVKey.LUMINOSITY) ?: 0
val MUL_2 = LightmapRenderer.MUL_2
val MUL = LightmapRenderer.MUL
val CHMAX = LightmapRenderer.CHANNEL_MAX
t["luminosityRGB"] = lumrgb.toLua()
t["luminosity"] = (lumrgb.div(MUL_2).and(CHMAX).times(3) +
lumrgb.div(MUL).and(CHMAX).times(4) +
lumrgb.and(1023)).div(8.0).toLua() // quick luminosity calculation
return t
}

View File

@@ -1,9 +1,9 @@
package net.torvald.terrarum.gameworld
import com.badlogic.gdx.graphics.Color
import net.torvald.terrarum.realestate.LandUtil
import net.torvald.terrarum.blockproperties.BlockCodex
import net.torvald.terrarum.worlddrawer.RGB10
import org.dyn4j.geometry.Vector2
typealias BlockAddress = Long
@@ -32,8 +32,8 @@ class GameWorld(val width: Int, val height: Int) {
//physics
/** Meter per second squared. Currently only the downward gravity is supported. No reverse gravity :p */
var gravitation: Vector2 = Vector2(0.0, 9.8)
/** RGB in Integer */
var globalLight: RGB10 = 0
/** 0.0..1.0+ */
var globalLight = Color(0f,0f,0f,1f)

View File

@@ -107,7 +107,7 @@ class BasicDebugInfoWindow : UICanvas {
val lightVal: String
val mtX = mouseTileX.toString()
val mtY = mouseTileY.toString()
val valRaw = LightmapRenderer.getValueFromMap(mouseTileX, mouseTileY)
val valRaw = LightmapRenderer.getLight(mouseTileX, mouseTileY)
val rawR = valRaw?.r?.times(100f)?.round()?.div(100f)
val rawG = valRaw?.g?.times(100f)?.round()?.div(100f)
val rawB = valRaw?.b?.times(100f)?.round()?.div(100f)

View File

@@ -9,7 +9,6 @@ import net.torvald.terrarum.gameactors.Second
import net.torvald.terrarum.gameactors.abs
import net.torvald.terrarum.imagefont.Watch7SegSmall
import net.torvald.terrarum.worlddrawer.LightmapRenderer
import net.torvald.terrarum.worlddrawer.toColor
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
/**
@@ -94,11 +93,11 @@ class UIBasicNotifier(private val player: ActorHumanoid?) : UICanvas {
if (player != null) {
val playerPos = player.tilewiseHitbox
lightLevel = (LightmapRenderer.getLight(playerPos.centeredX.toInt(), playerPos.centeredY.toInt()) ?:
Terrarum.ingame!!.world.globalLight.toColor()
Terrarum.ingame!!.world.globalLight
)
}
else {
lightLevel = Terrarum.ingame!!.world.globalLight.toColor()
lightLevel = Terrarum.ingame!!.world.globalLight
}

View File

@@ -12,7 +12,6 @@ import net.torvald.terrarum.imagefont.Watch7SegMain
import net.torvald.terrarum.imagefont.Watch7SegSmall
import net.torvald.terrarum.imagefont.WatchDotAlph
import net.torvald.terrarum.worlddrawer.LightmapRenderer
import net.torvald.terrarum.worlddrawer.toColor
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
/**
@@ -69,11 +68,11 @@ class UITierOneWatch(private val player: ActorHumanoid?) : UICanvas {
if (player != null) {
val playerPos = player.tilewiseHitbox
lightLevel = (LightmapRenderer.getLight(playerPos.centeredX.toInt(), playerPos.centeredY.toInt()) ?:
Terrarum.ingame!!.world.globalLight.toColor()
Terrarum.ingame!!.world.globalLight
)
}
else {
lightLevel = Terrarum.ingame!!.world.globalLight.toColor()
lightLevel = Terrarum.ingame!!.world.globalLight
}
// backplate

View File

@@ -11,6 +11,7 @@ import net.torvald.terrarum.*
import net.torvald.terrarum.gameactors.ParticleTestRain
import net.torvald.terrarum.gamecontroller.KeyToggler
import net.torvald.terrarum.gameworld.WorldTime
import net.torvald.terrarum.worlddrawer.LightmapRenderer
import java.io.File
import java.util.*

View File

@@ -10,10 +10,6 @@ import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.fillRect
import net.torvald.terrarum.gameactors.*
import net.torvald.terrarum.toRGB10
import net.torvald.terrarum.worlddrawer.LightmapRenderer.b
import net.torvald.terrarum.worlddrawer.LightmapRenderer.g
import net.torvald.terrarum.worlddrawer.LightmapRenderer.r
import java.util.*
/**
@@ -22,7 +18,7 @@ import java.util.*
* Created by minjaesong on 16-01-25.
*/
typealias RGB10 = Int
//typealias RGB10 = Int
object LightmapRenderer {
private val world: GameWorld = Terrarum.ingame!!.world
@@ -30,8 +26,8 @@ object LightmapRenderer {
// TODO if (VBO works on BlocksDrawer) THEN overscan of 256, utilise same technique in here
val overscan_open: Int = Math.min(32, 256f.div(BlockCodex[Block.AIR].opacity and 0xFF).ceil())
val overscan_opaque: Int = Math.min(8, 256f.div(BlockCodex[Block.STONE].opacity and 0xFF).ceil())
val overscan_open: Int = 32
val overscan_opaque: Int = 8
init {
println("[LightmapRenderer] Overscan open: $overscan_open; opaque: $overscan_opaque")
@@ -45,7 +41,7 @@ object LightmapRenderer {
.div(FeaturesDrawer.TILE_SIZE).ceil() + overscan_open * 2 + 3
/**
* 8-Bit RGB values
* Float value, 1.0 for 1023
*/
private val lightmap: Array<Array<Color>> = Array(LIGHTMAP_HEIGHT) { Array(LIGHTMAP_WIDTH, { Color(0f,0f,0f,1f) }) } // TODO framebuffer?
private val lanternMap = ArrayList<Lantern>(Terrarum.ingame!!.ACTORCONTAINER_INITIAL_SIZE * 4)
@@ -63,6 +59,7 @@ object LightmapRenderer {
const val CHANNEL_MAX_FLOAT = CHANNEL_MAX.toFloat()
const val COLOUR_RANGE_SIZE = MUL * MUL_2
const val MUL_FLOAT = MUL / 256f
const val DIV_FLOAT = 256f / MUL
internal var for_x_start: Int = 0
internal var for_y_start: Int = 0
@@ -72,7 +69,21 @@ object LightmapRenderer {
//inline fun getLightRawPos(x: Int, y: Int) = lightmap[y][x]
/**
* Conventional level (multiplied by four)
*/
fun getLight(x: Int, y: Int): Color? {
val col = getLightInternal(x, y)
if (col == null) {
return null
}
else {
return Color(col.r * MUL_FLOAT, col.g * MUL_FLOAT, col.b * MUL_FLOAT, 1f)
}
}
private fun getLightInternal(x: Int, y: Int): Color? {
if (y - for_y_start + overscan_open in 0..lightmap.lastIndex &&
x - for_x_start + overscan_open in 0..lightmap[0].lastIndex) {
@@ -82,7 +93,7 @@ object LightmapRenderer {
return null
}
fun setLight(x: Int, y: Int, colour: Color) {
private fun setLight(x: Int, y: Int, colour: Color) {
if (y - for_y_start + overscan_open in 0..lightmap.lastIndex &&
x - for_x_start + overscan_open in 0..lightmap[0].lastIndex) {
@@ -254,9 +265,9 @@ object LightmapRenderer {
var lightLevelThis: Color = Color(0f,0f,0f,1f)
val thisTerrain = Terrarum.ingame!!.world.getTileFromTerrain(x, y)
val thisWall = Terrarum.ingame!!.world.getTileFromWall(x, y)
val thisTileLuminosity = BlockCodex[thisTerrain].luminosity.toColor()
val thisTileOpacity = BlockCodex[thisTerrain].opacity.toColor()
val sunLight = Terrarum.ingame!!.world.globalLight.toColor()
val thisTileLuminosity = BlockCodex[thisTerrain].luminosity // already been div by four
val thisTileOpacity = BlockCodex[thisTerrain].opacity // already been div by four
val sunLight = Terrarum.ingame!!.world.globalLight.cpy().mul(DIV_FLOAT, DIV_FLOAT, DIV_FLOAT, 1f)
// MIX TILE
// open air
@@ -276,7 +287,7 @@ object LightmapRenderer {
for (i in 0..lanternMap.size - 1) {
val lmap = lanternMap[i]
if (lmap.posX == x && lmap.posY == y)
lightLevelThis = lightLevelThis maxBlend lmap.luminosity.toColor() // maximise to not exceed 1.0 with normal (<= 1.0) light
lightLevelThis = lightLevelThis maxBlend lmap.luminosity // maximise to not exceed 1.0 with normal (<= 1.0) light
}
@@ -288,15 +299,15 @@ object LightmapRenderer {
* sample ambient for eight points and apply attenuation for those
* maxblend eight values and use it
*/
/* + */ambientAccumulator = ambientAccumulator maxBlend darkenColoured(getLight(x - 1, y - 1) ?: Color(0f,0f,0f,1f), scaleSqrt2(thisTileOpacity))
/* + */ambientAccumulator = ambientAccumulator maxBlend darkenColoured(getLight(x + 1, y - 1) ?: Color(0f,0f,0f,1f), scaleSqrt2(thisTileOpacity))
/* + */ambientAccumulator = ambientAccumulator maxBlend darkenColoured(getLight(x - 1, y + 1) ?: Color(0f,0f,0f,1f), scaleSqrt2(thisTileOpacity))
/* + */ambientAccumulator = ambientAccumulator maxBlend darkenColoured(getLight(x + 1, y + 1) ?: Color(0f,0f,0f,1f), scaleSqrt2(thisTileOpacity))
/* + */ambientAccumulator = ambientAccumulator maxBlend darkenColoured(getLightInternal(x - 1, y - 1) ?: Color(0f,0f,0f,1f), scaleSqrt2(thisTileOpacity))
/* + */ambientAccumulator = ambientAccumulator maxBlend darkenColoured(getLightInternal(x + 1, y - 1) ?: Color(0f,0f,0f,1f), scaleSqrt2(thisTileOpacity))
/* + */ambientAccumulator = ambientAccumulator maxBlend darkenColoured(getLightInternal(x - 1, y + 1) ?: Color(0f,0f,0f,1f), scaleSqrt2(thisTileOpacity))
/* + */ambientAccumulator = ambientAccumulator maxBlend darkenColoured(getLightInternal(x + 1, y + 1) ?: Color(0f,0f,0f,1f), scaleSqrt2(thisTileOpacity))
/* * */ambientAccumulator = ambientAccumulator maxBlend darkenColoured(getLight(x , y - 1) ?: Color(0f,0f,0f,1f), thisTileOpacity)
/* * */ambientAccumulator = ambientAccumulator maxBlend darkenColoured(getLight(x , y + 1) ?: Color(0f,0f,0f,1f), thisTileOpacity)
/* * */ambientAccumulator = ambientAccumulator maxBlend darkenColoured(getLight(x - 1, y ) ?: Color(0f,0f,0f,1f), thisTileOpacity)
/* * */ambientAccumulator = ambientAccumulator maxBlend darkenColoured(getLight(x + 1, y ) ?: Color(0f,0f,0f,1f), thisTileOpacity)
/* * */ambientAccumulator = ambientAccumulator maxBlend darkenColoured(getLightInternal(x , y - 1) ?: Color(0f,0f,0f,1f), thisTileOpacity)
/* * */ambientAccumulator = ambientAccumulator maxBlend darkenColoured(getLightInternal(x , y + 1) ?: Color(0f,0f,0f,1f), thisTileOpacity)
/* * */ambientAccumulator = ambientAccumulator maxBlend darkenColoured(getLightInternal(x - 1, y ) ?: Color(0f,0f,0f,1f), thisTileOpacity)
/* * */ambientAccumulator = ambientAccumulator maxBlend darkenColoured(getLightInternal(x + 1, y ) ?: Color(0f,0f,0f,1f), thisTileOpacity)
return lightLevelThis maxBlend ambientAccumulator
}
@@ -306,7 +317,7 @@ object LightmapRenderer {
}
private fun getLightForOpaque(x: Int, y: Int): Color? { // ...so that they wouldn't appear too dark
val l = getLight(x, y)
val l = getLightInternal(x, y)
if (l == null) return null
if (BlockCodex[world.getTileFromTerrain(x, y)].isSolid) {
@@ -396,12 +407,6 @@ object LightmapRenderer {
1f)
}
fun scaleColour(data: Int, scale: Float): RGB10 {
return ((data.r() * scale).clampOne() * CHANNEL_MAX).round().shl(20) or
((data.g() * scale).clampOne() * CHANNEL_MAX).round().shl(10) or
((data.b() * scale).clampOne() * CHANNEL_MAX).round()
}
private fun scaleSqrt2(data: Color): Color {
return Color(
data.r * 1.41421356f,
@@ -410,8 +415,6 @@ object LightmapRenderer {
1f)
}
private val scaleSqrt2Lookup = IntArray(MUL, { it -> minOf(MUL - 1, (it * 1.41421356).roundInt()) })
/**
* Add each channel's RGB value.
*
@@ -450,13 +453,13 @@ object LightmapRenderer {
* @param brighten (-1.0 - 1.0) negative means darkening
* @return processed colour
*/
fun alterBrightnessUniform(data: RGB10, brighten: Float): RGB10 {
fun alterBrightnessUniform(data: Color, brighten: Float): Color {
return Color(
data.r() + brighten,
data.g() + brighten,
data.b() + brighten,
data.r + brighten,
data.g + brighten,
data.b + brighten,
1f
).toRGB10()
)
}
/** Get each channel from two RGB values, return new RGB that has max value of each channel
@@ -473,17 +476,17 @@ object LightmapRenderer {
}
inline fun RGB10.rawR() = this.ushr(20) and 1023
/*inline fun RGB10.rawR() = this.ushr(20) and 1023
inline fun RGB10.rawG() = this.ushr(10) and 1023
inline fun RGB10.rawB() = this and 1023
/** 0.0 - 1.0 for 0-1023 (0.0 - 0.25 for 0-255) */
inline fun RGB10.r(): Float = this.rawR() / CHANNEL_MAX_FLOAT
inline fun RGB10.g(): Float = this.rawG() / CHANNEL_MAX_FLOAT
inline fun RGB10.b(): Float = this.rawB() / CHANNEL_MAX_FLOAT
inline fun RGB10.b(): Float = this.rawB() / CHANNEL_MAX_FLOAT*/
inline fun constructRGBFromInt(r: Int, g: Int, b: Int): RGB10 {
/*inline fun constructRGBFromInt(r: Int, g: Int, b: Int): RGB10 {
//if (r !in 0..CHANNEL_MAX) throw IllegalArgumentException("Red: out of range ($r)")
//if (g !in 0..CHANNEL_MAX) throw IllegalArgumentException("Green: out of range ($g)")
//if (b !in 0..CHANNEL_MAX) throw IllegalArgumentException("Blue: out of range ($b)")
@@ -491,7 +494,7 @@ object LightmapRenderer {
return r.shl(20) or
g.shl(10) or
b
}
}*/
/*inline fun constructRGBFromFloat(r: Float, g: Float, b: Float): RGB10 {
//if (r < 0 || r > CHANNEL_MAX_DECIMAL) throw IllegalArgumentException("Red: out of range ($r)")
@@ -509,9 +512,8 @@ object LightmapRenderer {
fun Float.clampOne() = if (this < 0) 0f else if (this > 1) 1f else this
fun Float.clampChannel() = if (this > CHANNEL_MAX_DECIMAL) CHANNEL_MAX_DECIMAL else this
inline fun getValueFromMap(x: Int, y: Int): Color? = getLight(x, y)
fun getHighestRGB(x: Int, y: Int): Float? {
val value = getLight(x, y)
val value = getLightInternal(x, y)
if (value == null)
return null
else
@@ -636,7 +638,7 @@ object LightmapRenderer {
1f
)
data class Lantern(val posX: Int, val posY: Int, val luminosity: Int)
data class Lantern(val posX: Int, val posY: Int, val luminosity: Color)
private fun Color.nonZero() = this.r != 0f || this.g != 0f || this.b != 0f
@@ -650,9 +652,9 @@ object LightmapRenderer {
// excluiding overscans; only reckon echo lights
for (y in overscan_open..render_height + overscan_open + 1) {
for (x in overscan_open..render_width + overscan_open + 1) {
reds[lightmap[y][x].r.times(MUL).floorInt()] += 1
greens[lightmap[y][x].g.times(MUL).floorInt()] += 1
blues[lightmap[y][x].b.times(MUL).floorInt()] += 1
reds [minOf(CHANNEL_MAX, lightmap[y][x].r.times(MUL).floorInt())] += 1
greens[minOf(CHANNEL_MAX, lightmap[y][x].g.times(MUL).floorInt())] += 1
blues [minOf(CHANNEL_MAX, lightmap[y][x].b.times(MUL).floorInt())] += 1
}
}
return Histogram(reds, greens, blues)
@@ -714,8 +716,3 @@ object LightmapRenderer {
return (1f - scale) * startValue + scale * endValue
}
}
fun RGB10.toColor(): Color {
return Color(this.r(), this.g(), this.b(), 1f)
}