Tile -> Block && Map -> World

This commit is contained in:
Song Minjae
2017-04-27 01:57:45 +09:00
parent 49d3c9f55b
commit b4b2c0d85b
80 changed files with 1075 additions and 1645 deletions

View File

@@ -0,0 +1,100 @@
{
"BLOCK_STONE": "Stone",
"BLOCK_STONE_PLURAL": "Stones",
"BLOCK_DIRT": "Dirt",
"BLOCK_DIRT_PLURAL": "Dirts",
"BLOCK_GRASS": "Grass",
"BLOCK_GRAS_PLURALS": "Grasses",
"BLOCK_PLANK_NORMAL": "Wooden planks",
"BLOCK_PLANK_NORMAL_PLURAL": "Wooden planks",
"BLOCK_PLANK_EBONY": "Ebony planks",
"BLOCK_PLANK_EBONY_PLURAL": "Ebony planks",
"BLOCK_PLANK_BIRCH": "Birch planks",
"BLOCK_PLANK_BIRCH_PLURAL": "Birch planks",
"BLOCK_PLANK_BLOODROSE": "Rosewood planks",
"BLOCK_PLANK_BLOODROSE_PLURAL": "Rosewood planks",
"BLOCK_TRUNK_NORMAL": "Oak log",
"BLOCK_TRUNK_NORMAL_PLURAL": "Oak logs",
"BLOCK_TRUNK_EBONY": "Ebony log",
"BLOCK_TRUNK_EBONY_PLURAL": "Ebony logs",
"BLOCK_TRUNK_BIRCH": "Birch log",
"BLOCK_TRUNK_BIRCH_PLURAL": "Birch logs",
"BLOCK_TRUNK_BLOODROSE": "Rosewood log",
"BLOCK_TRUNK_BLOODROSE_PLURAL": "Rosewood logs",
"BLOCK_STONE_QUARRIED": "Quarried stone",
"BLOCK_STONE_QUARRIED_PLURAL": "Quarried stones",
"BLOCK_SAND": "Sand",
"BLOCK_SAND_PLURAL": "Sands",
"BLOCK_SAND_WHITE": "White sand",
"BLOCK_SAND_WHITE_PLURAL": "White sands",
"BLOCK_SAND_RED": "Red sand",
"BLOCK_SAND_RED_PLURAL": "Red sands",
"BLOCK_SAND_DESERT": "Sand",
"BLOCK_SAND_DESERT_PLURAL": "Sands",
"BLOCK_SAND_BLACK": "Black sand",
"BLOCK_SAND_BLACK_PLURAL": "Black sands",
"BLOCK_SAND_GREEN": "Green sand",
"BLOCK_SAND_GREEN_PLURAL": "Green sands",
"BLOCK_GRAVEL": "Gravel",
"BLOCK_GRAVEL_PLURAL": "Gravels",
"BLOCK_ORE_MALACHITE": "Malachite",
"BLOCK_ORE_MALACHITES": "Malachites",
"BLOCK_ORE_HEMATITE": "Hematite",
"BLOCK_ORE_HEMATITE_PLURAL": "Hematites",
"BLOCK_ORE_NATURAL_GOLD": "Natural gold",
"BLOCK_ORE_NATERAL_GOLD_PLURAL": "Natural golds",
"BLOCK_ORE_NATURAL_SILVER": "Natural silver",
"BLOCK_ORE_NATURAL_SILVER_PLURAL": "Natural silvers",
"BLOCK_ORE_RUTILE": "Rutile",
"BLOCK_ORE_RUTILE_PLURAL": "Rutiles",
"BLOCK_ORE_AURICHALCUMITE": "Aurichalcumite",
"BLOCK_ORE_AURICHALCUMITE_PLURAL": "Aurichalcumites",
"BLOCK_GEM_RUBY": "Raw ruby",
"BLOCK_GEM_RUBY_PLURAL": "Raw rubies",
"BLOCK_GEM_EMERALD": "Raw emerald",
"BLOCK_GEM_EMERALD_PLURAL": "Raw emeralds",
"BLOCK_GEM_SAPPHIRE": "Raw sapphire",
"BLOCK_GEM_SAPPHIRE_PLURAL": "Raw sapphires",
"BLOCK_GEM_TOPAZ": "Raw topaz",
"BLOCK_GEM_TOPAZ_PLURAL": "Raw topazes",
"BLOCK_GEM_DIAMOND": "Raw diamond",
"BLOCK_GEM_DIAMOND_PLURAL": "Raw diamonds",
"BLOCK_GEM_AMETHYST": "Raw amethyst",
"BLOCK_GEM_AMETHYST_PLURAL": "Raw amethysts",
"BLOCK_SNOW": "Snow",
"BLOCK_SNOW_PLURAL": "Snows",
"BLOCK_ICE_FRAGILE": "Thin ice",
"BLOCK_ICE_FRAGILE_PLURAL": "Thin ices",
"BLOCK_ICE_NATURAL": "Ice",
"BLOCK_ICE_NATURAL_PLURAL": "Ices",
"BLOCK_ICE_CLEAR_MAGICAL": "Clear ice",
"BLOCK_ICE_CLEAR_MAGICAL_PLURAL": "Clear ices",
"BLOCK_PLATFORM_STONE": "Stone platform",
"BLOCK_PLATFORM_STONE_PLURAL": "Stone platforms",
"BLOCK_PLATFORM_WOODEN": "Wooden platform",
"BLOCK_PLATFORM_WOODEN_PLURAL": "Wooden platforms",
"BLOCK_PLATFORM_EBONY": "Ebony platform",
"BLOCK_PLATFORM_EBONY_PLURAL": "Ebony platforms",
"BLOCK_PLATFORM_BIRCH": "Birch platform",
"BLOCK_PLATFORM_BIRCH_PLURAL": "Birch platforms",
"BLOCK_PLATFORM_BLOODROSE": "Rosewood platform",
"BLOCK_PLATFORM_BLOODROSE_PLURAL": "Rosewood platforms",
"BLOCK_TORCH": "Torch",
"BLOCK_TORCH_PLURAL": "Torches",
"BLOCK_SANDSTONE": "Sandstone",
"BLOCK_SANDSTONE_PLURAL": "Sandstones",
"BLOCK_SANDSTONE_WHITE": "White sandstone",
"BLOCK_SANDSTONE_WHITE_PLURAL": "White sandstones",
"BLOCK_SANDSTONE_RED": "Red sandstone",
"BLOCK_SANDSTONE_RED_PLURAL": "Red sandstones",
"BLOCK_SANDSTONE_DESERT": "Sandstone",
"BLOCK_SANDSTONE_DESERT_PLURAL": "Sandstones",
"BLOCK_SANDSTONE_BLACK": "Black sandstone",
"BLOCK_SANDSTONE_BLACK_PLURAL": "Black sandstones",
"BLOCK_SANDSTONE_GREEN": "Green sandstone",
"BLOCK_SANDSTONE_GREEN_PLURAL": "Green sandstones",
"BLOCK_WATER": "Water",
"BLOCK_WATER_PLURAL": "Waters",
"BLOCK_LAVA": "Lava",
"BLOCK_LAVA_PLURAL": "Lavas"
}

View File

@@ -1,100 +0,0 @@
{
"TILE_STONE": "Stone",
"TILE_STONE_PLURAL": "Stones",
"TILE_DIRT": "Dirt",
"TILE_DIRT_PLURAL": "Dirts",
"TILE_GRASS": "Grass",
"TILE_GRAS_PLURALS": "Grasses",
"TILE_PLANK_NORMAL": "Wooden planks",
"TILE_PLANK_NORMAL_PLURAL": "Wooden planks",
"TILE_PLANK_EBONY": "Ebony planks",
"TILE_PLANK_EBONY_PLURAL": "Ebony planks",
"TILE_PLANK_BIRCH": "Birch planks",
"TILE_PLANK_BIRCH_PLURAL": "Birch planks",
"TILE_PLANK_BLOODROSE": "Rosewood planks",
"TILE_PLANK_BLOODROSE_PLURAL": "Rosewood planks",
"TILE_TRUNK_NORMAL": "Oak log",
"TILE_TRUNK_NORMAL_PLURAL": "Oak logs",
"TILE_TRUNK_EBONY": "Ebony log",
"TILE_TRUNK_EBONY_PLURAL": "Ebony logs",
"TILE_TRUNK_BIRCH": "Birch log",
"TILE_TRUNK_BIRCH_PLURAL": "Birch logs",
"TILE_TRUNK_BLOODROSE": "Rosewood log",
"TILE_TRUNK_BLOODROSE_PLURAL": "Rosewood logs",
"TILE_STONE_QUARRIED": "Quarried stone",
"TILE_STONE_QUARRIED_PLURAL": "Quarried stones",
"TILE_SAND": "Sand",
"TILE_SAND_PLURAL": "Sands",
"TILE_SAND_WHITE": "White sand",
"TILE_SAND_WHITE_PLURAL": "White sands",
"TILE_SAND_RED": "Red sand",
"TILE_SAND_RED_PLURAL": "Red sands",
"TILE_SAND_DESERT": "Sand",
"TILE_SAND_DESERT_PLURAL": "Sands",
"TILE_SAND_BLACK": "Black sand",
"TILE_SAND_BLACK_PLURAL": "Black sands",
"TILE_SAND_GREEN": "Green sand",
"TILE_SAND_GREEN_PLURAL": "Green sands",
"TILE_GRAVEL": "Gravel",
"TILE_GRAVEL_PLURAL": "Gravels",
"TILE_ORE_MALACHITE": "Malachite",
"TILE_ORE_MALACHITES": "Malachites",
"TILE_ORE_HEMATITE": "Hematite",
"TILE_ORE_HEMATITE_PLURAL": "Hematites",
"TILE_ORE_NATURAL_GOLD": "Natural gold",
"TILE_ORE_NATERAL_GOLD_PLURAL": "Natural golds",
"TILE_ORE_NATURAL_SILVER": "Natural silver",
"TILE_ORE_NATURAL_SILVER_PLURAL": "Natural silvers",
"TILE_ORE_RUTILE": "Rutile",
"TILE_ORE_RUTILE_PLURAL": "Rutiles",
"TILE_ORE_AURICHALCUMITE": "Aurichalcumite",
"TILE_ORE_AURICHALCUMITE_PLURAL": "Aurichalcumites",
"TILE_GEM_RUBY": "Raw ruby",
"TILE_GEM_RUBY_PLURAL": "Raw rubies",
"TILE_GEM_EMERALD": "Raw emerald",
"TILE_GEM_EMERALD_PLURAL": "Raw emeralds",
"TILE_GEM_SAPPHIRE": "Raw sapphire",
"TILE_GEM_SAPPHIRE_PLURAL": "Raw sapphires",
"TILE_GEM_TOPAZ": "Raw topaz",
"TILE_GEM_TOPAZ_PLURAL": "Raw topazes",
"TILE_GEM_DIAMOND": "Raw diamond",
"TILE_GEM_DIAMOND_PLURAL": "Raw diamonds",
"TILE_GEM_AMETHYST": "Raw amethyst",
"TILE_GEM_AMETHYST_PLURAL": "Raw amethysts",
"TILE_SNOW": "Snow",
"TILE_SNOW_PLURAL": "Snows",
"TILE_ICE_FRAGILE": "Thin ice",
"TILE_ICE_FRAGILE_PLURAL": "Thin ices",
"TILE_ICE_NATURAL": "Ice",
"TILE_ICE_NATURAL_PLURAL": "Ices",
"TILE_ICE_CLEAR_MAGICAL": "Clear ice",
"TILE_ICE_CLEAR_MAGICAL_PLURAL": "Clear ices",
"TILE_PLATFORM_STONE": "Stone platform",
"TILE_PLATFORM_STONE_PLURAL": "Stone platforms",
"TILE_PLATFORM_WOODEN": "Wooden platform",
"TILE_PLATFORM_WOODEN_PLURAL": "Wooden platforms",
"TILE_PLATFORM_EBONY": "Ebony platform",
"TILE_PLATFORM_EBONY_PLURAL": "Ebony platforms",
"TILE_PLATFORM_BIRCH": "Birch platform",
"TILE_PLATFORM_BIRCH_PLURAL": "Birch platforms",
"TILE_PLATFORM_BLOODROSE": "Rosewood platform",
"TILE_PLATFORM_BLOODROSE_PLURAL": "Rosewood platforms",
"TILE_TORCH": "Torch",
"TILE_TORCH_PLURAL": "Torches",
"TILE_SANDSTONE": "Sandstone",
"TILE_SANDSTONE_PLURAL": "Sandstones",
"TILE_SANDSTONE_WHITE": "White sandstone",
"TILE_SANDSTONE_WHITE_PLURAL": "White sandstones",
"TILE_SANDSTONE_RED": "Red sandstone",
"TILE_SANDSTONE_RED_PLURAL": "Red sandstones",
"TILE_SANDSTONE_DESERT": "Sandstone",
"TILE_SANDSTONE_DESERT_PLURAL": "Sandstones",
"TILE_SANDSTONE_BLACK": "Black sandstone",
"TILE_SANDSTONE_BLACK_PLURAL": "Black sandstones",
"TILE_SANDSTONE_GREEN": "Green sandstone",
"TILE_SANDSTONE_GREEN_PLURAL": "Green sandstones",
"TILE_WATER": "Water",
"TILE_WATER_PLURAL": "Waters",
"TILE_LAVA": "Lava",
"TILE_LAVA_PLURAL": "Lavas"
}

View File

@@ -0,0 +1,78 @@
{
"BLOCK_STONE": "돌",
"BLOCK_STONE_PLURAL": "돌",
"BLOCK_DIRT": "흙",
"BLOCK_DIRT_PLURAL": "흙",
"BLOCK_GRASS": "잔디",
"BLOCK_GRAS_PLURALS": "잔디",
"BLOCK_PLANK_NORMAL": "나무판자",
"BLOCK_PLANK_NORMAL_PLURAL": "나무판자",
"BLOCK_PLANK_EBONY": "검정 나무판자",
"BLOCK_PLANK_EBONY_PLURAL": "검정 나무판자",
"BLOCK_PLANK_BIRCH": "하양 나무판자",
"BLOCK_PLANK_BIRCH_PLURAL": "하양 나무판자",
"BLOCK_PLANK_BLOODROSE": "빨강 나무판자",
"BLOCK_PLANK_BLOODROSE_PLURAL": "빨강 나무판자",
"BLOCK_TRUNK_NORMAL": "통나무",
"BLOCK_TRUNK_NORMAL_PLURAL": "통나무",
"BLOCK_TRUNK_EBONY": "흑단나무",
"BLOCK_TRUNK_EBONY_PLURAL": "흑단나무",
"BLOCK_TRUNK_BIRCH": "자작나무",
"BLOCK_TRUNK_BIRCH_PLURAL": "자작나무",
"BLOCK_TRUNK_BLOODROSE": "자단나무",
"BLOCK_TRUNK_BLOODROSE_PLURAL": "자단나무",
"BLOCK_STONE_QUARRIED": "석재",
"BLOCK_STONE_QUARRIED_PLURAL": "석재",
"BLOCK_SAND": "모래",
"BLOCK_SAND_PLURAL": "모래",
"BLOCK_GRAVEL": "자갈",
"BLOCK_GRAVEL_PLURAL": "자갈",
"BLOCK_ORE_MALACHITE": "공작석",
"BLOCK_ORE_MALACHITES": "공작석",
"BLOCK_ORE_HEMATITE": "적철석",
"BLOCK_ORE_HEMATITE_PLURAL": "적철석",
"BLOCK_ORE_NATURAL_GOLD": "자연금",
"BLOCK_ORE_NATERAL_GOLD_PLURAL": "자연금",
"BLOCK_ORE_NATURAL_SILVER": "자연은",
"BLOCK_ORE_NATURAL_SILVER_PLURAL": "자연은",
"BLOCK_ORE_RUTILE": "금홍석",
"BLOCK_ORE_RUTILE_PLURAL": "금홍석",
"BLOCK_ORE_AURICHALCUMITE": "진금석",
"BLOCK_ORE_AURICHALCUMITE_PLURAL": "진금석",
"BLOCK_GEM_RUBY": "홍옥석",
"BLOCK_GEM_RUBY_PLURAL": "홍옥석",
"BLOCK_GEM_EMERALD": "취옥석",
"BLOCK_GEM_EMERALD_PLURAL": "취옥석",
"BLOCK_GEM_SAPPHIRE": "청옥석",
"BLOCK_GEM_SAPPHIRE_PLURAL": "청옥석",
"BLOCK_GEM_TOPAZ": "황옥석",
"BLOCK_GEM_TOPAZ_PLURAL": "황옥석",
"BLOCK_GEM_DIAMOND": "금강석",
"BLOCK_GEM_DIAMOND_PLURAL": "금강석",
"BLOCK_GEM_AMETHYST": "자수정석",
"BLOCK_GEM_AMETHYST_PLURAL": "자수정석",
"BLOCK_SNOW": "눈",
"BLOCK_SNOW_PLURAL": "눈",
"BLOCK_ICE_FRAGILE": "살얼음",
"BLOCK_ICE_FRAGILE_PLURAL": "살얼음",
"BLOCK_ICE_NATURAL": "얼음",
"BLOCK_ICE_NATURAL_PLURAL": "얼음",
"BLOCK_ICE_CLEAR_MAGICAL": "깨끗한 얼음",
"BLOCK_ICE_CLEAR_MAGICAL_PLURAL": "깨끗한 얼음",
"BLOCK_PLATFORM_STONE": "돌 발판",
"BLOCK_PLATFORM_STONE_PLURAL": "돌 발판",
"BLOCK_PLATFORM_WOODEN": "나무 발판",
"BLOCK_PLATFORM_WOODEN_PLURAL": "나무 발판",
"BLOCK_PLATFORM_EBONY": "흑단 발판",
"BLOCK_PLATFORM_EBONY_PLURAL": "흑단 발판",
"BLOCK_PLATFORM_BIRCH": "백단 발판",
"BLOCK_PLATFORM_BIRCH_PLURAL": "백단 발판",
"BLOCK_PLATFORM_BLOODROSE": "적단 발판",
"BLOCK_PLATFORM_BLOODROSE_PLURAL": "적단 발판",
"BLOCK_TORCH": "횃불",
"BLOCK_TORCH_PLURAL": "횃불",
"BLOCK_WATER": "물",
"BLOCK_WATER_PLURAL": "물",
"BLOCK_LAVA": "용암",
"BLOCK_LAVA_PLURAL": "용암"
}

View File

@@ -1,78 +0,0 @@
{
"TILE_STONE": "돌",
"TILE_STONE_PLURAL": "돌",
"TILE_DIRT": "흙",
"TILE_DIRT_PLURAL": "흙",
"TILE_GRASS": "잔디",
"TILE_GRAS_PLURALS": "잔디",
"TILE_PLANK_NORMAL": "나무판자",
"TILE_PLANK_NORMAL_PLURAL": "나무판자",
"TILE_PLANK_EBONY": "검정 나무판자",
"TILE_PLANK_EBONY_PLURAL": "검정 나무판자",
"TILE_PLANK_BIRCH": "하양 나무판자",
"TILE_PLANK_BIRCH_PLURAL": "하양 나무판자",
"TILE_PLANK_BLOODROSE": "빨강 나무판자",
"TILE_PLANK_BLOODROSE_PLURAL": "빨강 나무판자",
"TILE_TRUNK_NORMAL": "통나무",
"TILE_TRUNK_NORMAL_PLURAL": "통나무",
"TILE_TRUNK_EBONY": "흑단나무",
"TILE_TRUNK_EBONY_PLURAL": "흑단나무",
"TILE_TRUNK_BIRCH": "자작나무",
"TILE_TRUNK_BIRCH_PLURAL": "자작나무",
"TILE_TRUNK_BLOODROSE": "자단나무",
"TILE_TRUNK_BLOODROSE_PLURAL": "자단나무",
"TILE_STONE_QUARRIED": "석재",
"TILE_STONE_QUARRIED_PLURAL": "석재",
"TILE_SAND": "모래",
"TILE_SAND_PLURAL": "모래",
"TILE_GRAVEL": "자갈",
"TILE_GRAVEL_PLURAL": "자갈",
"TILE_ORE_MALACHITE": "공작석",
"TILE_ORE_MALACHITES": "공작석",
"TILE_ORE_HEMATITE": "적철석",
"TILE_ORE_HEMATITE_PLURAL": "적철석",
"TILE_ORE_NATURAL_GOLD": "자연금",
"TILE_ORE_NATERAL_GOLD_PLURAL": "자연금",
"TILE_ORE_NATURAL_SILVER": "자연은",
"TILE_ORE_NATURAL_SILVER_PLURAL": "자연은",
"TILE_ORE_RUTILE": "금홍석",
"TILE_ORE_RUTILE_PLURAL": "금홍석",
"TILE_ORE_AURICHALCUMITE": "진금석",
"TILE_ORE_AURICHALCUMITE_PLURAL": "진금석",
"TILE_GEM_RUBY": "홍옥석",
"TILE_GEM_RUBY_PLURAL": "홍옥석",
"TILE_GEM_EMERALD": "취옥석",
"TILE_GEM_EMERALD_PLURAL": "취옥석",
"TILE_GEM_SAPPHIRE": "청옥석",
"TILE_GEM_SAPPHIRE_PLURAL": "청옥석",
"TILE_GEM_TOPAZ": "황옥석",
"TILE_GEM_TOPAZ_PLURAL": "황옥석",
"TILE_GEM_DIAMOND": "금강석",
"TILE_GEM_DIAMOND_PLURAL": "금강석",
"TILE_GEM_AMETHYST": "자수정석",
"TILE_GEM_AMETHYST_PLURAL": "자수정석",
"TILE_SNOW": "눈",
"TILE_SNOW_PLURAL": "눈",
"TILE_ICE_FRAGILE": "살얼음",
"TILE_ICE_FRAGILE_PLURAL": "살얼음",
"TILE_ICE_NATURAL": "얼음",
"TILE_ICE_NATURAL_PLURAL": "얼음",
"TILE_ICE_CLEAR_MAGICAL": "깨끗한 얼음",
"TILE_ICE_CLEAR_MAGICAL_PLURAL": "깨끗한 얼음",
"TILE_PLATFORM_STONE": "돌 발판",
"TILE_PLATFORM_STONE_PLURAL": "돌 발판",
"TILE_PLATFORM_WOODEN": "나무 발판",
"TILE_PLATFORM_WOODEN_PLURAL": "나무 발판",
"TILE_PLATFORM_EBONY": "흑단 발판",
"TILE_PLATFORM_EBONY_PLURAL": "흑단 발판",
"TILE_PLATFORM_BIRCH": "백단 발판",
"TILE_PLATFORM_BIRCH_PLURAL": "백단 발판",
"TILE_PLATFORM_BLOODROSE": "적단 발판",
"TILE_PLATFORM_BLOODROSE_PLURAL": "적단 발판",
"TILE_TORCH": "횃불",
"TILE_TORCH_PLURAL": "횃불",
"TILE_WATER": "물",
"TILE_WATER_PLURAL": "물",
"TILE_LAVA": "용암",
"TILE_LAVA_PLURAL": "용암"
}

View File

@@ -5,5 +5,6 @@ import net.torvald.terrarum.ModMgr
*/
static void invoke(String module) {
ModMgr.GameBlockLoader.invoke(module)
ModMgr.GameItemLoader.invoke(module)
}

View File

@@ -0,0 +1,171 @@
"id";"sid";"name" ; "opacity";"strength";"dsty";"mate";"fluid";"solid";"wall"; "lumcolor";"drop";"ddmg";"fall";"dlfn";"vscs";"fv";"friction"
"0"; "0";"BLOCK_AIR" ; "8396808"; "1"; "1";"null"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "N/A"; "0";"4"
"1"; "0";"BLOCK_STONE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "1"; "0"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"1"; "1";"BLOCK_STONE_QUARRIED" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "1"; "0"; "1"; "1"; "0"; "0"; "N/A"; "0";"16"
"1"; "2";"BLOCK_STONE_TILE_WHITE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "1"; "0"; "1"; "2"; "0"; "0"; "N/A"; "0";"16"
"1"; "3";"BLOCK_STONE_BRICKS" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "1"; "0"; "1"; "3"; "0"; "0"; "N/A"; "0";"16"
"2"; "0";"BLOCK_DIRT" ; "33587232"; "24";"1400";"dirt"; "0"; "1"; "1"; "0"; "2"; "0"; "0"; "0"; "N/A"; "0";"16"
"2"; "1";"BLOCK_GRASS" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "1"; "0"; "0"; "N/A"; "0";"16"
"2"; "2";"BLOCK_FOLIAGE_GREEN" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "2"; "0"; "0"; "N/A"; "0";"16"
"2"; "3";"BLOCK_FOLIAGE_LIME" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "3"; "0"; "0"; "N/A"; "0";"16"
"2"; "4";"BLOCK_FOLIAGE_GOLD" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "4"; "0"; "0"; "N/A"; "0";"16"
"2"; "5";"BLOCK_FOLIAGE_RED" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "5"; "0"; "0"; "N/A"; "0";"16"
"2"; "6";"BLOCK_FOLIAGE_ICEBLUE" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "6"; "0"; "0"; "N/A"; "0";"16"
"2"; "7";"BLOCK_FOLIAGE_PURPLE" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "7"; "0"; "0"; "N/A"; "0";"16"
"3"; "0";"BLOCK_PLANK_NORMAL" ; "33587232"; "16"; "740";"wood"; "0"; "1"; "1"; "0"; "3"; "0"; "0"; "0"; "N/A"; "0";"16"
"3"; "1";"BLOCK_PLANK_EBONY" ; "33587232"; "19";"1200";"wood"; "0"; "1"; "1"; "0"; "3"; "1"; "0"; "0"; "N/A"; "0";"16"
"3"; "2";"BLOCK_PLANK_BIRCH" ; "33587232"; "15"; "670";"wood"; "0"; "1"; "1"; "0"; "3"; "2"; "0"; "0"; "N/A"; "0";"16"
"3"; "3";"BLOCK_PLANK_BLOODROSE" ; "33587232"; "17"; "900";"wood"; "0"; "1"; "1"; "0"; "3"; "3"; "0"; "0"; "N/A"; "0";"16"
"4"; "0";"BLOCK_TRUNK_NORMAL" ; "33587232"; "16"; "740";"wood"; "0"; "1"; "0"; "0"; "3"; "0"; "0"; "0"; "N/A"; "0";"16"
"4"; "1";"BLOCK_TRUNK_EBONY" ; "33587232"; "19";"1200";"wood"; "0"; "1"; "0"; "0"; "3"; "1"; "0"; "0"; "N/A"; "0";"16"
"4"; "2";"BLOCK_TRUNK_BIRCH" ; "33587232"; "15"; "670";"wood"; "0"; "1"; "0"; "0"; "3"; "2"; "0"; "0"; "N/A"; "0";"16"
"4"; "3";"BLOCK_TRUNK_BLOODROSE" ; "33587232"; "17"; "900";"wood"; "0"; "1"; "0"; "0"; "3"; "3"; "0"; "0"; "N/A"; "0";"16"
"5"; "0";"BLOCK_SAND" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "5"; "0"; "1"; "0"; "N/A"; "0";"16"
"5"; "1";"BLOCK_SAND_WHITE" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "5"; "1"; "1"; "0"; "N/A"; "0";"16"
"5"; "2";"BLOCK_SAND_RED" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "5"; "2"; "1"; "0"; "N/A"; "0";"16"
"5"; "3";"BLOCK_SAND_DESERT" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "5"; "3"; "1"; "0"; "N/A"; "0";"16"
"5"; "4";"BLOCK_SAND_BLACK" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "5"; "4"; "1"; "0"; "N/A"; "0";"16"
"5"; "5";"BLOCK_SAND_GREEN" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "5"; "5"; "1"; "0"; "N/A"; "0";"16"
"6"; "0";"BLOCK_GRAVEL" ; "33587232"; "24";"2400";"grvl"; "0"; "1"; "0"; "0"; "6"; "0"; "1"; "0"; "N/A"; "0";"16"
"6"; "1";"BLOCK_GRAVEL_GREY" ; "33587232"; "24";"2400";"grvl"; "0"; "1"; "0"; "0"; "6"; "1"; "1"; "0"; "N/A"; "0";"16"
"7"; "0";"BLOCK_ORE_MALACHITE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "7"; "0"; "0"; "0"; "N/A"; "0";"16"
"7"; "1";"BLOCK_ORE_HEMATITE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "7"; "1"; "0"; "0"; "N/A"; "0";"16"
"7"; "2";"BLOCK_ORE_NATURAL_GOLD" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "7"; "2"; "0"; "0"; "N/A"; "0";"16"
"7"; "3";"BLOCK_ORE_NATURAL_SILVER" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "7"; "3"; "0"; "0"; "N/A"; "0";"16"
"7"; "4";"BLOCK_ORE_RUTILE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "7"; "4"; "0"; "0"; "N/A"; "0";"16"
"7"; "5";"BLOCK_ORE_AURICHALCUMITE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "7"; "5"; "0"; "0"; "N/A"; "0";"16"
"8"; "0";"BLOCK_GEM_RUBY" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "8"; "0"; "0"; "0"; "N/A"; "0";"16"
"8"; "1";"BLOCK_GEM_EMERALD" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "8"; "1"; "0"; "0"; "N/A"; "0";"16"
"8"; "2";"BLOCK_GEM_SAPPHIRE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "8"; "2"; "0"; "0"; "N/A"; "0";"16"
"8"; "3";"BLOCK_GEM_TOPAZ" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "8"; "3"; "0"; "0"; "N/A"; "0";"16"
"8"; "4";"BLOCK_GEM_DIAMOND" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "8"; "4"; "0"; "0"; "N/A"; "0";"16"
"8"; "5";"BLOCK_GEM_AMETHYST" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "8"; "5"; "0"; "0"; "N/A"; "0";"16"
"9"; "0";"BLOCK_SNOW" ; "33587232"; "24"; "500";"snow"; "0"; "1"; "1"; "0"; "9"; "0"; "0"; "0"; "N/A"; "0";"16"
"9"; "1";"BLOCK_ICE_FRAGILE" ; "13644813"; "5"; "930";"icei"; "0"; "1"; "0"; "0"; "9"; "1"; "0"; "0"; "N/A"; "0"; "4"
"9"; "2";"BLOCK_ICE_NATURAL" ; "27289626"; "35"; "930";"icei"; "0"; "1"; "1"; "0"; "9"; "2"; "0"; "0"; "N/A"; "0"; "4"
"9"; "3";"BLOCK_ICE_CLEAR_MAGICAL" ; "33587232"; "48";"3720";"icex"; "0"; "1"; "1"; "19955770"; "9"; "3"; "0"; "0"; "N/A"; "0"; "4"
"9"; "4";"BLOCK_GLASS_CRUDE" ; "3146755"; "5";"2500";"glas"; "0"; "1"; "1"; "0"; "9"; "4"; "0"; "0"; "N/A"; "0";"16"
"9"; "5";"BLOCK_GLASS_CLEAN" ; "1049601"; "5";"2203";"glas"; "0"; "1"; "1"; "0"; "9"; "5"; "0"; "0"; "N/A"; "0";"16"
"10"; "0";"BLOCK_PLATFORM_STONE" ; "8396808"; "5"; "N/A";"rock"; "0"; "0"; "0"; "0"; "10"; "0"; "0"; "0"; "N/A"; "0";"16"
"10"; "1";"BLOCK_PLATFORM_WOODEN" ; "8396808"; "5"; "N/A";"wood"; "0"; "0"; "0"; "0"; "10"; "1"; "0"; "0"; "N/A"; "0";"16"
"10"; "2";"BLOCK_PLATFORM_EBONY" ; "8396808"; "5"; "N/A";"wood"; "0"; "0"; "0"; "0"; "10"; "2"; "0"; "0"; "N/A"; "0";"16"
"10"; "3";"BLOCK_PLATFORM_BIRCH" ; "8396808"; "5"; "N/A";"wood"; "0"; "0"; "0"; "0"; "10"; "3"; "0"; "0"; "N/A"; "0";"16"
"10"; "4";"BLOCK_PLATFORM_BLOODROSE" ; "8396808"; "5"; "N/A";"wood"; "0"; "0"; "0"; "0"; "10"; "4"; "0"; "0"; "N/A"; "0";"16"
"11"; "0";"BLOCK_TORCH" ; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "267553792"; "11"; "0"; "0"; "1"; "N/A"; "0";"16"
"11"; "1";"BLOCK_TORCH_FROST" ; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "81916159"; "11"; "1"; "0"; "1"; "N/A"; "0";"16"
"12"; "0";"BLOCK_TORCH" ; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "0"; "11"; "0"; "0"; "0"; "N/A"; "0";"16"
"12"; "1";"BLOCK_TORCH_FROST" ; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "0"; "11"; "1"; "0"; "0"; "N/A"; "0";"16"
"13"; "0";"BLOCK_ILLUMINATOR_WHITE" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "239319274"; "13"; "0"; "0"; "0"; "N/A"; "0";"16"
"13"; "1";"BLOCK_ILLUMINATOR_YELLOW" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "267607040"; "13"; "1"; "0"; "0"; "N/A"; "0";"16"
"13"; "2";"BLOCK_ILLUMINATOR_ORANGE" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "267546624"; "13"; "2"; "0"; "0"; "N/A"; "0";"16"
"13"; "3";"BLOCK_ILLUMINATOR_RED" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "246415360"; "13"; "3"; "0"; "0"; "N/A"; "0";"16"
"13"; "4";"BLOCK_ILLUMINATOR_FUCHSIA" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "246415543"; "13"; "4"; "0"; "0"; "N/A"; "0";"16"
"13"; "5";"BLOCK_ILLUMINATOR_PURPLE" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "191889643"; "13"; "5"; "0"; "0"; "N/A"; "0";"16"
"13"; "6";"BLOCK_ILLUMINATOR_BLUE" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "52479"; "13"; "6"; "0"; "0"; "N/A"; "0";"16"
"13"; "7";"BLOCK_ILLUMINATOR_CYAN" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "219391"; "13"; "7"; "0"; "0"; "N/A"; "0";"16"
"13"; "8";"BLOCK_ILLUMINATOR_GREEN" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "56884224"; "13"; "8"; "0"; "0"; "N/A"; "0";"16"
"13"; "9";"BLOCK_ILLUMINATOR_GREEN_DARK";"8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "33660928"; "13"; "9"; "0"; "0"; "N/A"; "0";"16"
"13"; "10";"BLOCK_ILLUMINATOR_BROWN" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "89161728"; "13"; "10"; "0"; "0"; "N/A"; "0";"16"
"13"; "11";"BLOCK_ILLUMINATOR_TAN" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "157392948"; "13"; "11"; "0"; "0"; "N/A"; "0";"16"
"13"; "12";"BLOCK_ILLUMINATOR_GREY_LIGHT";"8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "198374589"; "13"; "12"; "0"; "0"; "N/A"; "0";"16"
"13"; "13";"BLOCK_ILLUMINATOR_GREY_MED"; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "122803317"; "13"; "13"; "0"; "0"; "N/A"; "0";"16"
"13"; "14";"BLOCK_ILLUMINATOR_GREY_DARK"; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "68224065"; "13"; "14"; "0"; "0"; "N/A"; "0";"16"
"13"; "15";"BLOCK_ILLUMINATOR_BLACK" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "116392191"; "13"; "15"; "0"; "0"; "N/A"; "0";"16"
"14"; "0";"BLOCK_ILLUMINATOR_WHITE" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "0"; "0"; "0"; "N/A"; "0";"16"
"14"; "1";"BLOCK_ILLUMINATOR_YELLOW" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "1"; "0"; "0"; "N/A"; "0";"16"
"14"; "2";"BLOCK_ILLUMINATOR_ORANGE" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "2"; "0"; "0"; "N/A"; "0";"16"
"14"; "3";"BLOCK_ILLUMINATOR_RED" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "3"; "0"; "0"; "N/A"; "0";"16"
"14"; "4";"BLOCK_ILLUMINATOR_FUCHSIA" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "4"; "0"; "0"; "N/A"; "0";"16"
"14"; "5";"BLOCK_ILLUMINATOR_PURPLE" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "5"; "0"; "0"; "N/A"; "0";"16"
"14"; "6";"BLOCK_ILLUMINATOR_BLUE" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "6"; "0"; "0"; "N/A"; "0";"16"
"14"; "7";"BLOCK_ILLUMINATOR_CYAN" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "7"; "0"; "0"; "N/A"; "0";"16"
"14"; "8";"BLOCK_ILLUMINATOR_GREEN" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "8"; "0"; "0"; "N/A"; "0";"16"
"14"; "9";"BLOCK_ILLUMINATOR_GREEN_DARK";"33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "9"; "0"; "0"; "N/A"; "0";"16"
"14"; "10";"BLOCK_ILLUMINATOR_BROWN" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "10"; "0"; "0"; "N/A"; "0";"16"
"14"; "11";"BLOCK_ILLUMINATOR_TAN" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "11"; "0"; "0"; "N/A"; "0";"16"
"14"; "12";"BLOCK_ILLUMINATOR_GREY_LIGHT";"33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "12"; "0"; "0"; "N/A"; "0";"16"
"14"; "13";"BLOCK_ILLUMINATOR_GREY_MED"; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "13"; "0"; "0"; "N/A"; "0";"16"
"14"; "14";"BLOCK_ILLUMINATOR_GREY_DARK";"33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "14"; "0"; "0"; "N/A"; "0";"16"
"14"; "15";"BLOCK_ILLUMINATOR_BLACK" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "15"; "0"; "0"; "N/A"; "0";"16"
"15"; "0";"BLOCK_SANDSTONE" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "15"; "0"; "0"; "0"; "N/A"; "0";"16"
"15"; "1";"BLOCK_SANDSTONE_WHITE" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "15"; "1"; "0"; "0"; "N/A"; "0";"16"
"15"; "2";"BLOCK_SANDSTONE_RED" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "15"; "2"; "0"; "0"; "N/A"; "0";"16"
"15"; "3";"BLOCK_SANDSTONE_DESERT" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "15"; "3"; "0"; "0"; "N/A"; "0";"16"
"15"; "4";"BLOCK_SANDSTONE_BLACK" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "15"; "4"; "0"; "0"; "N/A"; "0";"16"
"15"; "5";"BLOCK_SANDSTONE_GREEN" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "15"; "5"; "0"; "0"; "N/A"; "0";"16"
"16"; "0";"BLOCK_LANTERN_IRON_REGULAR"; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "267553792"; "16"; "0"; "0"; "0"; "N/A"; "0";"16"
"16"; "1";"BLOCK_SUNSTONE" ; "33587232"; "1"; "N/A";"rock"; "0"; "1"; "0"; "0"; "16"; "1"; "0"; "2"; "N/A"; "0";"16"
"16"; "2";"BLOCK_DAYLIGHT_CAPACITOR" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "0"; "0"; "16"; "2"; "0"; "3"; "N/A"; "0";"16"
"254"; "0";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "1";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "2";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "3";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "4";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "5";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "6";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "7";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "8";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "9";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "10";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "11";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "12";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "13";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "14";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "15";"BLOCK_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"255"; "0";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "1";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "2";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "3";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "4";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "5";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "6";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "7";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "8";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "9";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "10";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "11";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "12";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "13";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "14";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "15";"BLOCK_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"0"; "-1";"BLOCK_NULL" ;"1073741823"; "-1";"2600";"null"; "0"; "0"; "1"; "0"; "N/A"; "N/A"; "0"; "0"; "N/A"; "0";"16"
## Notes ##
# 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)
# dsty: density. As we are putting water an 1000, it is identical to specific gravity. [g/l]
# dlfn: dynamic luminosity function.
# 0-static, 1-torch flicker, 2-current global light (sun, star, moon), 3-daylight at noon,
# 4-slow breath, 5-pulsate
# mate: material, four-letter code
# fv: vertical friction (boolean)
## Illuminators ##
# Illuminator white: RGB(228,238,234), simulation of a halophosphate FL lamp (If you want high CRI lamp, collect a daylight!)
# Defalut torch : Y 64 x 0.55183 y 0.40966 (Planckian ~1 770 K); real candlelight colour taken from Spyder5 colorimeter (for I couldn't afford i1DisplayPro/Colormunki)
# Sunstone: Artificial sunlight, change colour over time in sync with sunlight. The light is set by game's code.
# Sunlight capacitor: daylight at noon. Set by game's code.
## Tiles ##
# 16 colour palette : games's 16-colour palette
# Magical ice: theoretical __metallic__ ice that might form under super-high pressure (> 5 TPa). Its density is a wild guess.
## References ##
# * Density of various woods : http://www.engineeringtoolbox.com/wood-density-d_40.html
# * Density of various phases of ice : http://www1.lsbu.ac.uk/water/ice_phases.html
Can't render this file because it contains an unexpected character in line 1 and column 18.

View File

@@ -8,10 +8,12 @@ import net.torvald.point.Point2d
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.gameactors.ActorWithPhysics
import net.torvald.terrarum.itemproperties.Calculate
import net.torvald.terrarum.itemproperties.InventoryItem
import net.torvald.terrarum.itemproperties.Material
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.blockproperties.Block
// following two are NOT UNUSED!
import net.torvald.terrarum.itemproperties.InventoryItem.EquipPosition
import net.torvald.terrarum.itemproperties.InventoryItem.Category
import org.jetbrains.annotations.NotNull
import org.newdawn.slick.GameContainer
@@ -32,8 +34,8 @@ class TestPick extends InventoryItem {
boolean stackable = true
int maxDurability = 147
float durability = maxDurability
int equipPosition = 9 //EquipPosition.HAND_GRIP
String inventoryCategory = "tool" //Category.TOOL
int equipPosition = EquipPosition.HAND_GRIP
String inventoryCategory = Category.TOOL
// !! TEST MATERIAL !!
Material material = new Material(0,0,0,0,0,0,0,0,1,0.0)
@@ -72,7 +74,7 @@ class TestPick extends InventoryItem {
})
// return false if here's no tile
if (Tile.AIR == Terrarum.ingame.world.getTileFromTerrain(mouseTileX, mouseTileY))
if (Block.AIR == Terrarum.ingame.world.getTileFromTerrain(mouseTileX, mouseTileY))
return false
// filter passed, do the job

View File

@@ -1,171 +0,0 @@
"id";"sid";"name" ; "opacity";"strength";"dsty";"mate";"fluid";"solid";"wall"; "lumcolor";"drop";"ddmg";"fall";"dlfn";"vscs";"fv";"friction"
"0"; "0";"TILE_AIR" ; "8396808"; "1"; "1";"null"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "N/A"; "0";"4"
"1"; "0";"TILE_STONE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "1"; "0"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"1"; "1";"TILE_STONE_QUARRIED" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "1"; "0"; "1"; "1"; "0"; "0"; "N/A"; "0";"16"
"1"; "2";"TILE_STONE_TILE_WHITE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "1"; "0"; "1"; "2"; "0"; "0"; "N/A"; "0";"16"
"1"; "3";"TILE_STONE_BRICKS" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "1"; "0"; "1"; "3"; "0"; "0"; "N/A"; "0";"16"
"2"; "0";"TILE_DIRT" ; "33587232"; "24";"1400";"dirt"; "0"; "1"; "1"; "0"; "2"; "0"; "0"; "0"; "N/A"; "0";"16"
"2"; "1";"TILE_GRASS" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "1"; "0"; "0"; "N/A"; "0";"16"
"2"; "2";"TILE_FOLIAGE_GREEN" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "2"; "0"; "0"; "N/A"; "0";"16"
"2"; "3";"TILE_FOLIAGE_LIME" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "3"; "0"; "0"; "N/A"; "0";"16"
"2"; "4";"TILE_FOLIAGE_GOLD" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "4"; "0"; "0"; "N/A"; "0";"16"
"2"; "5";"TILE_FOLIAGE_RED" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "5"; "0"; "0"; "N/A"; "0";"16"
"2"; "6";"TILE_FOLIAGE_ICEBLUE" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "6"; "0"; "0"; "N/A"; "0";"16"
"2"; "7";"TILE_FOLIAGE_PURPLE" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "7"; "0"; "0"; "N/A"; "0";"16"
"3"; "0";"TILE_PLANK_NORMAL" ; "33587232"; "16"; "740";"wood"; "0"; "1"; "1"; "0"; "3"; "0"; "0"; "0"; "N/A"; "0";"16"
"3"; "1";"TILE_PLANK_EBONY" ; "33587232"; "19";"1200";"wood"; "0"; "1"; "1"; "0"; "3"; "1"; "0"; "0"; "N/A"; "0";"16"
"3"; "2";"TILE_PLANK_BIRCH" ; "33587232"; "15"; "670";"wood"; "0"; "1"; "1"; "0"; "3"; "2"; "0"; "0"; "N/A"; "0";"16"
"3"; "3";"TILE_PLANK_BLOODROSE" ; "33587232"; "17"; "900";"wood"; "0"; "1"; "1"; "0"; "3"; "3"; "0"; "0"; "N/A"; "0";"16"
"4"; "0";"TILE_TRUNK_NORMAL" ; "33587232"; "16"; "740";"wood"; "0"; "1"; "0"; "0"; "3"; "0"; "0"; "0"; "N/A"; "0";"16"
"4"; "1";"TILE_TRUNK_EBONY" ; "33587232"; "19";"1200";"wood"; "0"; "1"; "0"; "0"; "3"; "1"; "0"; "0"; "N/A"; "0";"16"
"4"; "2";"TILE_TRUNK_BIRCH" ; "33587232"; "15"; "670";"wood"; "0"; "1"; "0"; "0"; "3"; "2"; "0"; "0"; "N/A"; "0";"16"
"4"; "3";"TILE_TRUNK_BLOODROSE" ; "33587232"; "17"; "900";"wood"; "0"; "1"; "0"; "0"; "3"; "3"; "0"; "0"; "N/A"; "0";"16"
"5"; "0";"TILE_SAND" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "5"; "0"; "1"; "0"; "N/A"; "0";"16"
"5"; "1";"TILE_SAND_WHITE" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "5"; "1"; "1"; "0"; "N/A"; "0";"16"
"5"; "2";"TILE_SAND_RED" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "5"; "2"; "1"; "0"; "N/A"; "0";"16"
"5"; "3";"TILE_SAND_DESERT" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "5"; "3"; "1"; "0"; "N/A"; "0";"16"
"5"; "4";"TILE_SAND_BLACK" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "5"; "4"; "1"; "0"; "N/A"; "0";"16"
"5"; "5";"TILE_SAND_GREEN" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "5"; "5"; "1"; "0"; "N/A"; "0";"16"
"6"; "0";"TILE_GRAVEL" ; "33587232"; "24";"2400";"grvl"; "0"; "1"; "0"; "0"; "6"; "0"; "1"; "0"; "N/A"; "0";"16"
"6"; "1";"TILE_GRAVEL_GREY" ; "33587232"; "24";"2400";"grvl"; "0"; "1"; "0"; "0"; "6"; "1"; "1"; "0"; "N/A"; "0";"16"
"7"; "0";"TILE_ORE_MALACHITE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "7"; "0"; "0"; "0"; "N/A"; "0";"16"
"7"; "1";"TILE_ORE_HEMATITE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "7"; "1"; "0"; "0"; "N/A"; "0";"16"
"7"; "2";"TILE_ORE_NATURAL_GOLD" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "7"; "2"; "0"; "0"; "N/A"; "0";"16"
"7"; "3";"TILE_ORE_NATURAL_SILVER" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "7"; "3"; "0"; "0"; "N/A"; "0";"16"
"7"; "4";"TILE_ORE_RUTILE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "7"; "4"; "0"; "0"; "N/A"; "0";"16"
"7"; "5";"TILE_ORE_AURICHALCUMITE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "7"; "5"; "0"; "0"; "N/A"; "0";"16"
"8"; "0";"TILE_GEM_RUBY" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "8"; "0"; "0"; "0"; "N/A"; "0";"16"
"8"; "1";"TILE_GEM_EMERALD" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "8"; "1"; "0"; "0"; "N/A"; "0";"16"
"8"; "2";"TILE_GEM_SAPPHIRE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "8"; "2"; "0"; "0"; "N/A"; "0";"16"
"8"; "3";"TILE_GEM_TOPAZ" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "8"; "3"; "0"; "0"; "N/A"; "0";"16"
"8"; "4";"TILE_GEM_DIAMOND" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "8"; "4"; "0"; "0"; "N/A"; "0";"16"
"8"; "5";"TILE_GEM_AMETHYST" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "8"; "5"; "0"; "0"; "N/A"; "0";"16"
"9"; "0";"TILE_SNOW" ; "33587232"; "24"; "500";"snow"; "0"; "1"; "1"; "0"; "9"; "0"; "0"; "0"; "N/A"; "0";"16"
"9"; "1";"TILE_ICE_FRAGILE" ; "13644813"; "5"; "930";"icei"; "0"; "1"; "0"; "0"; "9"; "1"; "0"; "0"; "N/A"; "0"; "4"
"9"; "2";"TILE_ICE_NATURAL" ; "27289626"; "35"; "930";"icei"; "0"; "1"; "1"; "0"; "9"; "2"; "0"; "0"; "N/A"; "0"; "4"
"9"; "3";"TILE_ICE_CLEAR_MAGICAL" ; "33587232"; "48";"3720";"icex"; "0"; "1"; "1"; "19955770"; "9"; "3"; "0"; "0"; "N/A"; "0"; "4"
"9"; "4";"TILE_GLASS_CRUDE" ; "3146755"; "5";"2500";"glas"; "0"; "1"; "1"; "0"; "9"; "4"; "0"; "0"; "N/A"; "0";"16"
"9"; "5";"TILE_GLASS_CLEAN" ; "1049601"; "5";"2203";"glas"; "0"; "1"; "1"; "0"; "9"; "5"; "0"; "0"; "N/A"; "0";"16"
"10"; "0";"TILE_PLATFORM_STONE" ; "8396808"; "5"; "N/A";"rock"; "0"; "0"; "0"; "0"; "10"; "0"; "0"; "0"; "N/A"; "0";"16"
"10"; "1";"TILE_PLATFORM_WOODEN" ; "8396808"; "5"; "N/A";"wood"; "0"; "0"; "0"; "0"; "10"; "1"; "0"; "0"; "N/A"; "0";"16"
"10"; "2";"TILE_PLATFORM_EBONY" ; "8396808"; "5"; "N/A";"wood"; "0"; "0"; "0"; "0"; "10"; "2"; "0"; "0"; "N/A"; "0";"16"
"10"; "3";"TILE_PLATFORM_BIRCH" ; "8396808"; "5"; "N/A";"wood"; "0"; "0"; "0"; "0"; "10"; "3"; "0"; "0"; "N/A"; "0";"16"
"10"; "4";"TILE_PLATFORM_BLOODROSE" ; "8396808"; "5"; "N/A";"wood"; "0"; "0"; "0"; "0"; "10"; "4"; "0"; "0"; "N/A"; "0";"16"
"11"; "0";"TILE_TORCH" ; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "267553792"; "11"; "0"; "0"; "1"; "N/A"; "0";"16"
"11"; "1";"TILE_TORCH_FROST" ; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "81916159"; "11"; "1"; "0"; "1"; "N/A"; "0";"16"
"12"; "0";"TILE_TORCH" ; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "0"; "11"; "0"; "0"; "0"; "N/A"; "0";"16"
"12"; "1";"TILE_TORCH_FROST" ; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "0"; "11"; "1"; "0"; "0"; "N/A"; "0";"16"
"13"; "0";"TILE_ILLUMINATOR_WHITE" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "239319274"; "13"; "0"; "0"; "0"; "N/A"; "0";"16"
"13"; "1";"TILE_ILLUMINATOR_YELLOW" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "267607040"; "13"; "1"; "0"; "0"; "N/A"; "0";"16"
"13"; "2";"TILE_ILLUMINATOR_ORANGE" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "267546624"; "13"; "2"; "0"; "0"; "N/A"; "0";"16"
"13"; "3";"TILE_ILLUMINATOR_RED" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "246415360"; "13"; "3"; "0"; "0"; "N/A"; "0";"16"
"13"; "4";"TILE_ILLUMINATOR_FUCHSIA" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "246415543"; "13"; "4"; "0"; "0"; "N/A"; "0";"16"
"13"; "5";"TILE_ILLUMINATOR_PURPLE" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "191889643"; "13"; "5"; "0"; "0"; "N/A"; "0";"16"
"13"; "6";"TILE_ILLUMINATOR_BLUE" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "52479"; "13"; "6"; "0"; "0"; "N/A"; "0";"16"
"13"; "7";"TILE_ILLUMINATOR_CYAN" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "219391"; "13"; "7"; "0"; "0"; "N/A"; "0";"16"
"13"; "8";"TILE_ILLUMINATOR_GREEN" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "56884224"; "13"; "8"; "0"; "0"; "N/A"; "0";"16"
"13"; "9";"TILE_ILLUMINATOR_GREEN_DARK";"8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "33660928"; "13"; "9"; "0"; "0"; "N/A"; "0";"16"
"13"; "10";"TILE_ILLUMINATOR_BROWN" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "89161728"; "13"; "10"; "0"; "0"; "N/A"; "0";"16"
"13"; "11";"TILE_ILLUMINATOR_TAN" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "157392948"; "13"; "11"; "0"; "0"; "N/A"; "0";"16"
"13"; "12";"TILE_ILLUMINATOR_GREY_LIGHT";"8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "198374589"; "13"; "12"; "0"; "0"; "N/A"; "0";"16"
"13"; "13";"TILE_ILLUMINATOR_GREY_MED"; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "122803317"; "13"; "13"; "0"; "0"; "N/A"; "0";"16"
"13"; "14";"TILE_ILLUMINATOR_GREY_DARK"; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "68224065"; "13"; "14"; "0"; "0"; "N/A"; "0";"16"
"13"; "15";"TILE_ILLUMINATOR_BLACK" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "116392191"; "13"; "15"; "0"; "0"; "N/A"; "0";"16"
"14"; "0";"TILE_ILLUMINATOR_WHITE" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "0"; "0"; "0"; "N/A"; "0";"16"
"14"; "1";"TILE_ILLUMINATOR_YELLOW" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "1"; "0"; "0"; "N/A"; "0";"16"
"14"; "2";"TILE_ILLUMINATOR_ORANGE" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "2"; "0"; "0"; "N/A"; "0";"16"
"14"; "3";"TILE_ILLUMINATOR_RED" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "3"; "0"; "0"; "N/A"; "0";"16"
"14"; "4";"TILE_ILLUMINATOR_FUCHSIA" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "4"; "0"; "0"; "N/A"; "0";"16"
"14"; "5";"TILE_ILLUMINATOR_PURPLE" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "5"; "0"; "0"; "N/A"; "0";"16"
"14"; "6";"TILE_ILLUMINATOR_BLUE" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "6"; "0"; "0"; "N/A"; "0";"16"
"14"; "7";"TILE_ILLUMINATOR_CYAN" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "7"; "0"; "0"; "N/A"; "0";"16"
"14"; "8";"TILE_ILLUMINATOR_GREEN" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "8"; "0"; "0"; "N/A"; "0";"16"
"14"; "9";"TILE_ILLUMINATOR_GREEN_DARK";"33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "9"; "0"; "0"; "N/A"; "0";"16"
"14"; "10";"TILE_ILLUMINATOR_BROWN" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "10"; "0"; "0"; "N/A"; "0";"16"
"14"; "11";"TILE_ILLUMINATOR_TAN" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "11"; "0"; "0"; "N/A"; "0";"16"
"14"; "12";"TILE_ILLUMINATOR_GREY_LIGHT";"33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "12"; "0"; "0"; "N/A"; "0";"16"
"14"; "13";"TILE_ILLUMINATOR_GREY_MED"; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "13"; "0"; "0"; "N/A"; "0";"16"
"14"; "14";"TILE_ILLUMINATOR_GREY_DARK";"33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "14"; "0"; "0"; "N/A"; "0";"16"
"14"; "15";"TILE_ILLUMINATOR_BLACK" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "15"; "0"; "0"; "N/A"; "0";"16"
"15"; "0";"TILE_SANDSTONE" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "15"; "0"; "0"; "0"; "N/A"; "0";"16"
"15"; "1";"TILE_SANDSTONE_WHITE" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "15"; "1"; "0"; "0"; "N/A"; "0";"16"
"15"; "2";"TILE_SANDSTONE_RED" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "15"; "2"; "0"; "0"; "N/A"; "0";"16"
"15"; "3";"TILE_SANDSTONE_DESERT" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "15"; "3"; "0"; "0"; "N/A"; "0";"16"
"15"; "4";"TILE_SANDSTONE_BLACK" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "15"; "4"; "0"; "0"; "N/A"; "0";"16"
"15"; "5";"TILE_SANDSTONE_GREEN" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "15"; "5"; "0"; "0"; "N/A"; "0";"16"
"16"; "0";"TILE_LANTERN_IRON_REGULAR"; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "267553792"; "16"; "0"; "0"; "0"; "N/A"; "0";"16"
"16"; "1";"TILE_SUNSTONE" ; "33587232"; "1"; "N/A";"rock"; "0"; "1"; "0"; "0"; "16"; "1"; "0"; "2"; "N/A"; "0";"16"
"16"; "2";"TILE_DAYLIGHT_CAPACITOR" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "0"; "0"; "16"; "2"; "0"; "3"; "N/A"; "0";"16"
"254"; "0";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "1";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "2";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "3";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "4";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "5";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "6";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "7";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "8";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "9";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "10";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "11";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "12";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "13";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "14";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "15";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"255"; "0";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "1";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "2";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "3";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "4";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "5";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "6";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "7";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "8";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "9";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "10";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "11";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "12";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "13";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "14";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "15";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"0"; "-1";"TILE_NULL" ;"1073741823"; "-1";"2600";"null"; "0"; "0"; "1"; "0"; "N/A"; "N/A"; "0"; "0"; "N/A"; "0";"16"
## Notes ##
# 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)
# dsty: density. As we are putting water an 1000, it is identical to specific gravity. [g/l]
# dlfn: dynamic luminosity function.
# 0-static, 1-torch flicker, 2-current global light (sun, star, moon), 3-daylight at noon,
# 4-slow breath, 5-pulsate
# mate: material, four-letter code
# fv: vertical friction (boolean)
## Illuminators ##
# Illuminator white: RGB(228,238,234), simulation of a halophosphate FL lamp (If you want high CRI lamp, collect a daylight!)
# Defalut torch : Y 64 x 0.55183 y 0.40966 (Planckian ~1 770 K); real candlelight colour taken from Spyder5 colorimeter (for I couldn't afford i1DisplayPro/Colormunki)
# Sunstone: Artificial sunlight, change colour over time in sync with sunlight. The light is set by game's code.
# Sunlight capacitor: daylight at noon. Set by game's code.
## Tiles ##
# 16 colour palette : games's 16-colour palette
# Magical ice: theoretical __metallic__ ice that might form under super-high pressure (> 5 TPa). Its density is a wild guess.
## References ##
# * Density of various woods : http://www.engineeringtoolbox.com/wood-density-d_40.html
# * Density of various phases of ice : http://www1.lsbu.ac.uk/water/ice_phases.html
Can't render this file because it contains an unexpected character in line 1 and column 18.

View File

@@ -21,7 +21,7 @@ object CSVFetcher {
csvString = StringBuffer() // reset buffer every time it called
readCSVasString(csvFilePath)
println("Reading CSV $csvFilePath")
println("[CSVFetcher] Reading CSV $csvFilePath")
val csvParser = CSVParser.parse(
csvString!!.toString(),

View File

@@ -22,7 +22,7 @@ object JsonFetcher {
jsonString = StringBuffer() // reset buffer every time it called
readJsonFileAsString(jsonFilePath)
println("Reading JSON $jsonFilePath")
println("[JsonFetcher] Reading JSON $jsonFilePath")
val jsonParser = JsonParser()
val jsonObj = jsonParser.parse(jsonString!!.toString()).asJsonObject
@@ -35,7 +35,7 @@ object JsonFetcher {
jsonString = StringBuffer() // reset buffer every time it called
readJsonFileAsString(jsonFile.canonicalPath)
println("Reading JSON ${jsonFile.path}")
println("[JsonFetcher] Reading JSON ${jsonFile.path}")
val jsonParser = JsonParser()
val jsonObj = jsonParser.parse(jsonString!!.toString()).asJsonObject

View File

@@ -1,13 +1,8 @@
package net.torvald.serialise
import net.torvald.CSVFetcher
import net.torvald.terrarum.itemproperties.ItemCodex
import net.torvald.terrarum.itemproperties.MaterialCodex
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.tileproperties.TileCodex
import java.io.IOException
import java.nio.file.Files
import java.nio.file.Path
import java.nio.file.Paths
import java.nio.file.StandardCopyOption
@@ -20,7 +15,7 @@ object WriteCSV {
val META_FILENAME_MAT = "worldinfo4"
fun write(saveDirectoryName: String): Boolean {
//val tileCSV = CSVFetcher.readCSVasString(TileCodex.CSV_PATH)
//val tileCSV = CSVFetcher.readCSVasString(BlockCodex.CSV_PATH)
//val itemCSV = CSVFetcher.readCSVasString(ItemCodex.CSV_PATH)
//val matCSV = CSVFetcher.readCSVasString(MaterialCodex.CSV_PATH)

View File

@@ -1,18 +1,8 @@
package net.torvald.serialise
import net.torvald.terrarum.mapgenerator.WorldGenerator
import net.torvald.terrarum.mapgenerator.RoguelikeRandomiser
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.itemproperties.ItemCodex
import net.torvald.terrarum.itemproperties.MaterialCodex
import net.torvald.terrarum.tileproperties.TileCodex
import org.apache.commons.codec.digest.DigestUtils
import java.io.FileInputStream
import java.io.File
import java.io.IOException
import net.torvald.terrarum.worldgenerator.WorldGenerator
import net.torvald.terrarum.worldgenerator.RoguelikeRandomiser
import java.nio.charset.Charset
import java.nio.file.*
import java.util.*
/**
* Created by minjaesong on 16-03-15.

View File

@@ -3,6 +3,7 @@ package net.torvald.terrarum
import net.torvald.CSVFetcher
import net.torvald.terrarum.itemproperties.InventoryItem
import net.torvald.terrarum.itemproperties.ItemCodex
import net.torvald.terrarum.blockproperties.BlockCodex
import org.apache.commons.csv.CSVFormat
import org.apache.commons.csv.CSVParser
import java.io.File
@@ -26,6 +27,10 @@ import javax.script.Invocable
*/
object ModMgr {
val groovyEngine = ScriptEngineManager().getEngineByExtension("groovy")!!
val groovyInvocable = groovyEngine as Invocable
data class ModuleMetadata(
val order: Int,
val isDir: Boolean,
@@ -80,6 +85,7 @@ object ModMgr {
}
// lists available engines
/*val manager = ScriptEngineManager()
val factories = manager.engineFactories
for (f in factories) {
@@ -131,24 +137,27 @@ object ModMgr {
object GameItemLoader {
object GameBlockLoader {
val blockPath = "blocks/"
@JvmStatic operator fun invoke(module: String) {
BlockCodex(module, blockPath + "blocks.csv")
}
}
object GameItemLoader {
val itemPath = "items/"
@JvmStatic operator fun invoke(module: String) {
val engine = ScriptEngineManager().getEngineByExtension("groovy")!!
val invocable = engine as Invocable
val csv = CSVFetcher.readFromModule(module, itemPath + "itemid.csv")
csv.forEach {
val filename = it["filename"].toString()
val script = getFile(module, itemPath + filename).readText()
val itemID = it["id"].toInt()
engine.eval(script)
ItemCodex[itemID] = invocable.invokeFunction("invoke", itemID) as InventoryItem
groovyEngine.eval(script)
ItemCodex[itemID] = groovyInvocable.invokeFunction("invoke", itemID) as InventoryItem
}
}
}
}

View File

@@ -4,7 +4,6 @@ import net.torvald.dataclass.CircularArray
import net.torvald.imagefont.GameFontBase
import net.torvald.random.HQRNG
import net.torvald.terrarum.Terrarum.delta
import net.torvald.terrarum.audio.AudioResourceLibrary
import net.torvald.terrarum.concurrent.ThreadParallel
import net.torvald.terrarum.console.*
import net.torvald.terrarum.gameactors.ActorHumanoid
@@ -13,36 +12,27 @@ import net.torvald.terrarum.gameactors.physicssolver.CollisionSolver
import net.torvald.terrarum.gamecontroller.GameController
import net.torvald.terrarum.gamecontroller.Key
import net.torvald.terrarum.gamecontroller.KeyToggler
import net.torvald.terrarum.itemproperties.InventoryItem
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.gameworld.WorldSimulator
import net.torvald.terrarum.gameworld.WorldTime
import net.torvald.terrarum.mapdrawer.LightmapRenderer
import net.torvald.terrarum.mapdrawer.LightmapRenderer.constructRGBFromInt
import net.torvald.terrarum.mapdrawer.TilesDrawer
import net.torvald.terrarum.mapdrawer.FeaturesDrawer
import net.torvald.terrarum.mapdrawer.FeaturesDrawer.TILE_SIZE
import net.torvald.terrarum.mapdrawer.MapCamera
import net.torvald.terrarum.mapgenerator.WorldGenerator
import net.torvald.terrarum.mapgenerator.RoguelikeRandomiser
import net.torvald.terrarum.tileproperties.TileCodex
import net.torvald.terrarum.tileproperties.TilePropUtil
import net.torvald.terrarum.tilestats.TileStats
import net.torvald.terrarum.worlddrawer.LightmapRenderer
import net.torvald.terrarum.worlddrawer.LightmapRenderer.constructRGBFromInt
import net.torvald.terrarum.worlddrawer.BlocksDrawer
import net.torvald.terrarum.worlddrawer.FeaturesDrawer
import net.torvald.terrarum.worlddrawer.FeaturesDrawer.TILE_SIZE
import net.torvald.terrarum.worlddrawer.WorldCamera
import net.torvald.terrarum.worldgenerator.WorldGenerator
import net.torvald.terrarum.worldgenerator.RoguelikeRandomiser
import net.torvald.terrarum.blockproperties.BlockPropUtil
import net.torvald.terrarum.blockstats.BlockStats
import net.torvald.terrarum.ui.*
import net.torvald.terrarum.weather.WeatherMixer
import org.lwjgl.opengl.GL11
import org.newdawn.slick.*
import org.newdawn.slick.fills.GradientFill
import org.newdawn.slick.geom.Rectangle
import org.newdawn.slick.state.BasicGameState
import org.newdawn.slick.state.StateBasedGame
import shader.Shader
import java.lang.management.ManagementFactory
import java.util.*
import java.util.concurrent.locks.Lock
import java.util.concurrent.locks.ReentrantLock
import javax.swing.JOptionPane
import kotlin.collections.HashMap
/**
* Created by minjaesong on 15-12-30.
@@ -256,11 +246,11 @@ class StateInGame : BasicGameState() {
///////////////////////////
// world-related updates //
///////////////////////////
TilePropUtil.dynamicLumFuncTickClock()
BlockPropUtil.dynamicLumFuncTickClock()
world.updateWorldTime(delta)
//WorldSimulator(player, delta)
WeatherMixer.update(gc, delta)
TileStats.update()
BlockStats.update()
if (!(CommandDict["setgl"] as SetGlobalLightOverride).lightOverride)
world.globalLight = constructRGBFromInt(
WeatherMixer.globalLightNow.redByte,
@@ -279,8 +269,8 @@ class StateInGame : BasicGameState() {
// camera-related updates //
////////////////////////////
FeaturesDrawer.update(gc, delta)
MapCamera.update()
TilesDrawer.update()
WorldCamera.update()
BlocksDrawer.update()
///////////////////////////
@@ -380,7 +370,7 @@ class StateInGame : BasicGameState() {
// make camara work
worldG.translate(-MapCamera.x.toFloat(), -MapCamera.y.toFloat())
worldG.translate(-WorldCamera.x.toFloat(), -WorldCamera.y.toFloat())
blendNormal()
@@ -388,12 +378,12 @@ class StateInGame : BasicGameState() {
/////////////////////////////
// draw map related stuffs //
/////////////////////////////
TilesDrawer.renderWall(worldG)
BlocksDrawer.renderWall(worldG)
actorsRenderBehind.forEach { it.drawBody(worldG) }
actorsRenderBehind.forEach { it.drawGlow(worldG) }
particlesContainer.forEach { it.drawBody(worldG) }
particlesContainer.forEach { it.drawGlow(worldG) }
TilesDrawer.renderTerrain(worldG)
BlocksDrawer.renderTerrain(worldG)
/////////////////
// draw actors //
@@ -410,8 +400,8 @@ class StateInGame : BasicGameState() {
/////////////////////////////
LightmapRenderer.renderLightMap()
TilesDrawer.renderFront(worldG, false)
// --> blendNormal() <-- by TilesDrawer.renderFront
BlocksDrawer.renderFront(worldG, false)
// --> blendNormal() <-- by BlocksDrawer.renderFront
FeaturesDrawer.render(gc, worldG)
@@ -648,12 +638,12 @@ class StateInGame : BasicGameState() {
)
private fun distToCameraSqr(a: ActorVisible) =
min(
(a.hitbox.posX - MapCamera.x).sqr() +
(a.hitbox.posY - MapCamera.y).sqr(),
(a.hitbox.posX - MapCamera.x + world.width * TILE_SIZE).sqr() +
(a.hitbox.posY - MapCamera.y).sqr(),
(a.hitbox.posX - MapCamera.x - world.width * TILE_SIZE).sqr() +
(a.hitbox.posY - MapCamera.y).sqr()
(a.hitbox.posX - WorldCamera.x).sqr() +
(a.hitbox.posY - WorldCamera.y).sqr(),
(a.hitbox.posX - WorldCamera.x + world.width * TILE_SIZE).sqr() +
(a.hitbox.posY - WorldCamera.y).sqr(),
(a.hitbox.posX - WorldCamera.x - world.width * TILE_SIZE).sqr() +
(a.hitbox.posY - WorldCamera.y).sqr()
)
/** whether the actor is within screen */

View File

@@ -5,7 +5,7 @@ import net.torvald.terrarum.itemproperties.IVKey
import net.torvald.terrarum.itemproperties.InventoryItem
import net.torvald.terrarum.itemproperties.ItemCodex
import net.torvald.terrarum.itemproperties.Material
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.ui.*
import org.newdawn.slick.*
import org.newdawn.slick.state.BasicGameState
@@ -42,7 +42,7 @@ class StateUITest : BasicGameState() {
// these are the test codes.
// Item properties must be pre-composed using CSV/JSON, and read and made into the item instance
// using factory/builder pattern. @see ItemCodex
actor.actorValue[AVKey.__PLAYER_QSPREFIX + "3"] = Tile.STONE
actor.actorValue[AVKey.__PLAYER_QSPREFIX + "3"] = Block.STONE
actor.inventory.add(object : InventoryItem() {
init {
@@ -81,7 +81,7 @@ class StateUITest : BasicGameState() {
actor.inventory.add(ItemCodex[16], 543)
actor.inventory.getByDynamicID(Tile.STONE)!!.item equipTo actor
actor.inventory.getByDynamicID(Block.STONE)!!.item equipTo actor
}
override fun init(container: GameContainer?, game: StateBasedGame?) {

View File

@@ -0,0 +1,152 @@
package net.torvald.terrarum.blockproperties
/**
* Created by minjaesong on 16-02-21.
*/
object Block {
val AIR = 0 // hard coded; this is the standard
val STONE = BlockCodex.idDamageToIndex(1, 0)
val STONE_QUARRIED = BlockCodex.idDamageToIndex(1, 1)
val STONE_TILE_WHITE = BlockCodex.idDamageToIndex(1, 2)
val STONE_BRICKS = BlockCodex.idDamageToIndex(1, 3)
val DIRT = BlockCodex.idDamageToIndex(2, 0)
val GRASS = BlockCodex.idDamageToIndex(2, 1)
val PLANK_NORMAL = BlockCodex.idDamageToIndex(3, 0)
val PLANK_EBONY = BlockCodex.idDamageToIndex(3, 1)
val PLANK_BIRCH = BlockCodex.idDamageToIndex(3, 2)
val PLANK_BLOODROSE = BlockCodex.idDamageToIndex(3, 3)
val TRUNK_NORMAL = BlockCodex.idDamageToIndex(4, 0)
val TRUNK_EBONY = BlockCodex.idDamageToIndex(4, 1)
val TRUNK_BIRCH = BlockCodex.idDamageToIndex(4, 2)
val TRUNK_BLOODROSE = BlockCodex.idDamageToIndex(4, 3)
val SAND = BlockCodex.idDamageToIndex(5, 0)
val SAND_WHITE = BlockCodex.idDamageToIndex(5, 1)
val SAND_RED = BlockCodex.idDamageToIndex(5, 2)
val SAND_DESERT = BlockCodex.idDamageToIndex(5, 3)
val SAND_BLACK = BlockCodex.idDamageToIndex(5, 4)
val SAND_GREEN = BlockCodex.idDamageToIndex(5, 5)
val GRAVEL = BlockCodex.idDamageToIndex(6, 0)
val GRAVEL_GREY = BlockCodex.idDamageToIndex(6, 1)
val ORE_COPPER = BlockCodex.idDamageToIndex(7, 0)
val ORE_IRON = BlockCodex.idDamageToIndex(7, 1)
val ORE_GOLD = BlockCodex.idDamageToIndex(7, 2)
val ORE_SILVER = BlockCodex.idDamageToIndex(7, 3)
val ORE_ILMENITE = BlockCodex.idDamageToIndex(7, 4)
val ORE_AURICHALCUM = BlockCodex.idDamageToIndex(7, 5)
val RAW_RUBY = BlockCodex.idDamageToIndex(8, 0)
val RAW_EMERALD = BlockCodex.idDamageToIndex(8, 1)
val RAW_SAPPHIRE = BlockCodex.idDamageToIndex(8, 2)
val RAW_TOPAZ = BlockCodex.idDamageToIndex(8, 3)
val RAW_DIAMOND = BlockCodex.idDamageToIndex(8, 4)
val RAW_AMETHYST = BlockCodex.idDamageToIndex(8, 5)
val SNOW = BlockCodex.idDamageToIndex(9, 0)
val ICE_FRAGILE = BlockCodex.idDamageToIndex(9, 1)
val ICE_NATURAL = BlockCodex.idDamageToIndex(9, 2)
val ICE_MAGICAL = BlockCodex.idDamageToIndex(9, 3)
val GLASS_CRUDE = BlockCodex.idDamageToIndex(9, 4)
val GLASS_CLEAN = BlockCodex.idDamageToIndex(9, 5)
val PLATFORM_STONE = BlockCodex.idDamageToIndex(10, 0)
val PLATFORM_WOODEN = BlockCodex.idDamageToIndex(10, 1)
val PLATFORM_EBONY = BlockCodex.idDamageToIndex(10, 2)
val PLATFORM_BIRCH = BlockCodex.idDamageToIndex(10, 3)
val PLATFORM_BLOODROSE = BlockCodex.idDamageToIndex(10, 4)
val TORCH = BlockCodex.idDamageToIndex(11, 0)
val TORCH_FROST = BlockCodex.idDamageToIndex(11, 1)
val TORCH_OFF = BlockCodex.idDamageToIndex(12, 0)
val TORCH_FROST_OFF = BlockCodex.idDamageToIndex(12, 1)
val ILLUMINATOR_WHITE = BlockCodex.idDamageToIndex(13, 0)
val ILLUMINATOR_YELLOW = BlockCodex.idDamageToIndex(13, 1)
val ILLUMINATOR_ORANGE = BlockCodex.idDamageToIndex(13, 2)
val ILLUMINATOR_RED = BlockCodex.idDamageToIndex(13, 3)
val ILLUMINATOR_FUCHSIA = BlockCodex.idDamageToIndex(13, 4)
val ILLUMINATOR_PURPLE = BlockCodex.idDamageToIndex(13, 5)
val ILLUMINATOR_BLUE = BlockCodex.idDamageToIndex(13, 6)
val ILLUMINATOR_CYAN = BlockCodex.idDamageToIndex(13, 7)
val ILLUMINATOR_GREEN = BlockCodex.idDamageToIndex(13, 8)
val ILLUMINATOR_GREEN_DARK = BlockCodex.idDamageToIndex(13, 9)
val ILLUMINATOR_BROWN = BlockCodex.idDamageToIndex(13, 10)
val ILLUMINATOR_TAN = BlockCodex.idDamageToIndex(13, 11)
val ILLUMINATOR_GREY_LIGHT = BlockCodex.idDamageToIndex(13, 12)
val ILLUMINATOR_GREY_MED = BlockCodex.idDamageToIndex(13, 13)
val ILLUMINATOR_GREY_DARK = BlockCodex.idDamageToIndex(13, 14)
val ILLUMINATOR_BLACK = BlockCodex.idDamageToIndex(13, 15)
val ILLUMINATOR_WHITE_OFF = BlockCodex.idDamageToIndex(14, 0)
val ILLUMINATOR_YELLOW_OFF = BlockCodex.idDamageToIndex(14, 1)
val ILLUMINATOR_ORANGE_OFF = BlockCodex.idDamageToIndex(14, 2)
val ILLUMINATOR_RED_OFF = BlockCodex.idDamageToIndex(14, 3)
val ILLUMINATOR_FUCHSIA_OFF = BlockCodex.idDamageToIndex(14, 4)
val ILLUMINATOR_PURPLE_OFF = BlockCodex.idDamageToIndex(14, 5)
val ILLUMINATOR_BLUE_OFF = BlockCodex.idDamageToIndex(14, 6)
val ILLUMINATOR_CYAN_OFF = BlockCodex.idDamageToIndex(14, 7)
val ILLUMINATOR_GREEN_OFF = BlockCodex.idDamageToIndex(14, 8)
val ILLUMINATOR_GREEN_DARK_OFF = BlockCodex.idDamageToIndex(14, 9)
val ILLUMINATOR_BROWN_OFF = BlockCodex.idDamageToIndex(14, 10)
val ILLUMINATOR_TAN_OFF = BlockCodex.idDamageToIndex(14, 11)
val ILLUMINATOR_GREY_LIGHT_OFF = BlockCodex.idDamageToIndex(14, 12)
val ILLUMINATOR_GREY_MED_OFF = BlockCodex.idDamageToIndex(14, 13)
val ILLUMINATOR_GREY_DARK_OFF = BlockCodex.idDamageToIndex(14, 14)
val ILLUMINATOR_BLACK_OFF = BlockCodex.idDamageToIndex(14, 15)
val SANDSTONE = BlockCodex.idDamageToIndex(15, 0)
val SANDSTONE_WHITE = BlockCodex.idDamageToIndex(15, 1)
val SANDSTONE_RED = BlockCodex.idDamageToIndex(15, 2)
val SANDSTONE_DESERT = BlockCodex.idDamageToIndex(15, 3)
val SANDSTONE_BLACK = BlockCodex.idDamageToIndex(15, 4)
val SANDSTONE_GREEN = BlockCodex.idDamageToIndex(15, 5)
val LANTERN = BlockCodex.idDamageToIndex(16, 0)
val SUNSTONE = BlockCodex.idDamageToIndex(16, 1)
val DAYLIGHT_CAPACITOR = BlockCodex.idDamageToIndex(16, 2)
val WATER_1 = BlockCodex.idDamageToIndex(255, 0)
val WATER_2 = BlockCodex.idDamageToIndex(255, 1)
val WATER_3 = BlockCodex.idDamageToIndex(255, 2)
val WATER_4 = BlockCodex.idDamageToIndex(255, 3)
val WATER_5 = BlockCodex.idDamageToIndex(255, 4)
val WATER_6 = BlockCodex.idDamageToIndex(255, 5)
val WATER_7 = BlockCodex.idDamageToIndex(255, 6)
val WATER_8 = BlockCodex.idDamageToIndex(255, 7)
val WATER_9 = BlockCodex.idDamageToIndex(255, 8)
val WATER_10 = BlockCodex.idDamageToIndex(255, 9)
val WATER_11 = BlockCodex.idDamageToIndex(255, 10)
val WATER_12 = BlockCodex.idDamageToIndex(255, 11)
val WATER_13 = BlockCodex.idDamageToIndex(255, 12)
val WATER_14 = BlockCodex.idDamageToIndex(255, 13)
val WATER_15 = BlockCodex.idDamageToIndex(255, 14)
val WATER = BlockCodex.idDamageToIndex(255, 15)
val LAVA_1 = BlockCodex.idDamageToIndex(254, 0)
val LAVA_2 = BlockCodex.idDamageToIndex(254, 1)
val LAVA_3 = BlockCodex.idDamageToIndex(254, 2)
val LAVA_4 = BlockCodex.idDamageToIndex(254, 3)
val LAVA_5 = BlockCodex.idDamageToIndex(254, 4)
val LAVA_6 = BlockCodex.idDamageToIndex(254, 5)
val LAVA_7 = BlockCodex.idDamageToIndex(254, 6)
val LAVA_8 = BlockCodex.idDamageToIndex(254, 7)
val LAVA_9 = BlockCodex.idDamageToIndex(254, 8)
val LAVA_10 = BlockCodex.idDamageToIndex(254, 9)
val LAVA_11 = BlockCodex.idDamageToIndex(254, 10)
val LAVA_12 = BlockCodex.idDamageToIndex(254, 11)
val LAVA_13 = BlockCodex.idDamageToIndex(254, 12)
val LAVA_14 = BlockCodex.idDamageToIndex(254, 13)
val LAVA_15 = BlockCodex.idDamageToIndex(254, 14)
val LAVA = BlockCodex.idDamageToIndex(254, 15)
val NULL = -1
}

View File

@@ -1,7 +1,6 @@
package net.torvald.terrarum.tileproperties
package net.torvald.terrarum.blockproperties
import net.torvald.CSVFetcher
import net.torvald.terrarum.ModMgr
import net.torvald.terrarum.gameworld.MapLayer
import net.torvald.terrarum.gameworld.PairedMapLayer
import org.apache.commons.csv.CSVRecord
@@ -11,26 +10,23 @@ import java.io.IOException
/**
* Created by minjaesong on 16-02-16.
*/
object TileCodex {
object BlockCodex {
private var tileProps: Array<TileProp>
private var blockProps: Array<BlockProp>
const val TILE_UNIQUE_MAX = MapLayer.RANGE * PairedMapLayer.RANGE
private val nullProp = TileProp()
private val nullProp = BlockProp()
init {
tileProps = Array<TileProp>(TILE_UNIQUE_MAX * 2, { TileProp() })
for (i in tileProps.indices) {
tileProps[i] = TileProp()
}
blockProps = Array<BlockProp>(TILE_UNIQUE_MAX * 2, { BlockProp() })
}
operator fun invoke(module: String, path: String) {
try {
// todo verify CSV using pre-calculated SHA256 hash
val records = CSVFetcher.readFromModule("basegame", "tiles/tileprop.csv")
val records = CSVFetcher.readFromModule(module, path)
println("[TileCodex] Building tile properties table")
println("[BlockCodex] Building block properties table")
records.forEach {
if (intVal(it, "sid") == -1) {
@@ -38,7 +34,7 @@ object TileCodex {
}
else {
setProp(
tileProps[idDamageToIndex(intVal(it, "id"), intVal(it, "sid"))], it
blockProps[idDamageToIndex(intVal(it, "id"), intVal(it, "sid"))], it
)
}
}
@@ -46,34 +42,33 @@ object TileCodex {
catch (e: IOException) {
e.printStackTrace()
}
}
fun get(index: Int, subID: Int): TileProp {
fun get(index: Int, subID: Int): BlockProp {
try {
tileProps[idDamageToIndex(index, subID)].id
blockProps[idDamageToIndex(index, subID)].id
}
catch (e: NullPointerException) {
throw NullPointerException("Tile prop with id $index and subID $subID does not exist.")
throw NullPointerException("Blockprop with id $index and subID $subID does not exist.")
}
return tileProps[idDamageToIndex(index, subID)]
return blockProps[idDamageToIndex(index, subID)]
}
operator fun get(rawIndex: Int?): TileProp {
if (rawIndex == null || rawIndex == Tile.NULL) {
operator fun get(rawIndex: Int?): BlockProp {
if (rawIndex == null || rawIndex == Block.NULL) {
return nullProp
}
try {
return tileProps[rawIndex]
return blockProps[rawIndex]
}
catch (e: NullPointerException) {
throw NullPointerException("Tile prop with raw id $rawIndex does not exist.")
throw NullPointerException("Blockprop with raw id $rawIndex does not exist.")
}
}
private fun setProp(prop: TileProp, record: CSVRecord) {
private fun setProp(prop: BlockProp, record: CSVRecord) {
prop.nameKey = record.get("name")
prop.id = idDamageToIndex(intVal(record, "id"), intVal(record, "sid"))

View File

@@ -1,12 +1,9 @@
package net.torvald.terrarum.tileproperties
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameworld.WorldTime
package net.torvald.terrarum.blockproperties
/**
* Created by minjaesong on 16-02-16.
*/
class TileProp {
class BlockProp {
var id: Int = 0
@@ -33,7 +30,7 @@ class TileProp {
set(value) {
field = value
}
get() = TilePropUtil.getDynamicLumFunc(field, dynamicLuminosityFunction)
get() = BlockPropUtil.getDynamicLumFunc(field, dynamicLuminosityFunction)
var drop: Int = 0
var dropDamage: Int = 0

View File

@@ -1,19 +1,18 @@
package net.torvald.terrarum.tileproperties
package net.torvald.terrarum.blockproperties
import com.jme3.math.FastMath
import net.torvald.random.HQRNG
import net.torvald.terrarum.Millisec
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameworld.WorldTime
import net.torvald.terrarum.mapdrawer.LightmapRenderer
import net.torvald.terrarum.worlddrawer.LightmapRenderer
import net.torvald.terrarum.toInt
import net.torvald.terrarum.weather.WeatherMixer
import org.newdawn.slick.Color
/**
* Created by minjaesong on 16-06-16.
*/
object TilePropUtil {
object BlockPropUtil {
var flickerFuncX: Millisec = 0 // in milliseconds; saves current status (time) of func
val flickerFuncDomain: Millisec = 100 // time between two noise sample, in milliseconds
val flickerFuncRange = 0.012f // intensity [0, 1]

View File

@@ -1,10 +1,9 @@
package net.torvald.terrarum.tilestats
package net.torvald.terrarum.blockstats
import net.torvald.terrarum.gameactors.Player
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.gameworld.MapLayer
import net.torvald.terrarum.mapdrawer.TilesDrawer
import net.torvald.terrarum.mapdrawer.FeaturesDrawer
import net.torvald.terrarum.worlddrawer.BlocksDrawer
import net.torvald.terrarum.worlddrawer.FeaturesDrawer
import net.torvald.terrarum.Terrarum
import com.jme3.math.FastMath
@@ -13,7 +12,7 @@ import java.util.Arrays
/**
* Created by minjaesong on 16-02-01.
*/
object TileStats {
object BlockStats {
private val tilestat = ShortArray(GameWorld.TILES_SUPPORTED)
@@ -40,8 +39,8 @@ object TileStats {
val for_x_start = noZoomCameraX / TSIZE
val for_y_start = noZoomCameraY / TSIZE
val for_y_end = TilesDrawer.clampHTile(for_y_start + (renderHeight / TSIZE) + 2)
val for_x_end = TilesDrawer.clampWTile(for_x_start + (renderWidth / TSIZE) + 2)
val for_y_end = BlocksDrawer.clampHTile(for_y_start + (renderHeight / TSIZE) + 2)
val for_x_end = BlocksDrawer.clampWTile(for_x_start + (renderWidth / TSIZE) + 2)
for (y in for_y_start..for_y_end - 1) {
for (x in for_x_start..for_x_end - 1) {

View File

@@ -3,7 +3,7 @@ package net.torvald.terrarum.console
import net.torvald.colourutil.Col4096
import net.torvald.RasterWriter
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.blockproperties.Block
import java.io.*
import java.util.HashMap
@@ -19,42 +19,42 @@ internal object ExportMap : ConsoleCommand {
private val colorTable = HashMap<Int, Col4096>()
init {
colorTable.put(Tile.AIR, Col4096(0xCEF))
colorTable.put(Tile.STONE, Col4096(0x888))
colorTable.put(Tile.DIRT, Col4096(0x753))
colorTable.put(Tile.GRASS, Col4096(0x472))
colorTable.put(Block.AIR, Col4096(0xCEF))
colorTable.put(Block.STONE, Col4096(0x888))
colorTable.put(Block.DIRT, Col4096(0x753))
colorTable.put(Block.GRASS, Col4096(0x472))
colorTable.put(Tile.ORE_COPPER, Col4096(0x6A8))
colorTable.put(Tile.ORE_IRON, Col4096(0xC75))
colorTable.put(Tile.ORE_GOLD, Col4096(0xA87))
colorTable.put(Tile.ORE_ILMENITE, Col4096(0x8AB))
colorTable.put(Tile.ORE_AURICHALCUM, Col4096(0xD92))
colorTable.put(Tile.ORE_SILVER, Col4096(0xDDD))
colorTable.put(Block.ORE_COPPER, Col4096(0x6A8))
colorTable.put(Block.ORE_IRON, Col4096(0xC75))
colorTable.put(Block.ORE_GOLD, Col4096(0xA87))
colorTable.put(Block.ORE_ILMENITE, Col4096(0x8AB))
colorTable.put(Block.ORE_AURICHALCUM, Col4096(0xD92))
colorTable.put(Block.ORE_SILVER, Col4096(0xDDD))
colorTable.put(Tile.RAW_DIAMOND, Col4096(0x2BF))
colorTable.put(Tile.RAW_RUBY, Col4096(0xB10))
colorTable.put(Tile.RAW_EMERALD, Col4096(0x0B1))
colorTable.put(Tile.RAW_SAPPHIRE, Col4096(0x01B))
colorTable.put(Tile.RAW_TOPAZ, Col4096(0xC70))
colorTable.put(Tile.RAW_AMETHYST, Col4096(0x70C))
colorTable.put(Block.RAW_DIAMOND, Col4096(0x2BF))
colorTable.put(Block.RAW_RUBY, Col4096(0xB10))
colorTable.put(Block.RAW_EMERALD, Col4096(0x0B1))
colorTable.put(Block.RAW_SAPPHIRE, Col4096(0x01B))
colorTable.put(Block.RAW_TOPAZ, Col4096(0xC70))
colorTable.put(Block.RAW_AMETHYST, Col4096(0x70C))
colorTable.put(Tile.WATER, Col4096(0x038))
colorTable.put(Tile.LAVA, Col4096(0xF50))
colorTable.put(Block.WATER, Col4096(0x038))
colorTable.put(Block.LAVA, Col4096(0xF50))
colorTable.put(Tile.SAND, Col4096(0xDDB))
colorTable.put(Tile.SAND_WHITE, Col4096(0xFFD))
colorTable.put(Tile.SAND_RED, Col4096(0xA32))
colorTable.put(Tile.SAND_DESERT, Col4096(0xEDB))
colorTable.put(Tile.SAND_BLACK, Col4096(0x444))
colorTable.put(Tile.SAND_GREEN, Col4096(0x9A6))
colorTable.put(Block.SAND, Col4096(0xDDB))
colorTable.put(Block.SAND_WHITE, Col4096(0xFFD))
colorTable.put(Block.SAND_RED, Col4096(0xA32))
colorTable.put(Block.SAND_DESERT, Col4096(0xEDB))
colorTable.put(Block.SAND_BLACK, Col4096(0x444))
colorTable.put(Block.SAND_GREEN, Col4096(0x9A6))
colorTable.put(Tile.GRAVEL, Col4096(0x664))
colorTable.put(Tile.GRAVEL_GREY, Col4096(0x999))
colorTable.put(Block.GRAVEL, Col4096(0x664))
colorTable.put(Block.GRAVEL_GREY, Col4096(0x999))
colorTable.put(Tile.ICE_NATURAL, Col4096(0x9AB))
colorTable.put(Tile.ICE_MAGICAL, Col4096(0x7AC))
colorTable.put(Tile.ICE_FRAGILE, Col4096(0x6AF))
colorTable.put(Tile.SNOW, Col4096(0xCDE))
colorTable.put(Block.ICE_NATURAL, Col4096(0x9AB))
colorTable.put(Block.ICE_MAGICAL, Col4096(0x7AC))
colorTable.put(Block.ICE_FRAGILE, Col4096(0x6AF))
colorTable.put(Block.SNOW, Col4096(0xCDE))
}
override fun execute(args: Array<String>) {

View File

@@ -1,6 +1,6 @@
package net.torvald.terrarum.console
import net.torvald.terrarum.mapdrawer.LightmapRenderer
import net.torvald.terrarum.worlddrawer.LightmapRenderer
import net.torvald.terrarum.Terrarum
/**

View File

@@ -1,11 +1,8 @@
package net.torvald.terrarum.console
import net.torvald.terrarum.gameactors.Actor
import net.torvald.terrarum.gameactors.ActorWithPhysics
import net.torvald.terrarum.gameactors.PhysTestBall
import net.torvald.terrarum.mapdrawer.TilesDrawer
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.mapdrawer.MapCamera
import net.torvald.terrarum.worlddrawer.WorldCamera
import org.dyn4j.geometry.Vector2
/**
@@ -25,8 +22,8 @@ internal object SpawnPhysTestBall : ConsoleCommand {
val ball = PhysTestBall()
ball.setPosition(
(mouseX + MapCamera.x).toDouble(),
(mouseY + MapCamera.y).toDouble()
(mouseX + WorldCamera.x).toDouble(),
(mouseY + WorldCamera.y).toDouble()
)
ball.elasticity = elasticity
ball.applyForce(Vector2(xvel, yvel))
@@ -38,8 +35,8 @@ internal object SpawnPhysTestBall : ConsoleCommand {
val ball = PhysTestBall()
ball.setPosition(
(mouseX + MapCamera.x).toDouble(),
(mouseY + MapCamera.y).toDouble()
(mouseX + WorldCamera.x).toDouble(),
(mouseY + WorldCamera.y).toDouble()
)
ball.elasticity = elasticity

View File

@@ -1,7 +1,6 @@
package net.torvald.terrarum.console
import net.torvald.terrarum.StateInGame
import net.torvald.terrarum.mapdrawer.FeaturesDrawer
import net.torvald.terrarum.worlddrawer.FeaturesDrawer
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.ActorWithPhysics

View File

@@ -1,6 +1,6 @@
package net.torvald.terrarum.console
import net.torvald.terrarum.mapdrawer.LightmapRenderer
import net.torvald.terrarum.worlddrawer.LightmapRenderer
/**
* Created by minjaesong on 16-09-07.

View File

@@ -6,12 +6,11 @@ import net.torvald.terrarum.console.Echo
import net.torvald.terrarum.console.SetAV
import net.torvald.terrarum.gameactors.Actor
import net.torvald.terrarum.gameactors.ActorWithPhysics
import net.torvald.terrarum.mapdrawer.FeaturesDrawer
import net.torvald.terrarum.worlddrawer.FeaturesDrawer
import java.awt.BorderLayout
import java.awt.GridLayout
import java.awt.event.MouseAdapter
import java.awt.event.MouseEvent
import java.awt.event.MouseListener
import javax.swing.*
/**

View File

@@ -1,10 +1,8 @@
package net.torvald.terrarum.gameactors
import com.jme3.math.FastMath
import net.torvald.terrarum.Millisec
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.faction.Faction
import net.torvald.terrarum.gamecontroller.EnumKeyFunc
import net.torvald.terrarum.itemproperties.InventoryItem
import net.torvald.terrarum.itemproperties.Material
import net.torvald.terrarum.realestate.LandUtil
@@ -38,11 +36,11 @@ open class ActorHumanoid(birth: GameDate, death: GameDate? = null)
override var houseDesignation: ArrayList<Long>? = ArrayList()
override fun addHouseTile(x: Int, y: Int) {
if (houseDesignation != null) houseDesignation!!.add(LandUtil.getTileAddr(x, y))
if (houseDesignation != null) houseDesignation!!.add(LandUtil.getBlockAddr(x, y))
}
override fun removeHouseTile(x: Int, y: Int) {
if (houseDesignation != null) houseDesignation!!.remove(LandUtil.getTileAddr(x, y))
if (houseDesignation != null) houseDesignation!!.remove(LandUtil.getBlockAddr(x, y))
}
override fun clearHouseDesignation() {

View File

@@ -4,12 +4,12 @@ import com.jme3.math.FastMath
import net.torvald.point.Point2d
import net.torvald.terrarum.*
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.mapdrawer.FeaturesDrawer
import net.torvald.terrarum.tileproperties.TileCodex
import net.torvald.terrarum.worlddrawer.FeaturesDrawer
import net.torvald.terrarum.blockproperties.BlockCodex
import net.torvald.spriteanimation.SpriteAnimation
import net.torvald.terrarum.mapdrawer.MapCamera
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.tileproperties.TileProp
import net.torvald.terrarum.worlddrawer.WorldCamera
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.blockproperties.BlockProp
import org.dyn4j.geometry.Vector2
import org.newdawn.slick.GameContainer
import org.newdawn.slick.Graphics
@@ -763,7 +763,7 @@ open class ActorWithPhysics(renderOrder: RenderOrder, val immobileBody: Boolean
for (y in tyStart..tyEnd) {
for (x in txStart..txEnd) {
val tile = world.getTileFromTerrain(x, y)
if (TileCodex[tile].isSolid)
if (BlockCodex[tile].isSolid)
return true
}
}
@@ -805,7 +805,7 @@ open class ActorWithPhysics(renderOrder: RenderOrder, val immobileBody: Boolean
}
// evaluate
if (TileCodex[world.getTileFromTerrain(tileX, tileY)].isFluid) {
if (BlockCodex[world.getTileFromTerrain(tileX, tileY)].isFluid) {
contactAreaCounter += 1
}
}
@@ -814,17 +814,17 @@ open class ActorWithPhysics(renderOrder: RenderOrder, val immobileBody: Boolean
}
private fun getTileFriction(tile: Int) =
if (immobileBody && tile == Tile.AIR)
TileCodex[Tile.AIR].friction.frictionToMult().div(1000)
if (immobileBody && tile == Block.AIR)
BlockCodex[Block.AIR].friction.frictionToMult().div(1000)
.times(if (!grounded) elasticity else 1.0)
else
TileCodex[tile].friction.frictionToMult()
BlockCodex[tile].friction.frictionToMult()
/** about stopping
* for about get moving, see updateMovementControl */
private fun setHorizontalFriction() {
val friction = if (isPlayerNoClip)
BASE_FRICTION * TileCodex[Tile.STONE].friction.frictionToMult()
BASE_FRICTION * BlockCodex[Block.STONE].friction.frictionToMult()
else {
// TODO status quo if !submerged else linearBlend(feetFriction, bodyFriction, submergedRatio)
BASE_FRICTION * if (grounded) feetFriction else bodyFriction
@@ -853,7 +853,7 @@ open class ActorWithPhysics(renderOrder: RenderOrder, val immobileBody: Boolean
private fun setVerticalFriction() {
val friction = if (isPlayerNoClip)
BASE_FRICTION * TileCodex[Tile.STONE].friction.frictionToMult()
BASE_FRICTION * BlockCodex[Block.STONE].friction.frictionToMult()
else
BASE_FRICTION * bodyFriction
@@ -913,8 +913,8 @@ open class ActorWithPhysics(renderOrder: RenderOrder, val immobileBody: Boolean
var friction = 0.0
forEachOccupyingTileNum {
// get max friction
if (getTileFriction(it ?: Tile.AIR) > friction)
friction = getTileFriction(it ?: Tile.AIR)
if (getTileFriction(it ?: Block.AIR) > friction)
friction = getTileFriction(it ?: Block.AIR)
}
return friction
@@ -924,8 +924,8 @@ open class ActorWithPhysics(renderOrder: RenderOrder, val immobileBody: Boolean
var friction = 0.0
forEachFeetTileNum {
// get max friction
if (getTileFriction(it ?: Tile.AIR) > friction)
friction = getTileFriction(it ?: Tile.AIR)
if (getTileFriction(it ?: Block.AIR) > friction)
friction = getTileFriction(it ?: Block.AIR)
}
return friction
@@ -1056,7 +1056,7 @@ open class ActorWithPhysics(renderOrder: RenderOrder, val immobileBody: Boolean
val offsetY = spriteGlow!!.cellHeight * scale - hitbox.height - hitboxTranslateY * scale - 2
if (MapCamera.xCentre > leftsidePadding && centrePosPoint.x <= rightsidePadding) {
if (WorldCamera.xCentre > leftsidePadding && centrePosPoint.x <= rightsidePadding) {
// camera center neg, actor center pos
spriteGlow!!.render(g,
(hitbox.posX - offsetX).toFloat() + world.width * TILE_SIZE,
@@ -1064,7 +1064,7 @@ open class ActorWithPhysics(renderOrder: RenderOrder, val immobileBody: Boolean
(scale).toFloat()
)
}
else if (MapCamera.xCentre < rightsidePadding && centrePosPoint.x >= leftsidePadding) {
else if (WorldCamera.xCentre < rightsidePadding && centrePosPoint.x >= leftsidePadding) {
// camera center pos, actor center neg
spriteGlow!!.render(g,
(hitbox.posX - offsetX).toFloat() - world.width * TILE_SIZE,
@@ -1082,8 +1082,8 @@ open class ActorWithPhysics(renderOrder: RenderOrder, val immobileBody: Boolean
}
}
val leftsidePadding = world.width.times(TILE_SIZE) - MapCamera.width.ushr(1)
val rightsidePadding = MapCamera.width.ushr(1)
val leftsidePadding = world.width.times(TILE_SIZE) - WorldCamera.width.ushr(1)
val rightsidePadding = WorldCamera.width.ushr(1)
override fun drawBody(g: Graphics) {
if (isVisible && sprite != null) {
@@ -1097,7 +1097,7 @@ open class ActorWithPhysics(renderOrder: RenderOrder, val immobileBody: Boolean
val offsetY = sprite!!.cellHeight * scale - hitbox.height - hitboxTranslateY * scale - 2
if (MapCamera.xCentre > leftsidePadding && centrePosPoint.x <= rightsidePadding) {
if (WorldCamera.xCentre > leftsidePadding && centrePosPoint.x <= rightsidePadding) {
// camera center neg, actor center pos
sprite!!.render(g,
(hitbox.posX - offsetX).toFloat() + world.width * TILE_SIZE,
@@ -1105,7 +1105,7 @@ open class ActorWithPhysics(renderOrder: RenderOrder, val immobileBody: Boolean
(scale).toFloat()
)
}
else if (MapCamera.xCentre < rightsidePadding && centrePosPoint.x >= leftsidePadding) {
else if (WorldCamera.xCentre < rightsidePadding && centrePosPoint.x >= leftsidePadding) {
// camera center pos, actor center neg
sprite!!.render(g,
(hitbox.posX - offsetX).toFloat() - world.width * TILE_SIZE,
@@ -1188,11 +1188,11 @@ open class ActorWithPhysics(renderOrder: RenderOrder, val immobileBody: Boolean
return tiles.forEach(consumer)
}
private fun forEachOccupyingTile(consumer: (TileProp?) -> Unit) {
val tileProps = ArrayList<TileProp?>()
private fun forEachOccupyingTile(consumer: (BlockProp?) -> Unit) {
val tileProps = ArrayList<BlockProp?>()
for (y in tilewiseHitbox.posY.toInt()..tilewiseHitbox.endPointY.toInt()) {
for (x in tilewiseHitbox.posX.toInt()..tilewiseHitbox.endPointX.toInt()) {
tileProps.add(TileCodex[world.getTileFromTerrain(x, y)])
tileProps.add(BlockCodex[world.getTileFromTerrain(x, y)])
}
}
@@ -1212,14 +1212,14 @@ open class ActorWithPhysics(renderOrder: RenderOrder, val immobileBody: Boolean
return tiles.forEach(consumer)
}
private fun forEachFeetTile(consumer: (TileProp?) -> Unit) {
val tileProps = ArrayList<TileProp?>()
private fun forEachFeetTile(consumer: (BlockProp?) -> Unit) {
val tileProps = ArrayList<BlockProp?>()
// offset 1 pixel to the down so that friction would work
val y = nextHitbox.endPointY.plus(1.0).div(TILE_SIZE).floorInt()
for (x in tilewiseHitbox.posX.toInt()..tilewiseHitbox.endPointX.toInt()) {
tileProps.add(TileCodex[world.getTileFromTerrain(x, y)])
tileProps.add(BlockCodex[world.getTileFromTerrain(x, y)])
}
return tileProps.forEach(consumer)

View File

@@ -2,7 +2,7 @@ package net.torvald.terrarum.gameactors
import net.torvald.terrarum.itemproperties.InventoryItem
import net.torvald.terrarum.itemproperties.ItemCodex
import net.torvald.terrarum.tileproperties.TileCodex
import net.torvald.terrarum.blockproperties.BlockCodex
import org.newdawn.slick.GameContainer
import org.newdawn.slick.Graphics
@@ -17,8 +17,8 @@ class DroppedItem(private val item: InventoryItem) : ActorWithPhysics(Actor.Rend
isVisible = true
avBaseMass = if (item.dynamicID < TileCodex.TILE_UNIQUE_MAX)
TileCodex[item.dynamicID].density / 1000.0
avBaseMass = if (item.dynamicID < BlockCodex.TILE_UNIQUE_MAX)
BlockCodex[item.dynamicID].density / 1000.0
else
ItemCodex[item.dynamicID].mass

View File

@@ -1,8 +1,7 @@
package net.torvald.terrarum.gameactors
import net.torvald.spriteanimation.SpriteAnimation
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.tileproperties.TileCodex
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.blockproperties.BlockCodex
import java.util.*
/**
@@ -11,7 +10,7 @@ import java.util.*
class FixtureTikiTorch : FixtureBase(), Luminous {
override var luminosity: Int
get() = TileCodex[Tile.TORCH].luminosity
get() = BlockCodex[Block.TORCH].luminosity
set(value) {
throw UnsupportedOperationException()
}

View File

@@ -1,6 +1,5 @@
package net.torvald.terrarum.gameactors
import net.torvald.terrarum.mapgenerator.RoguelikeRandomiser
import java.util.*
/**

View File

@@ -2,9 +2,9 @@ package net.torvald.terrarum.gameactors
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.ActorWithPhysics.Companion.SI_TO_GAME_ACC
import net.torvald.terrarum.mapdrawer.FeaturesDrawer.TILE_SIZE
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.tileproperties.TileCodex
import net.torvald.terrarum.worlddrawer.FeaturesDrawer.TILE_SIZE
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.blockproperties.BlockCodex
import org.dyn4j.geometry.Vector2
import org.newdawn.slick.GameContainer
import org.newdawn.slick.Graphics
@@ -43,10 +43,10 @@ open class ParticleBase(renderOrder: Actor.RenderOrder, maxLifeTime: Int? = null
lifetimeCounter += delta
if (velocity.isZero || lifetimeCounter >= lifetimeMax ||
// simple stuck check
TileCodex[Terrarum.ingame!!.world.getTileFromTerrain(
BlockCodex[Terrarum.ingame!!.world.getTileFromTerrain(
hitbox.pointedX.div(TILE_SIZE).floorInt(),
hitbox.pointedY.div(TILE_SIZE).floorInt()
) ?: Tile.STONE].isSolid) {
) ?: Block.STONE].isSolid) {
flagDespawn = true
}

View File

@@ -1,10 +1,9 @@
package net.torvald.terrarum.gameactors
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.mapdrawer.FeaturesDrawer.TILE_SIZE
import net.torvald.terrarum.mapgenerator.RoguelikeRandomiser
import net.torvald.terrarum.worlddrawer.FeaturesDrawer.TILE_SIZE
import net.torvald.terrarum.worldgenerator.RoguelikeRandomiser
import org.newdawn.slick.Color
import org.newdawn.slick.GameContainer
import org.newdawn.slick.Graphics
/**

View File

@@ -1,10 +1,8 @@
package net.torvald.terrarum.gameactors
import net.torvald.spriteanimation.SpriteAnimation
import net.torvald.terrarum.ModMgr
import net.torvald.terrarum.gameactors.ActorHumanoid
import net.torvald.terrarum.gameactors.ai.LuaAIWrapper
import net.torvald.terrarum.mapdrawer.FeaturesDrawer
import net.torvald.terrarum.worlddrawer.FeaturesDrawer
/**
* Created by minjaesong on 16-03-25.

View File

@@ -1,21 +1,13 @@
package net.torvald.terrarum.gameactors
import net.torvald.JsonFetcher
import net.torvald.terrarum.gameactors.faction.Faction
import net.torvald.spriteanimation.SpriteAnimation
import com.google.gson.JsonObject
import net.torvald.terrarum.ActorValue
import net.torvald.terrarum.ModMgr
import net.torvald.terrarum.gameactors.ActorHumanoid
import net.torvald.terrarum.gameactors.faction.FactionFactory
import net.torvald.terrarum.itemproperties.ItemCodex
import net.torvald.terrarum.mapdrawer.FeaturesDrawer
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.worlddrawer.FeaturesDrawer
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.to10bit
import net.torvald.terrarum.toInt
import org.newdawn.slick.Color
import org.newdawn.slick.SlickException
import java.io.IOException
/**
* Created by minjaesong on 16-02-03.
@@ -80,12 +72,12 @@ object PlayerBuilderSigrid {
// Test fill up inventory
val tiles = arrayOf(
Tile.AIR, Tile.DIRT, Tile.GLASS_CRUDE,
Tile.GRASS, Tile.GRAVEL, Tile.ICE_MAGICAL, Tile.LANTERN,
Tile.PLANK_BIRCH, Tile.PLANK_BLOODROSE, Tile.PLANK_EBONY, Tile.PLANK_NORMAL,
Tile.SANDSTONE, Tile.SANDSTONE_BLACK, Tile.SANDSTONE_GREEN,
Tile.SANDSTONE_RED, Tile.STONE, Tile.STONE_BRICKS,
Tile.STONE_QUARRIED, Tile.STONE_TILE_WHITE, Tile.TORCH
Block.AIR, Block.DIRT, Block.GLASS_CRUDE,
Block.GRASS, Block.GRAVEL, Block.ICE_MAGICAL, Block.LANTERN,
Block.PLANK_BIRCH, Block.PLANK_BLOODROSE, Block.PLANK_EBONY, Block.PLANK_NORMAL,
Block.SANDSTONE, Block.SANDSTONE_BLACK, Block.SANDSTONE_GREEN,
Block.SANDSTONE_RED, Block.STONE, Block.STONE_BRICKS,
Block.STONE_QUARRIED, Block.STONE_TILE_WHITE, Block.TORCH
)
tiles.forEach { p.addItem(it, 999) }
p.inventory.add(ItemCodex.ITEM_STATIC.first)

View File

@@ -1,8 +1,7 @@
package net.torvald.terrarum.gameactors
import net.torvald.terrarum.ModMgr
import net.torvald.terrarum.gameactors.ai.LuaAIWrapper
import net.torvald.terrarum.mapdrawer.FeaturesDrawer
import net.torvald.terrarum.worlddrawer.FeaturesDrawer
/**
* Created by SKYHi14 on 2017-02-10.

View File

@@ -1,11 +1,9 @@
package net.torvald.terrarum.gameactors
import net.torvald.colourutil.CIELabUtil.darkerLab
import net.torvald.point.Point2d
import net.torvald.spriteanimation.SpriteAnimation
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.tileproperties.TileCodex
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.blockproperties.BlockCodex
import org.dyn4j.geometry.Vector2
import org.newdawn.slick.Color
import org.newdawn.slick.GameContainer
@@ -75,7 +73,7 @@ open class ProjectileSimple(
lifetimeCounter += delta
if (ccdCollided || grounded || lifetimeCounter >= lifetimeMax ||
// stuck check
TileCodex[Terrarum.ingame!!.world.getTileFromTerrain(feetPosTile[0], feetPosTile[1]) ?: Tile.STONE].isSolid
BlockCodex[Terrarum.ingame!!.world.getTileFromTerrain(feetPosTile[0], feetPosTile[1]) ?: Block.STONE].isSolid
) {
flagDespawn()
}

View File

@@ -4,9 +4,9 @@ import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.AIControlled
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.gameactors.ActorWithPhysics
import net.torvald.terrarum.mapdrawer.LightmapRenderer
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.tileproperties.TileCodex
import net.torvald.terrarum.worlddrawer.LightmapRenderer
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.blockproperties.BlockCodex
import org.luaj.vm2.*
import org.luaj.vm2.lib.OneArgFunction
import org.luaj.vm2.lib.ZeroArgFunction
@@ -239,7 +239,7 @@ internal class AILuaAPI(g: Globals, actor: ActorWithPhysics) {
luatable[y - feetTilePos[1]] = LuaTable()
for (x in feetTilePos[0] - radius..feetTilePos[0] + radius) {
val tile = TileCodex[Terrarum.ingame!!.world.getTileFromTerrain(x, y) ?: Tile.NULL]
val tile = BlockCodex[Terrarum.ingame!!.world.getTileFromTerrain(x, y) ?: Block.NULL]
val solidity = tile.isSolid.toInt()
val liquidity = tile.isFluid.toInt()
val gravity = tile.isFallable.toInt()
@@ -283,8 +283,8 @@ internal class AILuaAPI(g: Globals, actor: ActorWithPhysics) {
// search down
var searchDownCounter = 0
while (true) {
val tile = Terrarum.ingame!!.world.getTileFromTerrain(x, feetTilePos[1] + searchDownCounter) ?: Tile.STONE
if (TileCodex[tile].isSolid || searchDownCounter >= searchDownLimit) {
val tile = Terrarum.ingame!!.world.getTileFromTerrain(x, feetTilePos[1] + searchDownCounter) ?: Block.STONE
if (BlockCodex[tile].isSolid || searchDownCounter >= searchDownLimit) {
luatable[x - feetTilePos[0]] = searchDownCounter
break
}
@@ -326,8 +326,8 @@ internal class AILuaAPI(g: Globals, actor: ActorWithPhysics) {
// search up
var searchUpCounter = 0
while (true) {
val tile = Terrarum.ingame!!.world.getTileFromTerrain(x, feetTilePos[1] - searchUpCounter) ?: Tile.STONE
if (TileCodex[tile].isSolid || searchUpCounter >= searchUpLimit) {
val tile = Terrarum.ingame!!.world.getTileFromTerrain(x, feetTilePos[1] - searchUpCounter) ?: Block.STONE
if (BlockCodex[tile].isSolid || searchUpCounter >= searchUpLimit) {
luatable[x - feetTilePos[0]] = searchUpCounter
break
}
@@ -368,8 +368,8 @@ internal class AILuaAPI(g: Globals, actor: ActorWithPhysics) {
// search up
var searchUpCounter = 0
while (true) {
val tile = Terrarum.ingame!!.world.getTileFromTerrain(x, feetTilePos[1] - searchUpCounter) ?: Tile.STONE
if (!TileCodex[tile].isSolid || searchUpCounter >= searchUpLimit) {
val tile = Terrarum.ingame!!.world.getTileFromTerrain(x, feetTilePos[1] - searchUpCounter) ?: Block.STONE
if (!BlockCodex[tile].isSolid || searchUpCounter >= searchUpLimit) {
luatable[x - feetTilePos[0]] = searchUpCounter
break
}

View File

@@ -1,15 +1,10 @@
package net.torvald.terrarum.gamecontroller
import net.torvald.terrarum.mapdrawer.TilesDrawer
import net.torvald.terrarum.mapdrawer.FeaturesDrawer
import net.torvald.terrarum.worlddrawer.FeaturesDrawer
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.*
import net.torvald.terrarum.itemproperties.InventoryItem
import net.torvald.terrarum.mapdrawer.MapCamera
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.tileproperties.TileCodex
import net.torvald.terrarum.ui.UIHandler
import org.dyn4j.geometry.Vector2
import net.torvald.terrarum.worlddrawer.WorldCamera
import org.newdawn.slick.GameContainer
import org.newdawn.slick.Input
@@ -25,10 +20,10 @@ object GameController {
/** position of the mouse (pixelwise) relative to the world (also, currently pointing world-wise coordinate, if the world coordinate is pixel-wise) */
val mouseX: Float
get() = (MapCamera.x + Terrarum.appgc.input.mouseX / (ingame.screenZoom ?: 1f))
get() = (WorldCamera.x + Terrarum.appgc.input.mouseX / (ingame.screenZoom ?: 1f))
/** position of the mouse (pixelwise) relative to the world (also, currently pointing world-wise coordinate, if the world coordinate is pixel-wise)*/
val mouseY: Float
get() = (MapCamera.y + Terrarum.appgc.input.mouseY / (ingame.screenZoom ?: 1f))
get() = (WorldCamera.y + Terrarum.appgc.input.mouseY / (ingame.screenZoom ?: 1f))
/** currently pointing tile coordinate */
val mouseTileX: Int
get() = (mouseX / FeaturesDrawer.TILE_SIZE).floorInt()

View File

@@ -2,12 +2,11 @@
package net.torvald.terrarum.gameworld
import net.torvald.terrarum.realestate.LandUtil
import net.torvald.terrarum.tileproperties.TileCodex
import net.torvald.terrarum.blockproperties.BlockCodex
import org.dyn4j.geometry.Vector2
import org.newdawn.slick.SlickException
typealias TileAddress = Long
typealias TileDamage = Float
typealias BlockAddress = Long
typealias BlockDamage = Float
class GameWorld(val width: Int, val height: Int) {
@@ -25,8 +24,8 @@ class GameWorld(val width: Int, val height: Int) {
val spawnX: Int
val spawnY: Int
val wallDamages = HashMap<TileAddress, TileDamage>()
val terrainDamages = HashMap<TileAddress, TileDamage>()
val wallDamages = HashMap<BlockAddress, BlockDamage>()
val terrainDamages = HashMap<BlockAddress, BlockDamage>()
//public World physWorld = new World( new Vec2(0, -TerrarumMain.game.gravitationalAccel) );
//physics
@@ -155,13 +154,13 @@ class GameWorld(val width: Int, val height: Int) {
fun setTileWall(x: Int, y: Int, tile: Byte, damage: Int) {
layerWall.setTile(x fmod width, y, tile)
layerWallLowBits.setData(x fmod width, y, damage)
wallDamages.remove(LandUtil.getTileAddr(x, y))
wallDamages.remove(LandUtil.getBlockAddr(x, y))
}
fun setTileTerrain(x: Int, y: Int, tile: Byte, damage: Int) {
layerTerrain.setTile(x fmod width, y, tile)
layerTerrainLowBits.setData(x fmod width, y, damage)
terrainDamages.remove(LandUtil.getTileAddr(x, y))
terrainDamages.remove(LandUtil.getBlockAddr(x, y))
}
fun setTileWire(x: Int, y: Int, tile: Byte) {
@@ -232,7 +231,7 @@ class GameWorld(val width: Int, val height: Int) {
*/
fun inflictTerrainDamage(x: Int, y: Int, damage: Double): Boolean {
val damage = damage.toFloat()
val addr = LandUtil.getTileAddr(x, y)
val addr = LandUtil.getBlockAddr(x, y)
//println("[GameWorld] ($x, $y) Damage: $damage")
@@ -249,7 +248,7 @@ class GameWorld(val width: Int, val height: Int) {
//println("[GameWorld] accumulated damage: ${terrainDamages[addr]}")
// remove tile from the world
if (terrainDamages[addr] ?: 0f >= TileCodex[getTileFromTerrain(x, y)].strength) {
if (terrainDamages[addr] ?: 0f >= BlockCodex[getTileFromTerrain(x, y)].strength) {
setTileTerrain(x, y, 0)
return true
}
@@ -257,14 +256,14 @@ class GameWorld(val width: Int, val height: Int) {
return false
}
fun getTerrainDamage(x: Int, y: Int): Float =
terrainDamages[LandUtil.getTileAddr(x, y)] ?: 0f
terrainDamages[LandUtil.getBlockAddr(x, y)] ?: 0f
/**
* @return true if block is broken
*/
fun inflictWallDamage(x: Int, y: Int, damage: Double): Boolean {
val damage = damage.toFloat()
val addr = LandUtil.getTileAddr(x, y)
val addr = LandUtil.getBlockAddr(x, y)
if (wallDamages[addr] == null) { // add new
wallDamages[addr] = damage
@@ -277,7 +276,7 @@ class GameWorld(val width: Int, val height: Int) {
}
// remove tile from the world
if (wallDamages[addr]!! >= TileCodex[getTileFromWall(x, y)].strength) {
if (wallDamages[addr]!! >= BlockCodex[getTileFromWall(x, y)].strength) {
setTileWall(x, y, 0)
return true
}
@@ -285,7 +284,7 @@ class GameWorld(val width: Int, val height: Int) {
return false
}
fun getWallDamage(x: Int, y: Int): Float =
wallDamages[LandUtil.getTileAddr(x, y)] ?: 0f
wallDamages[LandUtil.getBlockAddr(x, y)] ?: 0f
companion object {

View File

@@ -1,16 +1,12 @@
package net.torvald.terrarum.gameworld
import net.torvald.random.HQRNG
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.AnyPlayer
import net.torvald.terrarum.gameactors.HistoricalFigure
import net.torvald.terrarum.gameactors.Player
import net.torvald.terrarum.gameactors.roundInt
import net.torvald.terrarum.gameworld.WorldSimulator.isSolid
import net.torvald.terrarum.mapdrawer.TilesDrawer
import net.torvald.terrarum.mapdrawer.FeaturesDrawer
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.tileproperties.TileCodex
import net.torvald.terrarum.worlddrawer.BlocksDrawer
import net.torvald.terrarum.worlddrawer.FeaturesDrawer
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.blockproperties.BlockCodex
import org.newdawn.slick.Color
import org.newdawn.slick.Graphics
@@ -74,10 +70,10 @@ object WorldSimulator {
/////////////////////////////////////////////////////////////
for (y in updateYFrom..updateYTo) {
for (x in updateXFrom..updateXTo) {
val tile = world.getTileFromTerrain(x, y) ?: Tile.STONE
val tileBottom = world.getTileFromTerrain(x, y + 1) ?: Tile.STONE
val tileLeft = world.getTileFromTerrain(x - 1, y) ?: Tile.STONE
val tileRight = world.getTileFromTerrain(x + 1, y) ?: Tile.STONE
val tile = world.getTileFromTerrain(x, y) ?: Block.STONE
val tileBottom = world.getTileFromTerrain(x, y + 1) ?: Block.STONE
val tileLeft = world.getTileFromTerrain(x - 1, y) ?: Block.STONE
val tileRight = world.getTileFromTerrain(x + 1, y) ?: Block.STONE
if (tile.isFluid()) {
// move down if not obstructed
@@ -137,21 +133,21 @@ object WorldSimulator {
fun displaceFallables(delta: Int) {
for (y in updateYFrom..updateYTo) {
for (x in updateXFrom..updateXTo) {
val tile = world.getTileFromTerrain(x, y) ?: Tile.STONE
val tileBelow = world.getTileFromTerrain(x, y + 1) ?: Tile.STONE
val tile = world.getTileFromTerrain(x, y) ?: Block.STONE
val tileBelow = world.getTileFromTerrain(x, y + 1) ?: Block.STONE
if (tile.isFallable()) {
// displace fluid. This statement must precede isSolid()
if (tileBelow.isFluid()) {
// remove tileThis to create air pocket
world.setTileTerrain(x, y, Tile.AIR)
world.setTileTerrain(x, y, Block.AIR)
pour(x, y, drain(x, y, tileBelow.fluidLevel().toInt()))
// place our tile
world.setTileTerrain(x, y + 1, tile)
}
else if (!tileBelow.isSolid()) {
world.setTileTerrain(x, y, Tile.AIR)
world.setTileTerrain(x, y, Block.AIR)
world.setTileTerrain(x, y + 1, tile)
}
}
@@ -166,7 +162,7 @@ object WorldSimulator {
for (y in 0..fluidMap.size - 1) {
for (x in 0..fluidMap[0].size - 1) {
val data = fluidMap[y][x]
if (TilesDrawer.tileInCamera(x + updateXFrom, y + updateYFrom)) {
if (BlocksDrawer.tileInCamera(x + updateXFrom, y + updateYFrom)) {
if (data == 0.toByte())
g.color = colourNone
else
@@ -197,7 +193,7 @@ object WorldSimulator {
private fun worldToFluidMap(world: GameWorld) {
for (y in updateYFrom..updateYTo) {
for (x in updateXFrom..updateXTo) {
val tile = world.getTileFromTerrain(x, y) ?: Tile.STONE
val tile = world.getTileFromTerrain(x, y) ?: Block.STONE
if (tile.isFluid()) {
fluidMap[y - updateYFrom][x - updateXFrom] = tile.fluidLevel().toByte()
fluidTypeMap[y - updateYFrom][x - updateXFrom] = tile.fluidType().toByte()
@@ -217,13 +213,13 @@ object WorldSimulator {
}
}
fun Int.isFluid() = TileCodex[this].isFluid
fun Int.isSolid() = this.fluidLevel() == FLUID_MAX || TileCodex[this].isSolid
//fun Int.viscosity() = TileCodex[this].
fun Int.isFluid() = BlockCodex[this].isFluid
fun Int.isSolid() = this.fluidLevel() == FLUID_MAX || BlockCodex[this].isSolid
//fun Int.viscosity() = BlockCodex[this].
fun Int.fluidLevel() = if (!this.isFluid()) 0 else (this % FLUID_MAX).plus(1)
fun Int.fluidType() = (this / 16) // 0 - 255, 255 being water, 254 being lava
fun Int.isEven() = (this and 0x01) == 0
fun Int.isFallable() = TileCodex[this].isFallable
fun Int.isFallable() = BlockCodex[this].isFallable
private fun placeFluid(world: GameWorld, x: Int, y: Int, fluidType: Byte, amount: Int) {
if (world.layerTerrain.isInBound(x, y)) {
@@ -231,7 +227,7 @@ object WorldSimulator {
world.setTileTerrain(x, y, fluidType, amount - 1)
}
else if (amount == 0 && world.getTileFromTerrain(x, y)!!.isFluid()) {
world.setTileTerrain(x, y, Tile.AIR)
world.setTileTerrain(x, y, Block.AIR)
}
}
}

View File

@@ -202,42 +202,42 @@ abstract class InventoryItem : Comparable<InventoryItem>, Cloneable {
}
object EquipPosition {
const val NULL = -1
@JvmStatic val NULL = -1
const val ARMOUR = 0
@JvmStatic val ARMOUR = 0
// you can add alias to address something like LEGGINGS, BREASTPLATE, RINGS, NECKLACES, etc.
const val BODY_BACK = 1 // wings, jetpacks, etc.
const val BODY_BUFF2 = 2
const val BODY_BUFF3 = 3
const val BODY_BUFF4 = 4
const val BODY_BUFF5 = 5
const val BODY_BUFF6 = 6
const val BODY_BUFF7 = 7
const val BODY_BUFF8 = 8
@JvmStatic val BODY_BACK = 1 // wings, jetpacks, etc.
@JvmStatic val BODY_BUFF2 = 2
@JvmStatic val BODY_BUFF3 = 3
@JvmStatic val BODY_BUFF4 = 4
@JvmStatic val BODY_BUFF5 = 5
@JvmStatic val BODY_BUFF6 = 6
@JvmStatic val BODY_BUFF7 = 7
@JvmStatic val BODY_BUFF8 = 8
const val HAND_GRIP = 9
const val HAND_GAUNTLET = 10
const val HAND_BUFF2 = 11
const val HAND_BUFF3 = 12
const val HAND_BUFF4 = 13
@JvmStatic val HAND_GRIP = 9
@JvmStatic val HAND_GAUNTLET = 10
@JvmStatic val HAND_BUFF2 = 11
@JvmStatic val HAND_BUFF3 = 12
@JvmStatic val HAND_BUFF4 = 13
const val FOOTWEAR = 14
@JvmStatic val FOOTWEAR = 14
const val HEADGEAR = 15
@JvmStatic val HEADGEAR = 15
const val INDEX_MAX = 15
@JvmStatic val INDEX_MAX = 15
}
object Category {
const val WEAPON = "weapon"
const val TOOL = "tool"
const val ARMOUR = "armour"
const val GENERIC = "generic"
const val POTION = "potion"
const val MAGIC = "magic"
const val BLOCK = "block"
const val WALL = "wall"
const val MISC = "misc"
@JvmStatic val WEAPON = "weapon"
@JvmStatic val TOOL = "tool"
@JvmStatic val ARMOUR = "armour"
@JvmStatic val GENERIC = "generic"
@JvmStatic val POTION = "potion"
@JvmStatic val MAGIC = "magic"
@JvmStatic val BLOCK = "block"
@JvmStatic val WALL = "wall"
@JvmStatic val MISC = "misc"
}
override public fun clone(): InventoryItem {

View File

@@ -4,15 +4,13 @@ import net.torvald.point.Point2d
import net.torvald.terrarum.KVHashMap
import net.torvald.terrarum.gameactors.CanBeAnItem
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.gameactors.ActorWithPhysics
import net.torvald.terrarum.gamecontroller.mouseTileX
import net.torvald.terrarum.gamecontroller.mouseTileY
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.mapdrawer.TilesDrawer
import net.torvald.terrarum.mapdrawer.TilesDrawer.wallOverlayColour
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.tileproperties.TileCodex
import net.torvald.terrarum.worlddrawer.BlocksDrawer
import net.torvald.terrarum.worlddrawer.BlocksDrawer.wallOverlayColour
import net.torvald.terrarum.blockproperties.BlockCodex
import org.newdawn.slick.GameContainer
import org.newdawn.slick.Image
import java.util.*
@@ -41,16 +39,17 @@ object ItemCodex {
init {
// tile items (blocks and walls are the same thing basically)
// blocks.csvs are loaded by ModMgr beforehand
// block items (blocks and walls are the same thing basically)
for (i in ITEM_TILES + ITEM_WALLS) {
itemCodex[i] = object : InventoryItem() {
override val originalID = i
override var dynamicID = i
override val isUnique: Boolean = false
override var baseMass: Double = TileCodex[i].density / 1000.0
override var baseMass: Double = BlockCodex[i].density / 1000.0
override var baseToolSize: Double? = null
override var equipPosition = EquipPosition.HAND_GRIP
override val originalName = TileCodex[i % ITEM_WALLS.first].nameKey
override val originalName = BlockCodex[i % ITEM_WALLS.first].nameKey
override var stackable = true
override var inventoryCategory = Category.BLOCK
override var isDynamic = false
@@ -138,7 +137,7 @@ object ItemCodex {
}
// return false if there's no tile
if (Tile.AIR == Terrarum.ingame!!.world.getTileFromTerrain(gc.mouseTileX, gc.mouseTileY))
if (Block.AIR == Terrarum.ingame!!.world.getTileFromTerrain(gc.mouseTileX, gc.mouseTileY))
return false
@@ -192,17 +191,17 @@ object ItemCodex {
fun getItemImage(item: InventoryItem): Image {
// terrain
if (item.originalID in ITEM_TILES) {
return TilesDrawer.tilesTerrain.getSubImage((item.dynamicID % 16) * 16, item.originalID / 16)
return BlocksDrawer.tilesTerrain.getSubImage((item.dynamicID % 16) * 16, item.originalID / 16)
}
// wall
else if (item.originalID in ITEM_WALLS) {
val img = TilesDrawer.tilesTerrain.getSubImage((item.originalID % 16) * 16, item.originalID / 16)
val img = BlocksDrawer.tilesTerrain.getSubImage((item.originalID % 16) * 16, item.originalID / 16)
img.setImageColor(wallOverlayColour.r, wallOverlayColour.g, wallOverlayColour.b)
return img
}
// wire
else if (item.originalID in ITEM_WIRES) {
return TilesDrawer.tilesWire.getSubImage((item.originalID % 16) * 16, item.originalID / 16)
return BlocksDrawer.tilesWire.getSubImage((item.originalID % 16) * 16, item.originalID / 16)
}
else
return itemImagePlaceholder

View File

@@ -2,16 +2,16 @@ package net.torvald.terrarum.realestate
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.faction.FactionCodex
import net.torvald.terrarum.gameworld.TileAddress
import net.torvald.terrarum.gameworld.BlockAddress
/**
* Created by minjaesong on 16-03-27.
*/
object LandUtil {
fun getTileAddr(x: Int, y: Int): TileAddress =
fun getBlockAddr(x: Int, y: Int): BlockAddress =
(Terrarum.ingame!!.world.width * y).toLong() + x
fun resolveAbsoluteTileNumber(t: TileAddress): Pair<Int, Int> =
fun resolveAbsoluteBlockNumber(t: BlockAddress): Pair<Int, Int> =
Pair((t % Terrarum.ingame!!.world.width).toInt(), (t / Terrarum.ingame!!.world.width).toInt())
/**

View File

@@ -1,6 +1,5 @@
package net.torvald.terrarum.realestate
import java.io.Serializable
import java.util.*
/**
@@ -8,20 +7,20 @@ import java.util.*
*/
object RealEstateCodex {
/**
* HashMap<Absolute tile number, Actor/Faction ID>
* HashMap<Absolute block number, Actor/Faction ID>
*
* Note that a tile can have only ONE owner (as an Actor or Faction ID)
* Note that a block can have only ONE owner (as an Actor or Faction ID)
*/
private var ownershipRegistry: HashMap<Long, Int> = HashMap()
fun setOwner(tileX: Int, tileY: Int, refID: Int) {
ownershipRegistry[LandUtil.getTileAddr(tileX, tileY)] = refID
ownershipRegistry[LandUtil.getBlockAddr(tileX, tileY)] = refID
}
fun removeOwner(tileX: Int, tileY: Int) {
ownershipRegistry.remove(LandUtil.getTileAddr(tileX, tileY))
ownershipRegistry.remove(LandUtil.getBlockAddr(tileX, tileY))
}
fun getOwner(tileX: Int, tileY: Int): Int? =
ownershipRegistry[LandUtil.getTileAddr(tileX, tileY)]
ownershipRegistry[LandUtil.getBlockAddr(tileX, tileY)]
}

View File

@@ -1,154 +0,0 @@
package net.torvald.terrarum.tileproperties
import net.torvald.terrarum.Terrarum
/**
* Created by minjaesong on 16-02-21.
*/
object Tile {
val AIR = 0 // hard coded; this is the standard
val STONE = TileCodex.idDamageToIndex(1, 0)
val STONE_QUARRIED = TileCodex.idDamageToIndex(1, 1)
val STONE_TILE_WHITE = TileCodex.idDamageToIndex(1, 2)
val STONE_BRICKS = TileCodex.idDamageToIndex(1, 3)
val DIRT = TileCodex.idDamageToIndex(2, 0)
val GRASS = TileCodex.idDamageToIndex(2, 1)
val PLANK_NORMAL = TileCodex.idDamageToIndex(3, 0)
val PLANK_EBONY = TileCodex.idDamageToIndex(3, 1)
val PLANK_BIRCH = TileCodex.idDamageToIndex(3, 2)
val PLANK_BLOODROSE = TileCodex.idDamageToIndex(3, 3)
val TRUNK_NORMAL = TileCodex.idDamageToIndex(4, 0)
val TRUNK_EBONY = TileCodex.idDamageToIndex(4, 1)
val TRUNK_BIRCH = TileCodex.idDamageToIndex(4, 2)
val TRUNK_BLOODROSE = TileCodex.idDamageToIndex(4, 3)
val SAND = TileCodex.idDamageToIndex(5, 0)
val SAND_WHITE = TileCodex.idDamageToIndex(5, 1)
val SAND_RED = TileCodex.idDamageToIndex(5, 2)
val SAND_DESERT = TileCodex.idDamageToIndex(5, 3)
val SAND_BLACK = TileCodex.idDamageToIndex(5, 4)
val SAND_GREEN = TileCodex.idDamageToIndex(5, 5)
val GRAVEL = TileCodex.idDamageToIndex(6, 0)
val GRAVEL_GREY = TileCodex.idDamageToIndex(6, 1)
val ORE_COPPER = TileCodex.idDamageToIndex(7, 0)
val ORE_IRON = TileCodex.idDamageToIndex(7, 1)
val ORE_GOLD = TileCodex.idDamageToIndex(7, 2)
val ORE_SILVER = TileCodex.idDamageToIndex(7, 3)
val ORE_ILMENITE = TileCodex.idDamageToIndex(7, 4)
val ORE_AURICHALCUM = TileCodex.idDamageToIndex(7, 5)
val RAW_RUBY = TileCodex.idDamageToIndex(8, 0)
val RAW_EMERALD = TileCodex.idDamageToIndex(8, 1)
val RAW_SAPPHIRE = TileCodex.idDamageToIndex(8, 2)
val RAW_TOPAZ = TileCodex.idDamageToIndex(8, 3)
val RAW_DIAMOND = TileCodex.idDamageToIndex(8, 4)
val RAW_AMETHYST = TileCodex.idDamageToIndex(8, 5)
val SNOW = TileCodex.idDamageToIndex(9, 0)
val ICE_FRAGILE = TileCodex.idDamageToIndex(9, 1)
val ICE_NATURAL = TileCodex.idDamageToIndex(9, 2)
val ICE_MAGICAL = TileCodex.idDamageToIndex(9, 3)
val GLASS_CRUDE = TileCodex.idDamageToIndex(9, 4)
val GLASS_CLEAN = TileCodex.idDamageToIndex(9, 5)
val PLATFORM_STONE = TileCodex.idDamageToIndex(10, 0)
val PLATFORM_WOODEN = TileCodex.idDamageToIndex(10, 1)
val PLATFORM_EBONY = TileCodex.idDamageToIndex(10, 2)
val PLATFORM_BIRCH = TileCodex.idDamageToIndex(10, 3)
val PLATFORM_BLOODROSE = TileCodex.idDamageToIndex(10, 4)
val TORCH = TileCodex.idDamageToIndex(11, 0)
val TORCH_FROST = TileCodex.idDamageToIndex(11, 1)
val TORCH_OFF = TileCodex.idDamageToIndex(12, 0)
val TORCH_FROST_OFF = TileCodex.idDamageToIndex(12, 1)
val ILLUMINATOR_WHITE = TileCodex.idDamageToIndex(13, 0)
val ILLUMINATOR_YELLOW = TileCodex.idDamageToIndex(13, 1)
val ILLUMINATOR_ORANGE = TileCodex.idDamageToIndex(13, 2)
val ILLUMINATOR_RED = TileCodex.idDamageToIndex(13, 3)
val ILLUMINATOR_FUCHSIA = TileCodex.idDamageToIndex(13, 4)
val ILLUMINATOR_PURPLE = TileCodex.idDamageToIndex(13, 5)
val ILLUMINATOR_BLUE = TileCodex.idDamageToIndex(13, 6)
val ILLUMINATOR_CYAN = TileCodex.idDamageToIndex(13, 7)
val ILLUMINATOR_GREEN = TileCodex.idDamageToIndex(13, 8)
val ILLUMINATOR_GREEN_DARK = TileCodex.idDamageToIndex(13, 9)
val ILLUMINATOR_BROWN = TileCodex.idDamageToIndex(13, 10)
val ILLUMINATOR_TAN = TileCodex.idDamageToIndex(13, 11)
val ILLUMINATOR_GREY_LIGHT = TileCodex.idDamageToIndex(13, 12)
val ILLUMINATOR_GREY_MED = TileCodex.idDamageToIndex(13, 13)
val ILLUMINATOR_GREY_DARK = TileCodex.idDamageToIndex(13, 14)
val ILLUMINATOR_BLACK = TileCodex.idDamageToIndex(13, 15)
val ILLUMINATOR_WHITE_OFF = TileCodex.idDamageToIndex(14, 0)
val ILLUMINATOR_YELLOW_OFF = TileCodex.idDamageToIndex(14, 1)
val ILLUMINATOR_ORANGE_OFF = TileCodex.idDamageToIndex(14, 2)
val ILLUMINATOR_RED_OFF = TileCodex.idDamageToIndex(14, 3)
val ILLUMINATOR_FUCHSIA_OFF = TileCodex.idDamageToIndex(14, 4)
val ILLUMINATOR_PURPLE_OFF = TileCodex.idDamageToIndex(14, 5)
val ILLUMINATOR_BLUE_OFF = TileCodex.idDamageToIndex(14, 6)
val ILLUMINATOR_CYAN_OFF = TileCodex.idDamageToIndex(14, 7)
val ILLUMINATOR_GREEN_OFF = TileCodex.idDamageToIndex(14, 8)
val ILLUMINATOR_GREEN_DARK_OFF = TileCodex.idDamageToIndex(14, 9)
val ILLUMINATOR_BROWN_OFF = TileCodex.idDamageToIndex(14, 10)
val ILLUMINATOR_TAN_OFF = TileCodex.idDamageToIndex(14, 11)
val ILLUMINATOR_GREY_LIGHT_OFF = TileCodex.idDamageToIndex(14, 12)
val ILLUMINATOR_GREY_MED_OFF = TileCodex.idDamageToIndex(14, 13)
val ILLUMINATOR_GREY_DARK_OFF = TileCodex.idDamageToIndex(14, 14)
val ILLUMINATOR_BLACK_OFF = TileCodex.idDamageToIndex(14, 15)
val SANDSTONE = TileCodex.idDamageToIndex(15, 0)
val SANDSTONE_WHITE = TileCodex.idDamageToIndex(15, 1)
val SANDSTONE_RED = TileCodex.idDamageToIndex(15, 2)
val SANDSTONE_DESERT = TileCodex.idDamageToIndex(15, 3)
val SANDSTONE_BLACK = TileCodex.idDamageToIndex(15, 4)
val SANDSTONE_GREEN = TileCodex.idDamageToIndex(15, 5)
val LANTERN = TileCodex.idDamageToIndex(16, 0)
val SUNSTONE = TileCodex.idDamageToIndex(16, 1)
val DAYLIGHT_CAPACITOR = TileCodex.idDamageToIndex(16, 2)
val WATER_1 = TileCodex.idDamageToIndex(255, 0)
val WATER_2 = TileCodex.idDamageToIndex(255, 1)
val WATER_3 = TileCodex.idDamageToIndex(255, 2)
val WATER_4 = TileCodex.idDamageToIndex(255, 3)
val WATER_5 = TileCodex.idDamageToIndex(255, 4)
val WATER_6 = TileCodex.idDamageToIndex(255, 5)
val WATER_7 = TileCodex.idDamageToIndex(255, 6)
val WATER_8 = TileCodex.idDamageToIndex(255, 7)
val WATER_9 = TileCodex.idDamageToIndex(255, 8)
val WATER_10 = TileCodex.idDamageToIndex(255, 9)
val WATER_11 = TileCodex.idDamageToIndex(255, 10)
val WATER_12 = TileCodex.idDamageToIndex(255, 11)
val WATER_13 = TileCodex.idDamageToIndex(255, 12)
val WATER_14 = TileCodex.idDamageToIndex(255, 13)
val WATER_15 = TileCodex.idDamageToIndex(255, 14)
val WATER = TileCodex.idDamageToIndex(255, 15)
val LAVA_1 = TileCodex.idDamageToIndex(254, 0)
val LAVA_2 = TileCodex.idDamageToIndex(254, 1)
val LAVA_3 = TileCodex.idDamageToIndex(254, 2)
val LAVA_4 = TileCodex.idDamageToIndex(254, 3)
val LAVA_5 = TileCodex.idDamageToIndex(254, 4)
val LAVA_6 = TileCodex.idDamageToIndex(254, 5)
val LAVA_7 = TileCodex.idDamageToIndex(254, 6)
val LAVA_8 = TileCodex.idDamageToIndex(254, 7)
val LAVA_9 = TileCodex.idDamageToIndex(254, 8)
val LAVA_10 = TileCodex.idDamageToIndex(254, 9)
val LAVA_11 = TileCodex.idDamageToIndex(254, 10)
val LAVA_12 = TileCodex.idDamageToIndex(254, 11)
val LAVA_13 = TileCodex.idDamageToIndex(254, 12)
val LAVA_14 = TileCodex.idDamageToIndex(254, 13)
val LAVA_15 = TileCodex.idDamageToIndex(254, 14)
val LAVA = TileCodex.idDamageToIndex(254, 15)
val NULL = -1
}

View File

@@ -1,180 +0,0 @@
package net.torvald.terrarum.tileproperties
/**
* Created by minjaesong on 16-09-11.
*/
object TilePropCSVFUfufufufufufffnufuuufufu {
operator fun invoke() = """
"id";"sid";"name" ; "opacity";"strength";"dsty";"mate";"fluid";"solid";"wall"; "lumcolor";"drop";"ddmg";"fall";"dlfn";"vscs";"fv";"friction"
"0"; "0";"TILE_AIR" ; "8396808"; "1"; "1";"null"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "N/A"; "0";"4"
"1"; "0";"TILE_STONE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "1"; "0"; "1"; "0"; "0"; "0"; "N/A"; "0";"16"
"1"; "1";"TILE_STONE_QUARRIED" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "1"; "0"; "1"; "1"; "0"; "0"; "N/A"; "0";"16"
"1"; "2";"TILE_STONE_TILE_WHITE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "1"; "0"; "1"; "2"; "0"; "0"; "N/A"; "0";"16"
"1"; "3";"TILE_STONE_BRICKS" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "1"; "0"; "1"; "3"; "0"; "0"; "N/A"; "0";"16"
"2"; "0";"TILE_DIRT" ; "33587232"; "24";"1400";"dirt"; "0"; "1"; "1"; "0"; "2"; "0"; "0"; "0"; "N/A"; "0";"16"
"2"; "1";"TILE_GRASS" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "1"; "0"; "0"; "N/A"; "0";"16"
"2"; "2";"TILE_FOLIAGE_GREEN" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "2"; "0"; "0"; "N/A"; "0";"16"
"2"; "3";"TILE_FOLIAGE_LIME" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "3"; "0"; "0"; "N/A"; "0";"16"
"2"; "4";"TILE_FOLIAGE_GOLD" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "4"; "0"; "0"; "N/A"; "0";"16"
"2"; "5";"TILE_FOLIAGE_RED" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "5"; "0"; "0"; "N/A"; "0";"16"
"2"; "6";"TILE_FOLIAGE_ICEBLUE" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "6"; "0"; "0"; "N/A"; "0";"16"
"2"; "7";"TILE_FOLIAGE_PURPLE" ; "33587232"; "24";"1400";"grss"; "0"; "1"; "1"; "0"; "2"; "7"; "0"; "0"; "N/A"; "0";"16"
"3"; "0";"TILE_PLANK_NORMAL" ; "33587232"; "16"; "740";"wood"; "0"; "1"; "1"; "0"; "3"; "0"; "0"; "0"; "N/A"; "0";"16"
"3"; "1";"TILE_PLANK_EBONY" ; "33587232"; "19";"1200";"wood"; "0"; "1"; "1"; "0"; "3"; "1"; "0"; "0"; "N/A"; "0";"16"
"3"; "2";"TILE_PLANK_BIRCH" ; "33587232"; "15"; "670";"wood"; "0"; "1"; "1"; "0"; "3"; "2"; "0"; "0"; "N/A"; "0";"16"
"3"; "3";"TILE_PLANK_BLOODROSE" ; "33587232"; "17"; "900";"wood"; "0"; "1"; "1"; "0"; "3"; "3"; "0"; "0"; "N/A"; "0";"16"
"4"; "0";"TILE_TRUNK_NORMAL" ; "33587232"; "16"; "740";"wood"; "0"; "1"; "0"; "0"; "3"; "0"; "0"; "0"; "N/A"; "0";"16"
"4"; "1";"TILE_TRUNK_EBONY" ; "33587232"; "19";"1200";"wood"; "0"; "1"; "0"; "0"; "3"; "1"; "0"; "0"; "N/A"; "0";"16"
"4"; "2";"TILE_TRUNK_BIRCH" ; "33587232"; "15"; "670";"wood"; "0"; "1"; "0"; "0"; "3"; "2"; "0"; "0"; "N/A"; "0";"16"
"4"; "3";"TILE_TRUNK_BLOODROSE" ; "33587232"; "17"; "900";"wood"; "0"; "1"; "0"; "0"; "3"; "3"; "0"; "0"; "N/A"; "0";"16"
"5"; "0";"TILE_SAND" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "5"; "0"; "1"; "0"; "N/A"; "0";"16"
"5"; "1";"TILE_SAND_WHITE" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "5"; "1"; "1"; "0"; "N/A"; "0";"16"
"5"; "2";"TILE_SAND_RED" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "5"; "2"; "1"; "0"; "N/A"; "0";"16"
"5"; "3";"TILE_SAND_DESERT" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "5"; "3"; "1"; "0"; "N/A"; "0";"16"
"5"; "4";"TILE_SAND_BLACK" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "5"; "4"; "1"; "0"; "N/A"; "0";"16"
"5"; "5";"TILE_SAND_GREEN" ; "33587232"; "24";"2400";"sand"; "0"; "1"; "0"; "0"; "5"; "5"; "1"; "0"; "N/A"; "0";"16"
"6"; "0";"TILE_GRAVEL" ; "33587232"; "24";"2400";"grvl"; "0"; "1"; "0"; "0"; "6"; "0"; "1"; "0"; "N/A"; "0";"16"
"6"; "1";"TILE_GRAVEL_GREY" ; "33587232"; "24";"2400";"grvl"; "0"; "1"; "0"; "0"; "6"; "1"; "1"; "0"; "N/A"; "0";"16"
"7"; "0";"TILE_ORE_MALACHITE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "7"; "0"; "0"; "0"; "N/A"; "0";"16"
"7"; "1";"TILE_ORE_HEMATITE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "7"; "1"; "0"; "0"; "N/A"; "0";"16"
"7"; "2";"TILE_ORE_NATURAL_GOLD" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "7"; "2"; "0"; "0"; "N/A"; "0";"16"
"7"; "3";"TILE_ORE_NATURAL_SILVER" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "7"; "3"; "0"; "0"; "N/A"; "0";"16"
"7"; "4";"TILE_ORE_RUTILE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "7"; "4"; "0"; "0"; "N/A"; "0";"16"
"7"; "5";"TILE_ORE_AURICHALCUMITE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "7"; "5"; "0"; "0"; "N/A"; "0";"16"
"8"; "0";"TILE_GEM_RUBY" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "8"; "0"; "0"; "0"; "N/A"; "0";"16"
"8"; "1";"TILE_GEM_EMERALD" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "8"; "1"; "0"; "0"; "N/A"; "0";"16"
"8"; "2";"TILE_GEM_SAPPHIRE" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "8"; "2"; "0"; "0"; "N/A"; "0";"16"
"8"; "3";"TILE_GEM_TOPAZ" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "8"; "3"; "0"; "0"; "N/A"; "0";"16"
"8"; "4";"TILE_GEM_DIAMOND" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "8"; "4"; "0"; "0"; "N/A"; "0";"16"
"8"; "5";"TILE_GEM_AMETHYST" ; "33587232"; "48";"2400";"rock"; "0"; "1"; "0"; "0"; "8"; "5"; "0"; "0"; "N/A"; "0";"16"
"9"; "0";"TILE_SNOW" ; "33587232"; "24"; "500";"snow"; "0"; "1"; "1"; "0"; "9"; "0"; "0"; "0"; "N/A"; "0";"16"
"9"; "1";"TILE_ICE_FRAGILE" ; "13644813"; "5"; "930";"icei"; "0"; "1"; "0"; "0"; "9"; "1"; "0"; "0"; "N/A"; "0"; "4"
"9"; "2";"TILE_ICE_NATURAL" ; "27289626"; "35"; "930";"icei"; "0"; "1"; "1"; "0"; "9"; "2"; "0"; "0"; "N/A"; "0"; "4"
"9"; "3";"TILE_ICE_CLEAR_MAGICAL" ; "33587232"; "48";"3720";"icex"; "0"; "1"; "1"; "19955770"; "9"; "3"; "0"; "0"; "N/A"; "0"; "4"
"9"; "4";"TILE_GLASS_CRUDE" ; "3146755"; "5";"2500";"glas"; "0"; "1"; "1"; "0"; "9"; "4"; "0"; "0"; "N/A"; "0";"16"
"9"; "5";"TILE_GLASS_CLEAN" ; "1049601"; "5";"2203";"glas"; "0"; "1"; "1"; "0"; "9"; "5"; "0"; "0"; "N/A"; "0";"16"
"10"; "0";"TILE_PLATFORM_STONE" ; "8396808"; "5"; "N/A";"rock"; "0"; "0"; "0"; "0"; "10"; "0"; "0"; "0"; "N/A"; "0";"16"
"10"; "1";"TILE_PLATFORM_WOODEN" ; "8396808"; "5"; "N/A";"wood"; "0"; "0"; "0"; "0"; "10"; "1"; "0"; "0"; "N/A"; "0";"16"
"10"; "2";"TILE_PLATFORM_EBONY" ; "8396808"; "5"; "N/A";"wood"; "0"; "0"; "0"; "0"; "10"; "2"; "0"; "0"; "N/A"; "0";"16"
"10"; "3";"TILE_PLATFORM_BIRCH" ; "8396808"; "5"; "N/A";"wood"; "0"; "0"; "0"; "0"; "10"; "3"; "0"; "0"; "N/A"; "0";"16"
"10"; "4";"TILE_PLATFORM_BLOODROSE" ; "8396808"; "5"; "N/A";"wood"; "0"; "0"; "0"; "0"; "10"; "4"; "0"; "0"; "N/A"; "0";"16"
"11"; "0";"TILE_TORCH" ; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "267553792"; "11"; "0"; "0"; "1"; "N/A"; "0";"16"
"11"; "1";"TILE_TORCH_FROST" ; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "81916159"; "11"; "1"; "0"; "1"; "N/A"; "0";"16"
"12"; "0";"TILE_TORCH" ; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "0"; "11"; "0"; "0"; "0"; "N/A"; "0";"16"
"12"; "1";"TILE_TORCH_FROST" ; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "0"; "11"; "1"; "0"; "0"; "N/A"; "0";"16"
"13"; "0";"TILE_ILLUMINATOR_WHITE" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "239319274"; "13"; "0"; "0"; "0"; "N/A"; "0";"16"
"13"; "1";"TILE_ILLUMINATOR_YELLOW" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "267607040"; "13"; "1"; "0"; "0"; "N/A"; "0";"16"
"13"; "2";"TILE_ILLUMINATOR_ORANGE" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "267546624"; "13"; "2"; "0"; "0"; "N/A"; "0";"16"
"13"; "3";"TILE_ILLUMINATOR_RED" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "246415360"; "13"; "3"; "0"; "0"; "N/A"; "0";"16"
"13"; "4";"TILE_ILLUMINATOR_FUCHSIA" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "246415543"; "13"; "4"; "0"; "0"; "N/A"; "0";"16"
"13"; "5";"TILE_ILLUMINATOR_PURPLE" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "191889643"; "13"; "5"; "0"; "0"; "N/A"; "0";"16"
"13"; "6";"TILE_ILLUMINATOR_BLUE" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "52479"; "13"; "6"; "0"; "0"; "N/A"; "0";"16"
"13"; "7";"TILE_ILLUMINATOR_CYAN" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "219391"; "13"; "7"; "0"; "0"; "N/A"; "0";"16"
"13"; "8";"TILE_ILLUMINATOR_GREEN" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "56884224"; "13"; "8"; "0"; "0"; "N/A"; "0";"16"
"13"; "9";"TILE_ILLUMINATOR_GREEN_DARK";"8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "33660928"; "13"; "9"; "0"; "0"; "N/A"; "0";"16"
"13"; "10";"TILE_ILLUMINATOR_BROWN" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "89161728"; "13"; "10"; "0"; "0"; "N/A"; "0";"16"
"13"; "11";"TILE_ILLUMINATOR_TAN" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "157392948"; "13"; "11"; "0"; "0"; "N/A"; "0";"16"
"13"; "12";"TILE_ILLUMINATOR_GREY_LIGHT";"8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "198374589"; "13"; "12"; "0"; "0"; "N/A"; "0";"16"
"13"; "13";"TILE_ILLUMINATOR_GREY_MED"; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "122803317"; "13"; "13"; "0"; "0"; "N/A"; "0";"16"
"13"; "14";"TILE_ILLUMINATOR_GREY_DARK"; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "68224065"; "13"; "14"; "0"; "0"; "N/A"; "0";"16"
"13"; "15";"TILE_ILLUMINATOR_BLACK" ; "8396808"; "1"; "N/A";"glas"; "0"; "1"; "1"; "116392191"; "13"; "15"; "0"; "0"; "N/A"; "0";"16"
"14"; "0";"TILE_ILLUMINATOR_WHITE" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "0"; "0"; "0"; "N/A"; "0";"16"
"14"; "1";"TILE_ILLUMINATOR_YELLOW" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "1"; "0"; "0"; "N/A"; "0";"16"
"14"; "2";"TILE_ILLUMINATOR_ORANGE" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "2"; "0"; "0"; "N/A"; "0";"16"
"14"; "3";"TILE_ILLUMINATOR_RED" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "3"; "0"; "0"; "N/A"; "0";"16"
"14"; "4";"TILE_ILLUMINATOR_FUCHSIA" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "4"; "0"; "0"; "N/A"; "0";"16"
"14"; "5";"TILE_ILLUMINATOR_PURPLE" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "5"; "0"; "0"; "N/A"; "0";"16"
"14"; "6";"TILE_ILLUMINATOR_BLUE" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "6"; "0"; "0"; "N/A"; "0";"16"
"14"; "7";"TILE_ILLUMINATOR_CYAN" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "7"; "0"; "0"; "N/A"; "0";"16"
"14"; "8";"TILE_ILLUMINATOR_GREEN" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "8"; "0"; "0"; "N/A"; "0";"16"
"14"; "9";"TILE_ILLUMINATOR_GREEN_DARK";"33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "9"; "0"; "0"; "N/A"; "0";"16"
"14"; "10";"TILE_ILLUMINATOR_BROWN" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "10"; "0"; "0"; "N/A"; "0";"16"
"14"; "11";"TILE_ILLUMINATOR_TAN" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "11"; "0"; "0"; "N/A"; "0";"16"
"14"; "12";"TILE_ILLUMINATOR_GREY_LIGHT";"33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "12"; "0"; "0"; "N/A"; "0";"16"
"14"; "13";"TILE_ILLUMINATOR_GREY_MED"; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "13"; "0"; "0"; "N/A"; "0";"16"
"14"; "14";"TILE_ILLUMINATOR_GREY_DARK";"33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "14"; "0"; "0"; "N/A"; "0";"16"
"14"; "15";"TILE_ILLUMINATOR_BLACK" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "1"; "0"; "13"; "15"; "0"; "0"; "N/A"; "0";"16"
"15"; "0";"TILE_SANDSTONE" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "15"; "0"; "0"; "0"; "N/A"; "0";"16"
"15"; "1";"TILE_SANDSTONE_WHITE" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "15"; "1"; "0"; "0"; "N/A"; "0";"16"
"15"; "2";"TILE_SANDSTONE_RED" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "15"; "2"; "0"; "0"; "N/A"; "0";"16"
"15"; "3";"TILE_SANDSTONE_DESERT" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "15"; "3"; "0"; "0"; "N/A"; "0";"16"
"15"; "4";"TILE_SANDSTONE_BLACK" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "15"; "4"; "0"; "0"; "N/A"; "0";"16"
"15"; "5";"TILE_SANDSTONE_GREEN" ; "33587232"; "48";"1900";"rock"; "0"; "1"; "1"; "0"; "15"; "5"; "0"; "0"; "N/A"; "0";"16"
"16"; "0";"TILE_LANTERN_IRON_REGULAR"; "8396808"; "1"; "N/A";"fxtr"; "0"; "0"; "0"; "267553792"; "16"; "0"; "0"; "0"; "N/A"; "0";"16"
"16"; "1";"TILE_SUNSTONE" ; "33587232"; "1"; "N/A";"rock"; "0"; "1"; "0"; "0"; "16"; "1"; "0"; "2"; "N/A"; "0";"16"
"16"; "2";"TILE_DAYLIGHT_CAPACITOR" ; "33587232"; "1"; "N/A";"glas"; "0"; "1"; "0"; "0"; "16"; "2"; "0"; "3"; "N/A"; "0";"16"
"254"; "0";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "1";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "2";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "3";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "4";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "5";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "6";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "7";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "8";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "9";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "10";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "11";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "12";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "13";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "14";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"254"; "15";"TILE_LAVA" ;"260301048"; "100";"2600";"rock"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0"; "32"; "0";"16"
"255"; "0";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "1";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "2";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "3";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "4";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "5";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "6";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "7";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "8";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "9";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "10";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "11";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "12";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "13";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "14";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"255"; "15";"TILE_WATER" ; "27282445"; "100";"1000";"watr"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0"; "16"; "0";"16"
"0"; "-1";"TILE_NULL" ;"1073741823"; "-1";"2600";"null"; "0"; "0"; "1"; "0"; "N/A"; "N/A"; "0"; "0"; "N/A"; "0";"16"
## Notes ##
# 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)
# dsty: density. As we are putting water an 1000, it is identical to specific gravity. [g/l]
# dlfn: dynamic luminosity function.
# 0-static, 1-torch flicker, 2-current global light (sun, star, moon), 3-daylight at noon,
# 4-slow breath, 5-pulsate
# mate: material, four-letter code
# fv: vertical friction (boolean)
## Illuminators ##
# Illuminator white: RGB(228,238,234), simulation of a halophosphate FL lamp (If you want high CRI lamp, collect a daylight!)
# Defalut torch : Y 64 x 0.55183 y 0.40966 (Planckian ~1 770 K); real candlelight colour taken from Spyder5 colorimeter (for I couldn't afford i1DisplayPro/Colormunki)
# Sunstone: Artificial sunlight, change colour over time in sync with sunlight. The light is set by game's code.
# Sunlight capacitor: daylight at noon. Set by game's code.
## Tiles ##
# 16 colour palette : games's 16-colour palette
# Magical ice: theoretical __metallic__ ice that might form under super-high pressure (> 5 TPa). Its density is a wild guess.
## References ##
# * Density of various woods : http://www.engineeringtoolbox.com/wood-density-d_40.html
# * Density of various phases of ice : http://www1.lsbu.ac.uk/water/ice_phases.html
"""
}

View File

@@ -1,156 +0,0 @@
"id";"dmg";"name" ; "opacity";"strength";"dsty";"fluid";"solid";"wall"; "lumcolor";"drop";"ddmg";"fall";"dlfn";"friction"
"0"; "0";"TILE_AIR" ; "8396808"; "0"; "1"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0";"4"
"1"; "0";"TILE_STONE" ; "33587232"; "25";"2400"; "0"; "1"; "1"; "0"; "1"; "0"; "0"; "0";"16"
"1"; "1";"TILE_STONE_QUARRIED" ; "33587232"; "25";"2400"; "0"; "1"; "1"; "0"; "1"; "1"; "0"; "0";"16"
"1"; "2";"TILE_STONE_TILE_WHITE" ; "33587232"; "25";"2400"; "0"; "1"; "1"; "0"; "1"; "2"; "0"; "0";"16"
"1"; "3";"TILE_STONE_BRICKS" ; "33587232"; "25";"2400"; "0"; "1"; "1"; "0"; "1"; "3"; "0"; "0";"16"
"2"; "0";"TILE_DIRT" ; "33587232"; "6";"1400"; "0"; "1"; "1"; "0"; "2"; "0"; "0"; "0";"16"
"2"; "1";"TILE_GRASS" ; "33587232"; "6";"1400"; "0"; "1"; "1"; "0"; "2"; "1"; "0"; "0";"16"
"3"; "0";"TILE_PLANK_NORMAL" ; "33587232"; "12"; "740"; "0"; "1"; "1"; "0"; "3"; "0"; "0"; "0";"16"
"3"; "1";"TILE_PLANK_EBONY" ; "33587232"; "12";"1200"; "0"; "1"; "1"; "0"; "3"; "1"; "0"; "0";"16"
"3"; "2";"TILE_PLANK_BIRCH" ; "33587232"; "12"; "670"; "0"; "1"; "1"; "0"; "3"; "2"; "0"; "0";"16"
"3"; "3";"TILE_PLANK_BLOODROSE" ; "33587232"; "12"; "900"; "0"; "1"; "1"; "0"; "3"; "3"; "0"; "0";"16"
"4"; "0";"TILE_TRUNK_NORMAL" ; "33587232"; "12"; "740"; "0"; "1"; "0"; "0"; "3"; "0"; "0"; "0";"16"
"4"; "1";"TILE_TRUNK_EBONY" ; "33587232"; "12";"1200"; "0"; "1"; "0"; "0"; "3"; "1"; "0"; "0";"16"
"4"; "2";"TILE_TRUNK_BIRCH" ; "33587232"; "12"; "670"; "0"; "1"; "0"; "0"; "3"; "2"; "0"; "0";"16"
"4"; "3";"TILE_TRUNK_BLOODROSE" ; "33587232"; "12"; "900"; "0"; "1"; "0"; "0"; "3"; "3"; "0"; "0";"16"
"5"; "0";"TILE_SAND" ; "33587232"; "6";"2400"; "0"; "1"; "0"; "0"; "5"; "0"; "1"; "0";"16"
"5"; "1";"TILE_SAND_WHITE" ; "33587232"; "6";"2400"; "0"; "1"; "0"; "0"; "5"; "1"; "1"; "0";"16"
"5"; "2";"TILE_SAND_RED" ; "33587232"; "6";"2400"; "0"; "1"; "0"; "0"; "5"; "2"; "1"; "0";"16"
"5"; "3";"TILE_SAND_DESERT" ; "33587232"; "6";"2400"; "0"; "1"; "0"; "0"; "5"; "3"; "1"; "0";"16"
"5"; "4";"TILE_SAND_BLACK" ; "33587232"; "6";"2400"; "0"; "1"; "0"; "0"; "5"; "4"; "1"; "0";"16"
"5"; "5";"TILE_SAND_GREEN" ; "33587232"; "6";"2400"; "0"; "1"; "0"; "0"; "5"; "5"; "1"; "0";"16"
"6"; "0";"TILE_GRAVEL" ; "33587232"; "6";"2400"; "0"; "1"; "0"; "0"; "6"; "0"; "1"; "0";"16"
"6"; "1";"TILE_GRAVEL_GREY" ; "33587232"; "6";"2400"; "0"; "1"; "0"; "0"; "6"; "1"; "1"; "0";"16"
"7"; "0";"TILE_ORE_MALACHITE" ; "33587232"; "25";"2400"; "0"; "1"; "0"; "0"; "7"; "0"; "0"; "0";"16"
"7"; "1";"TILE_ORE_HEMATITE" ; "33587232"; "25";"2400"; "0"; "1"; "0"; "0"; "7"; "1"; "0"; "0";"16"
"7"; "2";"TILE_ORE_NATURAL_GOLD" ; "33587232"; "25";"2400"; "0"; "1"; "0"; "0"; "7"; "2"; "0"; "0";"16"
"7"; "3";"TILE_ORE_NATURAL_SILVER" ; "33587232"; "25";"2400"; "0"; "1"; "0"; "0"; "7"; "3"; "0"; "0";"16"
"7"; "4";"TILE_ORE_RUTILE" ; "33587232"; "25";"2400"; "0"; "1"; "0"; "0"; "7"; "4"; "0"; "0";"16"
"7"; "5";"TILE_ORE_AURICHALCUMITE" ; "33587232"; "25";"2400"; "0"; "1"; "0"; "0"; "7"; "5"; "0"; "0";"16"
"8"; "0";"TILE_GEM_RUBY" ; "33587232"; "25";"2400"; "0"; "1"; "0"; "0"; "8"; "0"; "0"; "0";"16"
"8"; "1";"TILE_GEM_EMERALD" ; "33587232"; "25";"2400"; "0"; "1"; "0"; "0"; "8"; "1"; "0"; "0";"16"
"8"; "2";"TILE_GEM_SAPPHIRE" ; "33587232"; "25";"2400"; "0"; "1"; "0"; "0"; "8"; "2"; "0"; "0";"16"
"8"; "3";"TILE_GEM_TOPAZ" ; "33587232"; "25";"2400"; "0"; "1"; "0"; "0"; "8"; "3"; "0"; "0";"16"
"8"; "4";"TILE_GEM_DIAMOND" ; "33587232"; "25";"2400"; "0"; "1"; "0"; "0"; "8"; "4"; "0"; "0";"16"
"8"; "5";"TILE_GEM_AMETHYST" ; "33587232"; "25";"2400"; "0"; "1"; "0"; "0"; "8"; "5"; "0"; "0";"16"
"9"; "0";"TILE_SNOW" ; "33587232"; "6"; "500"; "0"; "1"; "1"; "0"; "9"; "0"; "0"; "0";"16"
"9"; "1";"TILE_ICE_FRAGILE" ; "13644813"; "1"; "930"; "0"; "1"; "0"; "0"; "9"; "1"; "0"; "0";"16"
"9"; "2";"TILE_ICE_NATURAL" ; "27289626"; "25"; "930"; "0"; "1"; "1"; "0"; "9"; "2"; "0"; "0"; "8"
"9"; "3";"TILE_ICE_CLEAR_MAGICAL" ; "33587232"; "25";"3720"; "0"; "1"; "1"; "19955770"; "9"; "3"; "0"; "0"; "8"
"9"; "4";"TILE_GLASS_CRUDE" ; "3146755"; "1";"2500"; "0"; "1"; "1"; "0"; "9"; "4"; "0"; "0";"16"
"9"; "5";"TILE_GLASS_CLEAN" ; "1049601"; "1";"2203"; "0"; "1"; "1"; "0"; "9"; "5"; "0"; "0";"16"
"10"; "0";"TILE_PLATFORM_STONE" ; "8396808"; "1"; "N/A"; "0"; "0"; "0"; "0"; "10"; "0"; "0"; "0";"16"
"10"; "1";"TILE_PLATFORM_WOODEN" ; "8396808"; "1"; "N/A"; "0"; "0"; "0"; "0"; "10"; "1"; "0"; "0";"16"
"10"; "2";"TILE_PLATFORM_EBONY" ; "8396808"; "1"; "N/A"; "0"; "0"; "0"; "0"; "10"; "2"; "0"; "0";"16"
"10"; "3";"TILE_PLATFORM_BIRCH" ; "8396808"; "1"; "N/A"; "0"; "0"; "0"; "0"; "10"; "3"; "0"; "0";"16"
"10"; "4";"TILE_PLATFORM_BLOODROSE" ; "8396808"; "1"; "N/A"; "0"; "0"; "0"; "0"; "10"; "4"; "0"; "0";"16"
"11"; "0";"TILE_TORCH" ; "8396808"; "0"; "N/A"; "0"; "0"; "0"; "266453040"; "11"; "0"; "0"; "1";"16"
"11"; "1";"TILE_TORCH_FROST" ; "8396808"; "0"; "N/A"; "0"; "0"; "0"; "81916159"; "11"; "1"; "0"; "1";"16"
"12"; "0";"TILE_TORCH" ; "8396808"; "0"; "N/A"; "0"; "0"; "0"; "0"; "11"; "0"; "0"; "0";"16"
"12"; "1";"TILE_TORCH_FROST" ; "8396808"; "0"; "N/A"; "0"; "0"; "0"; "0"; "11"; "1"; "0"; "0";"16"
"13"; "0";"TILE_ILLUMINATOR_WHITE" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "239319274"; "13"; "0"; "0"; "0";"16"
"13"; "1";"TILE_ILLUMINATOR_YELLOW" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "267607040"; "13"; "1"; "0"; "0";"16"
"13"; "2";"TILE_ILLUMINATOR_ORANGE" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "267546624"; "13"; "2"; "0"; "0";"16"
"13"; "3";"TILE_ILLUMINATOR_RED" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "246415360"; "13"; "3"; "0"; "0";"16"
"13"; "4";"TILE_ILLUMINATOR_FUCHSIA" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "246415543"; "13"; "4"; "0"; "0";"16"
"13"; "5";"TILE_ILLUMINATOR_PURPLE" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "191889643"; "13"; "5"; "0"; "0";"16"
"13"; "6";"TILE_ILLUMINATOR_BLUE" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "52479"; "13"; "6"; "0"; "0";"16"
"13"; "7";"TILE_ILLUMINATOR_CYAN" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "219391"; "13"; "7"; "0"; "0";"16"
"13"; "8";"TILE_ILLUMINATOR_GREEN" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "56884224"; "13"; "8"; "0"; "0";"16"
"13"; "9";"TILE_ILLUMINATOR_GREEN_DARK";"8396808"; "0"; "N/A"; "0"; "1"; "1"; "33660928"; "13"; "9"; "0"; "0";"16"
"13"; "10";"TILE_ILLUMINATOR_BROWN" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "89161728"; "13"; "10"; "0"; "0";"16"
"13"; "11";"TILE_ILLUMINATOR_TAN" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "157392948"; "13"; "11"; "0"; "0";"16"
"13"; "12";"TILE_ILLUMINATOR_GREY_LIGHT";"8396808"; "0"; "N/A"; "0"; "1"; "1"; "198374589"; "13"; "12"; "0"; "0";"16"
"13"; "13";"TILE_ILLUMINATOR_GREY_MED"; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "122803317"; "13"; "13"; "0"; "0";"16"
"13"; "14";"TILE_ILLUMINATOR_GREY_DARK"; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "68224065"; "13"; "14"; "0"; "0";"16"
"13"; "15";"TILE_ILLUMINATOR_BLACK" ; "8396808"; "0"; "N/A"; "0"; "1"; "1"; "116392191"; "13"; "15"; "0"; "0";"16"
"14"; "0";"TILE_ILLUMINATOR_WHITE" ; "33587232"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "0"; "0"; "0";"16"
"14"; "1";"TILE_ILLUMINATOR_YELLOW" ; "33587232"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "1"; "0"; "0";"16"
"14"; "2";"TILE_ILLUMINATOR_ORANGE" ; "33587232"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "2"; "0"; "0";"16"
"14"; "3";"TILE_ILLUMINATOR_RED" ; "33587232"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "3"; "0"; "0";"16"
"14"; "4";"TILE_ILLUMINATOR_FUCHSIA" ; "33587232"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "4"; "0"; "0";"16"
"14"; "5";"TILE_ILLUMINATOR_PURPLE" ; "33587232"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "5"; "0"; "0";"16"
"14"; "6";"TILE_ILLUMINATOR_BLUE" ; "33587232"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "6"; "0"; "0";"16"
"14"; "7";"TILE_ILLUMINATOR_CYAN" ; "33587232"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "7"; "0"; "0";"16"
"14"; "8";"TILE_ILLUMINATOR_GREEN" ; "33587232"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "8"; "0"; "0";"16"
"14"; "9";"TILE_ILLUMINATOR_GREEN_DARK";"33587232"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "9"; "0"; "0";"16"
"14"; "10";"TILE_ILLUMINATOR_BROWN" ; "33587232"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "10"; "0"; "0";"16"
"14"; "11";"TILE_ILLUMINATOR_TAN" ; "33587232"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "11"; "0"; "0";"16"
"14"; "12";"TILE_ILLUMINATOR_GREY_LIGHT";"33587232"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "12"; "0"; "0";"16"
"14"; "13";"TILE_ILLUMINATOR_GREY_MED"; "33587232"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "13"; "0"; "0";"16"
"14"; "14";"TILE_ILLUMINATOR_GREY_DARK";"33587232"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "14"; "0"; "0";"16"
"14"; "15";"TILE_ILLUMINATOR_BLACK" ; "33587232"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "15"; "0"; "0";"16"
"15"; "0";"TILE_SANDSTONE" ; "33587232"; "25";"1900"; "0"; "1"; "1"; "0"; "15"; "0"; "0"; "0";"16"
"15"; "1";"TILE_SANDSTONE_WHITE" ; "33587232"; "25";"1900"; "0"; "1"; "1"; "0"; "15"; "1"; "0"; "0";"16"
"15"; "2";"TILE_SANDSTONE_RED" ; "33587232"; "25";"1900"; "0"; "1"; "1"; "0"; "15"; "2"; "0"; "0";"16"
"15"; "3";"TILE_SANDSTONE_DESERT" ; "33587232"; "25";"1900"; "0"; "1"; "1"; "0"; "15"; "3"; "0"; "0";"16"
"15"; "4";"TILE_SANDSTONE_BLACK" ; "33587232"; "25";"1900"; "0"; "1"; "1"; "0"; "15"; "4"; "0"; "0";"16"
"15"; "5";"TILE_SANDSTONE_BLACK" ; "33587232"; "25";"1900"; "0"; "1"; "1"; "0"; "15"; "5"; "0"; "0";"16"
"16"; "0";"TILE_LANTERN_IRON_REGULAR"; "8396808"; "0"; "N/A"; "0"; "0"; "0"; "266453040"; "16"; "0"; "0"; "0";"16"
"16"; "1";"TILE_SUNSTONE" ; "33587232"; "0"; "N/A"; "0"; "1"; "0"; "0"; "16"; "1"; "0"; "2";"16"
"16"; "2";"TILE_DAYLIGHT_CAPACITOR" ; "33587232"; "0"; "N/A"; "0"; "1"; "0"; "0"; "16"; "2"; "0"; "3";"16"
"254"; "0";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "1";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "2";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "3";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "4";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "5";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "6";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "7";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "8";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "9";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "10";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "11";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "12";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "13";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "14";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "15";"TILE_LAVA" ;"260301048"; "100";"2600"; "1"; "0"; "0"; "205574144"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "0";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "1";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "2";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "3";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "4";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "5";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "6";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "7";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "8";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "9";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "10";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "11";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "12";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "13";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "14";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "15";"TILE_WATER" ; "27282445"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"256"; "0";"TILE_NULL" ; "0"; "-1";"2600"; "0"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
## Notes ##
# 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
# movr: Movement resistance, (walkspeedmax) / (1 + (n/16)), 16 halves movement speed
# dsty: density. As we are putting water an 1000, it is identical to specific gravity. [g/l]
# dlfn: dynamic luminosity function.
# 0-static, 1-torch flicker, 2-current global light (sun, star, moon), 3-daylight at noon,
# 4-slow breath, 5-pulsate
## Illuminators ##
# Illuminator white: RGB(228,238,234), simulation of a halophosphate FL lamp (If you want high CRI lamp, collect a daylight!)
# Defalut torch : L 64 a 51 b 59; real candlelight colour taken from properly configured camera.
# Sunstone: Artificial sunlight, change colour over time in sync with sunlight. The light is set by game's code.
# Sunlight capacitor: daylight at noon. Set by game's code.
## Tiles ##
# 16 colour palette : Old Apple Macintosh 16-colour palette
# Magical ice: theoretical __metallic__ ice that might form under super-high pressure (> 5 TPa). Its density is a wild guess.
## References ##
# * Density of various woods : http://www.engineeringtoolbox.com/wood-density-d_40.html
# * Density of various phases of ice : http://www1.lsbu.ac.uk/water/ice_phases.html

View File

@@ -1,156 +0,0 @@
"id";"dmg";"name" ; "opacity";"strength";"dsty";"fluid";"solid";"wall";"lumcolor";"drop";"ddmg";"fall";"dlfn";"friction"
"0"; "0";"TILE_AIR" ; "526344"; "0"; "1"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0";"4"
"1"; "0";"TILE_STONE" ; "2105376"; "25";"2400"; "0"; "1"; "1"; "0"; "1"; "0"; "0"; "0";"16"
"1"; "1";"TILE_STONE_QUARRIED" ; "2105376"; "25";"2400"; "0"; "1"; "1"; "0"; "1"; "1"; "0"; "0";"16"
"1"; "2";"TILE_STONE_TILE_WHITE" ; "2105376"; "25";"2400"; "0"; "1"; "1"; "0"; "1"; "2"; "0"; "0";"16"
"1"; "3";"TILE_STONE_BRICKS" ; "2105376"; "25";"2400"; "0"; "1"; "1"; "0"; "1"; "3"; "0"; "0";"16"
"2"; "0";"TILE_DIRT" ; "2105376"; "6";"1400"; "0"; "1"; "1"; "0"; "2"; "0"; "0"; "0";"16"
"2"; "1";"TILE_GRASS" ; "2105376"; "6";"1400"; "0"; "1"; "1"; "0"; "2"; "1"; "0"; "0";"16"
"3"; "0";"TILE_PLANK_NORMAL" ; "2105376"; "12"; "740"; "0"; "1"; "1"; "0"; "3"; "0"; "0"; "0";"16"
"3"; "1";"TILE_PLANK_EBONY" ; "2105376"; "12";"1200"; "0"; "1"; "1"; "0"; "3"; "1"; "0"; "0";"16"
"3"; "2";"TILE_PLANK_BIRCH" ; "2105376"; "12"; "670"; "0"; "1"; "1"; "0"; "3"; "2"; "0"; "0";"16"
"3"; "3";"TILE_PLANK_BLOODROSE" ; "2105376"; "12"; "900"; "0"; "1"; "1"; "0"; "3"; "3"; "0"; "0";"16"
"4"; "0";"TILE_TRUNK_NORMAL" ; "2105376"; "12"; "740"; "0"; "1"; "0"; "0"; "3"; "0"; "0"; "0";"16"
"4"; "1";"TILE_TRUNK_EBONY" ; "2105376"; "12";"1200"; "0"; "1"; "0"; "0"; "3"; "1"; "0"; "0";"16"
"4"; "2";"TILE_TRUNK_BIRCH" ; "2105376"; "12"; "670"; "0"; "1"; "0"; "0"; "3"; "2"; "0"; "0";"16"
"4"; "3";"TILE_TRUNK_BLOODROSE" ; "2105376"; "12"; "900"; "0"; "1"; "0"; "0"; "3"; "3"; "0"; "0";"16"
"5"; "0";"TILE_SAND" ; "2105376"; "6";"2400"; "0"; "1"; "0"; "0"; "5"; "0"; "1"; "0";"16"
"5"; "1";"TILE_SAND_WHITE" ; "2105376"; "6";"2400"; "0"; "1"; "0"; "0"; "5"; "1"; "1"; "0";"16"
"5"; "2";"TILE_SAND_RED" ; "2105376"; "6";"2400"; "0"; "1"; "0"; "0"; "5"; "2"; "1"; "0";"16"
"5"; "3";"TILE_SAND_DESERT" ; "2105376"; "6";"2400"; "0"; "1"; "0"; "0"; "5"; "3"; "1"; "0";"16"
"5"; "4";"TILE_SAND_BLACK" ; "2105376"; "6";"2400"; "0"; "1"; "0"; "0"; "5"; "4"; "1"; "0";"16"
"5"; "5";"TILE_SAND_GREEN" ; "2105376"; "6";"2400"; "0"; "1"; "0"; "0"; "5"; "5"; "1"; "0";"16"
"6"; "0";"TILE_GRAVEL" ; "2105376"; "6";"2400"; "0"; "1"; "0"; "0"; "6"; "0"; "1"; "0";"16"
"6"; "1";"TILE_GRAVEL_GREY" ; "2105376"; "6";"2400"; "0"; "1"; "0"; "0"; "6"; "1"; "1"; "0";"16"
"7"; "0";"TILE_ORE_MALACHITE" ; "2105376"; "25";"2400"; "0"; "1"; "0"; "0"; "7"; "0"; "0"; "0";"16"
"7"; "1";"TILE_ORE_HEMATITE" ; "2105376"; "25";"2400"; "0"; "1"; "0"; "0"; "7"; "1"; "0"; "0";"16"
"7"; "2";"TILE_ORE_NATURAL_GOLD" ; "2105376"; "25";"2400"; "0"; "1"; "0"; "0"; "7"; "2"; "0"; "0";"16"
"7"; "3";"TILE_ORE_NATURAL_SILVER" ; "2105376"; "25";"2400"; "0"; "1"; "0"; "0"; "7"; "3"; "0"; "0";"16"
"7"; "4";"TILE_ORE_RUTILE" ; "2105376"; "25";"2400"; "0"; "1"; "0"; "0"; "7"; "4"; "0"; "0";"16"
"7"; "5";"TILE_ORE_AURICHALCUMITE" ; "2105376"; "25";"2400"; "0"; "1"; "0"; "0"; "7"; "5"; "0"; "0";"16"
"8"; "0";"TILE_GEM_RUBY" ; "2105376"; "25";"2400"; "0"; "1"; "0"; "0"; "8"; "0"; "0"; "0";"16"
"8"; "1";"TILE_GEM_EMERALD" ; "2105376"; "25";"2400"; "0"; "1"; "0"; "0"; "8"; "1"; "0"; "0";"16"
"8"; "2";"TILE_GEM_SAPPHIRE" ; "2105376"; "25";"2400"; "0"; "1"; "0"; "0"; "8"; "2"; "0"; "0";"16"
"8"; "3";"TILE_GEM_TOPAZ" ; "2105376"; "25";"2400"; "0"; "1"; "0"; "0"; "8"; "3"; "0"; "0";"16"
"8"; "4";"TILE_GEM_DIAMOND" ; "2105376"; "25";"2400"; "0"; "1"; "0"; "0"; "8"; "4"; "0"; "0";"16"
"8"; "5";"TILE_GEM_AMETHYST" ; "2105376"; "25";"2400"; "0"; "1"; "0"; "0"; "8"; "5"; "0"; "0";"16"
"9"; "0";"TILE_SNOW" ; "2105376"; "6"; "500"; "0"; "1"; "1"; "0"; "9"; "0"; "0"; "0";"16"
"9"; "1";"TILE_ICE_FRAGILE" ; "855309"; "1"; "930"; "0"; "1"; "0"; "0"; "9"; "1"; "0"; "0";"16"
"9"; "2";"TILE_ICE_NATURAL" ; "1710618"; "25"; "930"; "0"; "1"; "1"; "0"; "9"; "2"; "0"; "0"; "8"
"9"; "3";"TILE_ICE_CLEAR_MAGICAL" ; "2105376"; "25";"3720"; "0"; "1"; "1"; "1253434"; "9"; "3"; "0"; "0"; "8"
"9"; "4";"TILE_GLASS_CRUDE" ; "196867"; "1";"2500"; "0"; "1"; "1"; "0"; "9"; "4"; "0"; "0";"16"
"9"; "5";"TILE_GLASS_CLEAN" ; "65793"; "1";"2203"; "0"; "1"; "1"; "0"; "9"; "5"; "0"; "0";"16"
"10"; "0";"TILE_PLATFORM_STONE" ; "526344"; "1"; "N/A"; "0"; "0"; "0"; "0"; "10"; "0"; "0"; "0";"16"
"10"; "1";"TILE_PLATFORM_WOODEN" ; "526344"; "1"; "N/A"; "0"; "0"; "0"; "0"; "10"; "1"; "0"; "0";"16"
"10"; "2";"TILE_PLATFORM_EBONY" ; "526344"; "1"; "N/A"; "0"; "0"; "0"; "0"; "10"; "2"; "0"; "0";"16"
"10"; "3";"TILE_PLATFORM_BIRCH" ; "526344"; "1"; "N/A"; "0"; "0"; "0"; "0"; "10"; "3"; "0"; "0";"16"
"10"; "4";"TILE_PLATFORM_BLOODROSE" ; "526344"; "1"; "N/A"; "0"; "0"; "0"; "0"; "10"; "4"; "0"; "0";"16"
"11"; "0";"TILE_TORCH" ; "526344"; "0"; "N/A"; "0"; "0"; "0";"16674864"; "11"; "0"; "0"; "1";"16"
"11"; "1";"TILE_TORCH_FROST" ; "526344"; "0"; "N/A"; "0"; "0"; "0"; "5143807"; "11"; "1"; "0"; "1";"16"
"12"; "0";"TILE_TORCH" ; "526344"; "0"; "N/A"; "0"; "0"; "0"; "0"; "11"; "0"; "0"; "0";"16"
"12"; "1";"TILE_TORCH_FROST" ; "526344"; "0"; "N/A"; "0"; "0"; "0"; "0"; "11"; "1"; "0"; "0";"16"
"13"; "0";"TILE_ILLUMINATOR_WHITE" ; "526344"; "0"; "N/A"; "0"; "1"; "1";"15003370"; "13"; "0"; "0"; "0";"16"
"13"; "1";"TILE_ILLUMINATOR_YELLOW" ; "526344"; "0"; "N/A"; "0"; "1"; "1";"16766720"; "13"; "1"; "0"; "0";"16"
"13"; "2";"TILE_ILLUMINATOR_ORANGE" ; "526344"; "0"; "N/A"; "0"; "1"; "1";"16751616"; "13"; "2"; "0"; "0";"16"
"13"; "3";"TILE_ILLUMINATOR_RED" ; "526344"; "0"; "N/A"; "0"; "1"; "1";"15400960"; "13"; "3"; "0"; "0";"16"
"13"; "4";"TILE_ILLUMINATOR_FUCHSIA" ; "526344"; "0"; "N/A"; "0"; "1"; "1";"15401143"; "13"; "4"; "0"; "0";"16"
"13"; "5";"TILE_ILLUMINATOR_PURPLE" ; "526344"; "0"; "N/A"; "0"; "1"; "1";"11993323"; "13"; "5"; "0"; "0";"16"
"13"; "6";"TILE_ILLUMINATOR_BLUE" ; "526344"; "0"; "N/A"; "0"; "1"; "1"; "13311"; "13"; "6"; "0"; "0";"16"
"13"; "7";"TILE_ILLUMINATOR_CYAN" ; "526344"; "0"; "N/A"; "0"; "1"; "1"; "55039"; "13"; "7"; "0"; "0";"16"
"13"; "8";"TILE_ILLUMINATOR_GREEN" ; "526344"; "0"; "N/A"; "0"; "1"; "1"; "3604224"; "13"; "8"; "0"; "0";"16"
"13"; "9";"TILE_ILLUMINATOR_GREEN_DARK"; "526344"; "0"; "N/A"; "0"; "1"; "1"; "2123776"; "13"; "9"; "0"; "0";"16"
"13"; "10";"TILE_ILLUMINATOR_BROWN" ; "526344"; "0"; "N/A"; "0"; "1"; "1"; "5578752"; "13"; "10"; "0"; "0";"16"
"13"; "11";"TILE_ILLUMINATOR_TAN" ; "526344"; "0"; "N/A"; "0"; "1"; "1"; "9857076"; "13"; "11"; "0"; "0";"16"
"13"; "12";"TILE_ILLUMINATOR_GREY_LIGHT"; "526344"; "0"; "N/A"; "0"; "1"; "1";"12434877"; "13"; "12"; "0"; "0";"16"
"13"; "13";"TILE_ILLUMINATOR_GREY_MED" ; "526344"; "0"; "N/A"; "0"; "1"; "1"; "7697781"; "13"; "13"; "0"; "0";"16"
"13"; "14";"TILE_ILLUMINATOR_GREY_DARK" ; "526344"; "0"; "N/A"; "0"; "1"; "1"; "4276545"; "13"; "14"; "0"; "0";"16"
"13"; "15";"TILE_ILLUMINATOR_BLACK" ; "526344"; "0"; "N/A"; "0"; "1"; "1"; "7274751"; "13"; "15"; "0"; "0";"16"
"14"; "0";"TILE_ILLUMINATOR_WHITE" ; "2105376"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "0"; "0"; "0";"16"
"14"; "1";"TILE_ILLUMINATOR_YELLOW" ; "2105376"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "1"; "0"; "0";"16"
"14"; "2";"TILE_ILLUMINATOR_ORANGE" ; "2105376"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "2"; "0"; "0";"16"
"14"; "3";"TILE_ILLUMINATOR_RED" ; "2105376"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "3"; "0"; "0";"16"
"14"; "4";"TILE_ILLUMINATOR_FUCHSIA" ; "2105376"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "4"; "0"; "0";"16"
"14"; "5";"TILE_ILLUMINATOR_PURPLE" ; "2105376"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "5"; "0"; "0";"16"
"14"; "6";"TILE_ILLUMINATOR_BLUE" ; "2105376"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "6"; "0"; "0";"16"
"14"; "7";"TILE_ILLUMINATOR_CYAN" ; "2105376"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "7"; "0"; "0";"16"
"14"; "8";"TILE_ILLUMINATOR_GREEN" ; "2105376"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "8"; "0"; "0";"16"
"14"; "9";"TILE_ILLUMINATOR_GREEN_DARK"; "2105376"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "9"; "0"; "0";"16"
"14"; "10";"TILE_ILLUMINATOR_BROWN" ; "2105376"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "10"; "0"; "0";"16"
"14"; "11";"TILE_ILLUMINATOR_TAN" ; "2105376"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "11"; "0"; "0";"16"
"14"; "12";"TILE_ILLUMINATOR_GREY_LIGHT"; "2105376"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "12"; "0"; "0";"16"
"14"; "13";"TILE_ILLUMINATOR_GREY_MED" ; "2105376"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "13"; "0"; "0";"16"
"14"; "14";"TILE_ILLUMINATOR_GREY_DARK" ; "2105376"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "14"; "0"; "0";"16"
"14"; "15";"TILE_ILLUMINATOR_BLACK" ; "2105376"; "0"; "N/A"; "0"; "1"; "1"; "0"; "13"; "15"; "0"; "0";"16"
"15"; "0";"TILE_SANDSTONE" ; "2105376"; "25";"1900"; "0"; "1"; "1"; "0"; "15"; "0"; "0"; "0";"16"
"15"; "1";"TILE_SANDSTONE_WHITE" ; "2105376"; "25";"1900"; "0"; "1"; "1"; "0"; "15"; "1"; "0"; "0";"16"
"15"; "2";"TILE_SANDSTONE_RED" ; "2105376"; "25";"1900"; "0"; "1"; "1"; "0"; "15"; "2"; "0"; "0";"16"
"15"; "3";"TILE_SANDSTONE_DESERT" ; "2105376"; "25";"1900"; "0"; "1"; "1"; "0"; "15"; "3"; "0"; "0";"16"
"15"; "4";"TILE_SANDSTONE_BLACK" ; "2105376"; "25";"1900"; "0"; "1"; "1"; "0"; "15"; "4"; "0"; "0";"16"
"15"; "5";"TILE_SANDSTONE_BLACK" ; "2105376"; "25";"1900"; "0"; "1"; "1"; "0"; "15"; "5"; "0"; "0";"16"
"16"; "0";"TILE_LANTERN_IRON_REGULAR" ; "526344"; "0"; "N/A"; "0"; "0"; "0";"16674864"; "16"; "0"; "0"; "0";"16"
"16"; "1";"TILE_SUNSTONE" ; "2105376"; "0"; "N/A"; "0"; "1"; "0"; "0"; "16"; "1"; "0"; "2";"16"
"16"; "2";"TILE_DAYLIGHT_CAPACITOR" ; "2105376"; "0"; "N/A"; "0"; "1"; "0"; "0"; "16"; "2"; "0"; "3";"16"
"254"; "0";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "0"; "0";"12858368"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "1";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "0"; "0";"12858368"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "2";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "0"; "0";"12858368"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "3";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "0"; "0";"12858368"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "4";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "0"; "0";"12858368"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "5";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "0"; "0";"12858368"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "6";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "0"; "0";"12858368"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "7";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "0"; "0";"12858368"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "8";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "0"; "0";"12858368"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "9";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "0"; "0";"12858368"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "10";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "0"; "0";"12858368"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "11";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "0"; "0";"12858368"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "12";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "0"; "0";"12858368"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "13";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "0"; "0";"12858368"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "14";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "0"; "0";"12858368"; "N/A"; "N/A"; "0"; "0";"16"
"254"; "15";"TILE_LAVA" ;"16316664"; "100";"2600"; "1"; "0"; "0";"12858368"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "0";"TILE_WATER" ; "1708813"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "1";"TILE_WATER" ; "1708813"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "2";"TILE_WATER" ; "1708813"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "3";"TILE_WATER" ; "1708813"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "4";"TILE_WATER" ; "1708813"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "5";"TILE_WATER" ; "1708813"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "6";"TILE_WATER" ; "1708813"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "7";"TILE_WATER" ; "1708813"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "8";"TILE_WATER" ; "1708813"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "9";"TILE_WATER" ; "1708813"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "10";"TILE_WATER" ; "1708813"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "11";"TILE_WATER" ; "1708813"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "12";"TILE_WATER" ; "1708813"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "13";"TILE_WATER" ; "1708813"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "14";"TILE_WATER" ; "1708813"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"255"; "15";"TILE_WATER" ; "1708813"; "100";"1000"; "1"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
"256"; "0";"TILE_NULL" ; "0"; "-1";"2600"; "0"; "0"; "0"; "0"; "N/A"; "N/A"; "0"; "0";"16"
## Notes ##
# Friction: 0: frictionless, <16: slippery, 16: regular, >16: sticky
# Opacity/Lumcolor: 24-bit RGB. Only the light diffusers have a opacity value of ZERO.
# Solid: whether the tile has full collision
# movr: Movement resistance, (walkspeedmax) / (1 + (n/16)), 16 halves movement speed
# dsty: density. As we are putting water an 1000, it is identical to specific gravity. [g/l]
# dlfn: dynamic luminosity function.
# 0-static, 1-torch flicker, 2-current global light (sun, star, moon), 3-daylight at noon,
# 4-slow breath, 5-pulsate
## Illuminators ##
# Illuminator white: RGB(228,238,234), simulation of a halophosphate FL lamp (If you want high CRI lamp, collect a daylight!)
# Defalut torch : L 64 a 51 b 59; real candlelight colour taken from properly configured camera.
# Sunstone: Artificial sunlight, change colour over time in sync with sunlight. The light is set by game's code.
# Sunlight capacitor: daylight at noon. Set by game's code.
## Tiles ##
# 16 colour palette : Old Apple Macintosh 16-colour palette
# Magical ice: theoretical __metallic__ ice that might form under super-high pressure (> 5 TPa). Its density is a wild guess.
## References ##
# * Density of various woods : http://www.engineeringtoolbox.com/wood-density-d_40.html
# * Density of various phases of ice : http://www1.lsbu.ac.uk/water/ice_phases.html

View File

@@ -3,13 +3,12 @@ package net.torvald.terrarum.ui
import com.jme3.math.FastMath
import net.torvald.imagefont.GameFontBase
import net.torvald.terrarum.gameworld.PairedMapLayer
import net.torvald.terrarum.mapdrawer.LightmapRenderer
import net.torvald.terrarum.mapdrawer.TilesDrawer
import net.torvald.terrarum.mapdrawer.FeaturesDrawer
import net.torvald.terrarum.worlddrawer.LightmapRenderer
import net.torvald.terrarum.worlddrawer.FeaturesDrawer
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.blendNormal
import net.torvald.terrarum.blendScreen
import net.torvald.terrarum.mapdrawer.MapCamera
import net.torvald.terrarum.worlddrawer.WorldCamera
import org.newdawn.slick.Color
import org.newdawn.slick.GameContainer
import org.newdawn.slick.Graphics
@@ -61,8 +60,8 @@ class BasicDebugInfoWindow : UICanvas {
val player = Terrarum.ingame!!.player
val mouseTileX = ((MapCamera.x + gc.input.mouseX / Terrarum.ingame!!.screenZoom) / FeaturesDrawer.TILE_SIZE).toInt()
val mouseTileY = ((MapCamera.y + gc.input.mouseY / Terrarum.ingame!!.screenZoom) / FeaturesDrawer.TILE_SIZE).toInt()
val mouseTileX = ((WorldCamera.x + gc.input.mouseX / Terrarum.ingame!!.screenZoom) / FeaturesDrawer.TILE_SIZE).toInt()
val mouseTileY = ((WorldCamera.y + gc.input.mouseY / Terrarum.ingame!!.screenZoom) / FeaturesDrawer.TILE_SIZE).toInt()
g.font = Terrarum.fontSmallNumbers
g.color = GameFontBase.codeToCol["y"]

View File

@@ -1,10 +1,7 @@
package net.torvald.terrarum.ui
import net.torvald.terrarum.mapdrawer.TilesDrawer
import net.torvald.terrarum.Terrarum
import com.jme3.math.FastMath
import net.torvald.terrarum.gamecontroller.KeyToggler
import org.lwjgl.opengl.GL11
import org.newdawn.slick.*
import org.newdawn.slick.state.StateBasedGame

View File

@@ -4,9 +4,7 @@ import com.jme3.math.FastMath
import net.torvald.colourutil.CIELabUtil.darkerLab
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.ActorHumanoid
import net.torvald.terrarum.gameactors.floorInt
import net.torvald.terrarum.gameactors.roundInt
import net.torvald.terrarum.mapdrawer.MapCamera
import net.torvald.terrarum.worlddrawer.WorldCamera
import org.newdawn.slick.Color
import org.newdawn.slick.GameContainer
import org.newdawn.slick.Graphics
@@ -71,8 +69,8 @@ class UIVitalMetre(
override fun render(gc: GameContainer, g: Graphics) {
if (vitalGetterVal() != null && vitalGetterMax() != null && player != null) {
g.translate(
Terrarum.ingame!!.screenZoom * (player!!.centrePosPoint.x.toFloat() - (MapCamera.x)),
Terrarum.ingame!!.screenZoom * (player!!.centrePosPoint.y.toFloat() - (MapCamera.y))
Terrarum.ingame!!.screenZoom * (player!!.centrePosPoint.x.toFloat() - (WorldCamera.x)),
Terrarum.ingame!!.screenZoom * (player!!.centrePosPoint.y.toFloat() - (WorldCamera.y))
)

View File

@@ -1,20 +1,16 @@
package net.torvald.terrarum.mapdrawer
package net.torvald.terrarum.worlddrawer
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.gameworld.PairedMapLayer
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.tileproperties.TileCodex
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.blockproperties.BlockCodex
import com.jme3.math.FastMath
import net.torvald.terrarum.*
import net.torvald.terrarum.concurrent.ThreadParallel
import net.torvald.terrarum.gameactors.roundInt
import net.torvald.terrarum.gameworld.toUint
import net.torvald.terrarum.mapdrawer.FeaturesDrawer.TILE_SIZE
import net.torvald.terrarum.mapdrawer.LightmapRenderer.normaliseToColour
import net.torvald.terrarum.mapdrawer.MapCamera.x
import net.torvald.terrarum.mapdrawer.MapCamera.y
import net.torvald.terrarum.mapdrawer.MapCamera.height
import net.torvald.terrarum.mapdrawer.MapCamera.width
import net.torvald.terrarum.worlddrawer.WorldCamera.x
import net.torvald.terrarum.worlddrawer.WorldCamera.y
import net.torvald.terrarum.worlddrawer.WorldCamera.height
import net.torvald.terrarum.worlddrawer.WorldCamera.width
import org.lwjgl.opengl.GL11
import org.newdawn.slick.*
@@ -22,16 +18,17 @@ import org.newdawn.slick.*
/**
* Created by minjaesong on 16-01-19.
*/
object TilesDrawer {
object BlocksDrawer {
private val world: GameWorld = Terrarum.ingame!!.world
private val TILE_SIZE = FeaturesDrawer.TILE_SIZE
private val TILE_SIZEF = FeaturesDrawer.TILE_SIZE.toFloat()
val tilesTerrain = SpriteSheet(ModMgr.getPath("basegame", "tiles/terrain.tga.gz"), TILE_SIZE, TILE_SIZE)
// TODO modular
val tilesTerrain = SpriteSheet(ModMgr.getPath("basegame", "blocks/terrain.tga.gz"), TILE_SIZE, TILE_SIZE)
// Slick has some weird quirks with PNG's transparency. I'm using 32-bit targa here.
// -> PNG transparency issue seems to be fixed (look at my customised ImageDataFactory), but
// tga.gz is smaller than png, so I'd rather keep it
val tilesWire = SpriteSheet(ModMgr.getPath("basegame", "tiles/wire.tga.gz"), TILE_SIZE, TILE_SIZE)
val tilesWire = SpriteSheet(ModMgr.getPath("basegame", "blocks/wire.tga.gz"), TILE_SIZE, TILE_SIZE)
val breakAnimSteps = 10
@@ -56,48 +53,48 @@ object TilesDrawer {
* These are the tiles that only connects to itself, will not connect to colour variants
*/
val TILES_CONNECT_SELF = arrayListOf(
Tile.ICE_MAGICAL,
Tile.GLASS_CRUDE,
Tile.GLASS_CLEAN,
Tile.ILLUMINATOR_BLACK,
Tile.ILLUMINATOR_BLUE,
Tile.ILLUMINATOR_BROWN,
Tile.ILLUMINATOR_CYAN,
Tile.ILLUMINATOR_FUCHSIA,
Tile.ILLUMINATOR_GREEN,
Tile.ILLUMINATOR_GREEN_DARK,
Tile.ILLUMINATOR_GREY_DARK,
Tile.ILLUMINATOR_GREY_LIGHT,
Tile.ILLUMINATOR_GREY_MED,
Tile.ILLUMINATOR_ORANGE,
Tile.ILLUMINATOR_PURPLE,
Tile.ILLUMINATOR_RED,
Tile.ILLUMINATOR_TAN,
Tile.ILLUMINATOR_WHITE,
Tile.ILLUMINATOR_YELLOW,
Tile.ILLUMINATOR_BLACK_OFF,
Tile.ILLUMINATOR_BLUE_OFF,
Tile.ILLUMINATOR_BROWN_OFF,
Tile.ILLUMINATOR_CYAN_OFF,
Tile.ILLUMINATOR_FUCHSIA_OFF,
Tile.ILLUMINATOR_GREEN_OFF,
Tile.ILLUMINATOR_GREEN_DARK_OFF,
Tile.ILLUMINATOR_GREY_DARK_OFF,
Tile.ILLUMINATOR_GREY_LIGHT_OFF,
Tile.ILLUMINATOR_GREY_MED_OFF,
Tile.ILLUMINATOR_ORANGE_OFF,
Tile.ILLUMINATOR_PURPLE_OFF,
Tile.ILLUMINATOR_RED_OFF,
Tile.ILLUMINATOR_TAN_OFF,
Tile.ILLUMINATOR_WHITE_OFF,
Tile.ILLUMINATOR_YELLOW,
Tile.SANDSTONE,
Tile.SANDSTONE_BLACK,
Tile.SANDSTONE_DESERT,
Tile.SANDSTONE_RED,
Tile.SANDSTONE_WHITE,
Tile.SANDSTONE_GREEN,
Tile.DAYLIGHT_CAPACITOR
Block.ICE_MAGICAL,
Block.GLASS_CRUDE,
Block.GLASS_CLEAN,
Block.ILLUMINATOR_BLACK,
Block.ILLUMINATOR_BLUE,
Block.ILLUMINATOR_BROWN,
Block.ILLUMINATOR_CYAN,
Block.ILLUMINATOR_FUCHSIA,
Block.ILLUMINATOR_GREEN,
Block.ILLUMINATOR_GREEN_DARK,
Block.ILLUMINATOR_GREY_DARK,
Block.ILLUMINATOR_GREY_LIGHT,
Block.ILLUMINATOR_GREY_MED,
Block.ILLUMINATOR_ORANGE,
Block.ILLUMINATOR_PURPLE,
Block.ILLUMINATOR_RED,
Block.ILLUMINATOR_TAN,
Block.ILLUMINATOR_WHITE,
Block.ILLUMINATOR_YELLOW,
Block.ILLUMINATOR_BLACK_OFF,
Block.ILLUMINATOR_BLUE_OFF,
Block.ILLUMINATOR_BROWN_OFF,
Block.ILLUMINATOR_CYAN_OFF,
Block.ILLUMINATOR_FUCHSIA_OFF,
Block.ILLUMINATOR_GREEN_OFF,
Block.ILLUMINATOR_GREEN_DARK_OFF,
Block.ILLUMINATOR_GREY_DARK_OFF,
Block.ILLUMINATOR_GREY_LIGHT_OFF,
Block.ILLUMINATOR_GREY_MED_OFF,
Block.ILLUMINATOR_ORANGE_OFF,
Block.ILLUMINATOR_PURPLE_OFF,
Block.ILLUMINATOR_RED_OFF,
Block.ILLUMINATOR_TAN_OFF,
Block.ILLUMINATOR_WHITE_OFF,
Block.ILLUMINATOR_YELLOW,
Block.SANDSTONE,
Block.SANDSTONE_BLACK,
Block.SANDSTONE_DESERT,
Block.SANDSTONE_RED,
Block.SANDSTONE_WHITE,
Block.SANDSTONE_GREEN,
Block.DAYLIGHT_CAPACITOR
)
/**
@@ -105,86 +102,86 @@ object TilesDrawer {
* It holds different shading rule to discriminate with group 01, index 0 is middle tile.
*/
val TILES_CONNECT_MUTUAL = arrayListOf(
Tile.STONE,
Tile.STONE_QUARRIED,
Tile.STONE_TILE_WHITE,
Tile.STONE_BRICKS,
Tile.DIRT,
Tile.GRASS,
Tile.PLANK_BIRCH,
Tile.PLANK_BLOODROSE,
Tile.PLANK_EBONY,
Tile.PLANK_NORMAL,
Tile.SAND,
Tile.SAND_WHITE,
Tile.SAND_RED,
Tile.SAND_DESERT,
Tile.SAND_BLACK,
Tile.SAND_GREEN,
Tile.GRAVEL,
Tile.GRAVEL_GREY,
Tile.SNOW,
Tile.ICE_NATURAL,
Tile.ORE_COPPER,
Tile.ORE_IRON,
Tile.ORE_GOLD,
Tile.ORE_SILVER,
Tile.ORE_ILMENITE,
Tile.ORE_AURICHALCUM,
Block.STONE,
Block.STONE_QUARRIED,
Block.STONE_TILE_WHITE,
Block.STONE_BRICKS,
Block.DIRT,
Block.GRASS,
Block.PLANK_BIRCH,
Block.PLANK_BLOODROSE,
Block.PLANK_EBONY,
Block.PLANK_NORMAL,
Block.SAND,
Block.SAND_WHITE,
Block.SAND_RED,
Block.SAND_DESERT,
Block.SAND_BLACK,
Block.SAND_GREEN,
Block.GRAVEL,
Block.GRAVEL_GREY,
Block.SNOW,
Block.ICE_NATURAL,
Block.ORE_COPPER,
Block.ORE_IRON,
Block.ORE_GOLD,
Block.ORE_SILVER,
Block.ORE_ILMENITE,
Block.ORE_AURICHALCUM,
Tile.WATER,
Tile.WATER_1,
Tile.WATER_2,
Tile.WATER_3,
Tile.WATER_4,
Tile.WATER_5,
Tile.WATER_6,
Tile.WATER_7,
Tile.WATER_8,
Tile.WATER_9,
Tile.WATER_10,
Tile.WATER_11,
Tile.WATER_12,
Tile.WATER_13,
Tile.WATER_14,
Tile.WATER_15,
Tile.LAVA,
Tile.LAVA_1,
Tile.LAVA_2,
Tile.LAVA_3,
Tile.LAVA_4,
Tile.LAVA_5,
Tile.LAVA_6,
Tile.LAVA_7,
Tile.LAVA_8,
Tile.LAVA_9,
Tile.LAVA_10,
Tile.LAVA_11,
Tile.LAVA_12,
Tile.LAVA_13,
Tile.LAVA_14,
Tile.LAVA_15
Block.WATER,
Block.WATER_1,
Block.WATER_2,
Block.WATER_3,
Block.WATER_4,
Block.WATER_5,
Block.WATER_6,
Block.WATER_7,
Block.WATER_8,
Block.WATER_9,
Block.WATER_10,
Block.WATER_11,
Block.WATER_12,
Block.WATER_13,
Block.WATER_14,
Block.WATER_15,
Block.LAVA,
Block.LAVA_1,
Block.LAVA_2,
Block.LAVA_3,
Block.LAVA_4,
Block.LAVA_5,
Block.LAVA_6,
Block.LAVA_7,
Block.LAVA_8,
Block.LAVA_9,
Block.LAVA_10,
Block.LAVA_11,
Block.LAVA_12,
Block.LAVA_13,
Block.LAVA_14,
Block.LAVA_15
)
/**
* Torches, levers, switches, ...
*/
val TILES_WALL_STICKER = arrayListOf(
Tile.TORCH,
Tile.TORCH_FROST,
Tile.TORCH_OFF,
Tile.TORCH_FROST_OFF
Block.TORCH,
Block.TORCH_FROST,
Block.TORCH_OFF,
Block.TORCH_FROST_OFF
)
/**
* platforms, ...
*/
val TILES_WALL_STICKER_CONNECT_SELF = arrayListOf(
Tile.PLATFORM_BIRCH,
Tile.PLATFORM_BLOODROSE,
Tile.PLATFORM_EBONY,
Tile.PLATFORM_STONE,
Tile.PLATFORM_WOODEN
Block.PLATFORM_BIRCH,
Block.PLATFORM_BLOODROSE,
Block.PLATFORM_EBONY,
Block.PLATFORM_STONE,
Block.PLATFORM_WOODEN
)
/**
@@ -193,38 +190,38 @@ object TilesDrawer {
* i.e. red hues get lost if you dive into the water
*/
val TILES_BLEND_MUL = arrayListOf(
Tile.WATER,
Tile.WATER_1,
Tile.WATER_2,
Tile.WATER_3,
Tile.WATER_4,
Tile.WATER_5,
Tile.WATER_6,
Tile.WATER_7,
Tile.WATER_8,
Tile.WATER_9,
Tile.WATER_10,
Tile.WATER_11,
Tile.WATER_12,
Tile.WATER_13,
Tile.WATER_14,
Tile.WATER_15,
Tile.LAVA,
Tile.LAVA_1,
Tile.LAVA_2,
Tile.LAVA_3,
Tile.LAVA_4,
Tile.LAVA_5,
Tile.LAVA_6,
Tile.LAVA_7,
Tile.LAVA_8,
Tile.LAVA_9,
Tile.LAVA_10,
Tile.LAVA_11,
Tile.LAVA_12,
Tile.LAVA_13,
Tile.LAVA_14,
Tile.LAVA_15
Block.WATER,
Block.WATER_1,
Block.WATER_2,
Block.WATER_3,
Block.WATER_4,
Block.WATER_5,
Block.WATER_6,
Block.WATER_7,
Block.WATER_8,
Block.WATER_9,
Block.WATER_10,
Block.WATER_11,
Block.WATER_12,
Block.WATER_13,
Block.WATER_14,
Block.WATER_15,
Block.LAVA,
Block.LAVA_1,
Block.LAVA_2,
Block.LAVA_3,
Block.LAVA_4,
Block.LAVA_5,
Block.LAVA_6,
Block.LAVA_7,
Block.LAVA_8,
Block.LAVA_9,
Block.LAVA_10,
Block.LAVA_11,
Block.LAVA_12,
Block.LAVA_13,
Block.LAVA_14,
Block.LAVA_15
)
fun update() {
@@ -246,8 +243,8 @@ object TilesDrawer {
blendMul()
g.color = wallOverlayColour
g.fillRect(MapCamera.x.toFloat(), MapCamera.y.toFloat(),
MapCamera.width.toFloat() + 1, MapCamera.height.toFloat() + 1
g.fillRect(WorldCamera.x.toFloat(), WorldCamera.y.toFloat(),
WorldCamera.width.toFloat() + 1, WorldCamera.height.toFloat() + 1
)
blendNormal()
@@ -287,7 +284,7 @@ object TilesDrawer {
private fun drawTiles(g: Graphics, mode: Int, drawModeTilesBlendMul: Boolean) {
val for_y_start = y / TILE_SIZE
val for_y_end = TilesDrawer.clampHTile(for_y_start + (height / TILE_SIZE) + 2)
val for_y_end = BlocksDrawer.clampHTile(for_y_start + (height / TILE_SIZE) + 2)
val for_x_start = x / TILE_SIZE - 1
val for_x_end = for_x_start + (width / TILE_SIZE) + 3
@@ -313,7 +310,7 @@ object TilesDrawer {
// draw a tile, but only when illuminated
try {
if ((mode == WALL || mode == TERRAIN) && // not an air tile
(thisTile ?: 0) != Tile.AIR) {
(thisTile ?: 0) != Block.AIR) {
// check if light level of nearby or this tile is illuminated
if ( LightmapRenderer.getHighestRGB(x, y) ?: 0 >= tileDrawLightThreshold ||
LightmapRenderer.getHighestRGB(x - 1, y) ?: 0 >= tileDrawLightThreshold ||
@@ -360,7 +357,7 @@ object TilesDrawer {
// draw a tile
if (drawModeTilesBlendMul) {
if (TilesDrawer.isBlendMul(thisTile)) {
if (BlocksDrawer.isBlendMul(thisTile)) {
drawTile(mode, x, y, thisTileX, thisTileY)
}
}
@@ -373,7 +370,7 @@ object TilesDrawer {
// draw a breakage
if (mode == TERRAIN || mode == WALL) {
val breakage = if (mode == TERRAIN) world.getTerrainDamage(x, y) else world.getWallDamage(x, y)
val maxHealth = TileCodex[world.getTileFromTerrain(x, y)].strength
val maxHealth = BlockCodex[world.getTileFromTerrain(x, y)].strength
val stage = (breakage / maxHealth).times(breakAnimSteps).roundInt()
// actual drawing
if (stage > 0) {
@@ -420,10 +417,10 @@ object TilesDrawer {
*/
fun getNearbyTilesInfo(x: Int, y: Int, mode: Int, mark: Int?): Int {
val nearbyTiles = IntArray(4)
nearbyTiles[NEARBY_TILE_KEY_LEFT] = world.getTileFrom(mode, x - 1, y) ?: Tile.NULL
nearbyTiles[NEARBY_TILE_KEY_RIGHT] = world.getTileFrom(mode, x + 1, y) ?: Tile.NULL
nearbyTiles[NEARBY_TILE_KEY_LEFT] = world.getTileFrom(mode, x - 1, y) ?: Block.NULL
nearbyTiles[NEARBY_TILE_KEY_RIGHT] = world.getTileFrom(mode, x + 1, y) ?: Block.NULL
nearbyTiles[NEARBY_TILE_KEY_UP] = world.getTileFrom(mode, x , y - 1) ?: 4906
nearbyTiles[NEARBY_TILE_KEY_DOWN] = world.getTileFrom(mode, x , y + 1) ?: Tile.NULL
nearbyTiles[NEARBY_TILE_KEY_DOWN] = world.getTileFrom(mode, x , y + 1) ?: Block.NULL
// try for
var ret = 0
@@ -438,17 +435,17 @@ object TilesDrawer {
fun getNearbyTilesInfoNonSolid(x: Int, y: Int, mode: Int): Int {
val nearbyTiles = IntArray(4)
nearbyTiles[NEARBY_TILE_KEY_LEFT] = world.getTileFrom(mode, x - 1, y) ?: Tile.NULL
nearbyTiles[NEARBY_TILE_KEY_RIGHT] = world.getTileFrom(mode, x + 1, y) ?: Tile.NULL
nearbyTiles[NEARBY_TILE_KEY_LEFT] = world.getTileFrom(mode, x - 1, y) ?: Block.NULL
nearbyTiles[NEARBY_TILE_KEY_RIGHT] = world.getTileFrom(mode, x + 1, y) ?: Block.NULL
nearbyTiles[NEARBY_TILE_KEY_UP] = world.getTileFrom(mode, x , y - 1) ?: 4906
nearbyTiles[NEARBY_TILE_KEY_DOWN] = world.getTileFrom(mode, x , y + 1) ?: Tile.NULL
nearbyTiles[NEARBY_TILE_KEY_DOWN] = world.getTileFrom(mode, x , y + 1) ?: Block.NULL
// try for
var ret = 0
for (i in 0..3) {
try {
if (!TileCodex[nearbyTiles[i]].isSolid &&
!TileCodex[nearbyTiles[i]].isFluid) {
if (!BlockCodex[nearbyTiles[i]].isSolid &&
!BlockCodex[nearbyTiles[i]].isFluid) {
ret += (1 shl i) // add 1, 2, 4, 8 for i = 0, 1, 2, 3
}
} catch (e: ArrayIndexOutOfBoundsException) {
@@ -462,32 +459,32 @@ object TilesDrawer {
fun getNearbyTilesInfoWallSticker(x: Int, y: Int): Int {
val nearbyTiles = IntArray(4)
val NEARBY_TILE_KEY_BACK = NEARBY_TILE_KEY_UP
nearbyTiles[NEARBY_TILE_KEY_LEFT] = world.getTileFrom(TERRAIN, x - 1, y) ?: Tile.NULL
nearbyTiles[NEARBY_TILE_KEY_RIGHT] = world.getTileFrom(TERRAIN, x + 1, y) ?: Tile.NULL
nearbyTiles[NEARBY_TILE_KEY_DOWN] = world.getTileFrom(TERRAIN, x , y + 1) ?: Tile.NULL
nearbyTiles[NEARBY_TILE_KEY_BACK] = world.getTileFrom(WALL, x , y) ?: Tile.NULL
nearbyTiles[NEARBY_TILE_KEY_LEFT] = world.getTileFrom(TERRAIN, x - 1, y) ?: Block.NULL
nearbyTiles[NEARBY_TILE_KEY_RIGHT] = world.getTileFrom(TERRAIN, x + 1, y) ?: Block.NULL
nearbyTiles[NEARBY_TILE_KEY_DOWN] = world.getTileFrom(TERRAIN, x , y + 1) ?: Block.NULL
nearbyTiles[NEARBY_TILE_KEY_BACK] = world.getTileFrom(WALL, x , y) ?: Block.NULL
try {
if (TileCodex[nearbyTiles[NEARBY_TILE_KEY_DOWN]].isSolid)
if (BlockCodex[nearbyTiles[NEARBY_TILE_KEY_DOWN]].isSolid)
// has tile on the bottom
return 3
else if (TileCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid
&& TileCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid)
else if (BlockCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid
&& BlockCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid)
// has tile on both sides
return 0
else if (TileCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid)
else if (BlockCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid)
// has tile on the right
return 2
else if (TileCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid)
else if (BlockCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid)
// has tile on the left
return 1
else if (TileCodex[nearbyTiles[NEARBY_TILE_KEY_BACK]].isSolid)
else if (BlockCodex[nearbyTiles[NEARBY_TILE_KEY_BACK]].isSolid)
// has tile on the back
return 0
else
return 3
} catch (e: ArrayIndexOutOfBoundsException) {
return if (TileCodex[nearbyTiles[NEARBY_TILE_KEY_DOWN]].isSolid)
return if (BlockCodex[nearbyTiles[NEARBY_TILE_KEY_DOWN]].isSolid)
// has tile on the bottom
3 else 0
}
@@ -495,38 +492,38 @@ object TilesDrawer {
fun getNearbyTilesInfoPlatform(x: Int, y: Int): Int {
val nearbyTiles = IntArray(4)
nearbyTiles[NEARBY_TILE_KEY_LEFT] = world.getTileFrom(TERRAIN, x - 1, y) ?: Tile.NULL
nearbyTiles[NEARBY_TILE_KEY_RIGHT] = world.getTileFrom(TERRAIN, x + 1, y) ?: Tile.NULL
nearbyTiles[NEARBY_TILE_KEY_LEFT] = world.getTileFrom(TERRAIN, x - 1, y) ?: Block.NULL
nearbyTiles[NEARBY_TILE_KEY_RIGHT] = world.getTileFrom(TERRAIN, x + 1, y) ?: Block.NULL
if ((TileCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid &&
TileCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid) ||
if ((BlockCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid &&
BlockCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid) ||
isPlatform(nearbyTiles[NEARBY_TILE_KEY_LEFT]) &&
isPlatform(nearbyTiles[NEARBY_TILE_KEY_RIGHT])) // LR solid || LR platform
return 0
else if (TileCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid &&
else if (BlockCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid &&
!isPlatform(nearbyTiles[NEARBY_TILE_KEY_LEFT]) &&
!TileCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid &&
!BlockCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid &&
!isPlatform(nearbyTiles[NEARBY_TILE_KEY_RIGHT])) // L solid and not platform && R not solid and not platform
return 4
else if (TileCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid &&
else if (BlockCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid &&
!isPlatform(nearbyTiles[NEARBY_TILE_KEY_RIGHT]) &&
!TileCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid &&
!BlockCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid &&
!isPlatform(nearbyTiles[NEARBY_TILE_KEY_LEFT])) // R solid and not platform && L not solid and nto platform
return 6
else if (TileCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid &&
else if (BlockCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid &&
!isPlatform(nearbyTiles[NEARBY_TILE_KEY_LEFT])) // L solid && L not platform
return 3
else if (TileCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid &&
else if (BlockCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid &&
!isPlatform(nearbyTiles[NEARBY_TILE_KEY_RIGHT])) // R solid && R not platform
return 5
else if ((TileCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid ||
else if ((BlockCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid ||
isPlatform(nearbyTiles[NEARBY_TILE_KEY_LEFT])) &&
!TileCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid &&
!BlockCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid &&
!isPlatform(nearbyTiles[NEARBY_TILE_KEY_RIGHT])) // L solid or platform && R not solid and not platform
return 1
else if ((TileCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid ||
else if ((BlockCodex[nearbyTiles[NEARBY_TILE_KEY_RIGHT]].isSolid ||
isPlatform(nearbyTiles[NEARBY_TILE_KEY_RIGHT])) &&
!TileCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid &&
!BlockCodex[nearbyTiles[NEARBY_TILE_KEY_LEFT]].isSolid &&
!isPlatform(nearbyTiles[NEARBY_TILE_KEY_LEFT])) // R solid or platform && L not solid and not platform
return 2
else
@@ -593,6 +590,6 @@ object TilesDrawer {
fun isBlendMul(b: Int?): Boolean = TILES_BLEND_MUL.contains(b)
fun tileInCamera(x: Int, y: Int) =
x >= MapCamera.x.div(TILE_SIZE) && y >= MapCamera.y.div(TILE_SIZE) &&
x <= MapCamera.x.plus(width).div(TILE_SIZE) && y <= MapCamera.y.plus(width).div(TILE_SIZE)
x >= WorldCamera.x.div(TILE_SIZE) && y >= WorldCamera.y.div(TILE_SIZE) &&
x <= WorldCamera.x.plus(width).div(TILE_SIZE) && y <= WorldCamera.y.plus(width).div(TILE_SIZE)
}

View File

@@ -1,9 +1,8 @@
package net.torvald.terrarum.mapdrawer
package net.torvald.terrarum.worlddrawer
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.tilestats.TileStats
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.blockstats.BlockStats
import com.jme3.math.FastMath
import net.torvald.colourutil.ColourTemp
import net.torvald.terrarum.blendMul
@@ -24,14 +23,14 @@ object FeaturesDrawer {
private set
private val TILES_COLD = intArrayOf(
Tile.ICE_MAGICAL
, Tile.ICE_FRAGILE
, Tile.ICE_NATURAL
, Tile.SNOW)
Block.ICE_MAGICAL
, Block.ICE_FRAGILE
, Block.ICE_NATURAL
, Block.SNOW)
private val TILES_WARM = intArrayOf(
Tile.SAND_DESERT
, Tile.SAND_RED)
Block.SAND_DESERT
, Block.SAND_RED)
fun update(gc: GameContainer, delta_t: Int) {
}
@@ -46,8 +45,8 @@ object FeaturesDrawer {
fun drawEnvOverlay(g: Graphics) {
val onscreen_tiles_max = FastMath.ceil(Terrarum.HEIGHT * Terrarum.WIDTH / FastMath.sqr(TILE_SIZE.toFloat())) * 2
val onscreen_tiles_cap = onscreen_tiles_max / 4f
val onscreen_cold_tiles = TileStats.getCount(*TILES_COLD).toFloat()
val onscreen_warm_tiles = TileStats.getCount(*TILES_WARM).toFloat()
val onscreen_cold_tiles = BlockStats.getCount(*TILES_COLD).toFloat()
val onscreen_warm_tiles = BlockStats.getCount(*TILES_WARM).toFloat()
val colTemp_cold = colTempLinearFunc(onscreen_cold_tiles / onscreen_tiles_cap)
val colTemp_warm = colTempLinearFunc(-(onscreen_warm_tiles / onscreen_tiles_cap))
@@ -58,8 +57,8 @@ object FeaturesDrawer {
g.color = ColourTemp(colTemp)
g.fillRect(
MapCamera.x * zoom,
MapCamera.y * zoom,
WorldCamera.x * zoom,
WorldCamera.y * zoom,
Terrarum.WIDTH * if (zoom < 1) 1f / zoom else zoom,
Terrarum.HEIGHT * if (zoom < 1) 1f / zoom else zoom
)

View File

@@ -1,22 +1,15 @@
package net.torvald.terrarum.mapdrawer
package net.torvald.terrarum.worlddrawer
import net.torvald.terrarum.gameactors.Luminous
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.tileproperties.TileCodex
import net.torvald.terrarum.blockproperties.BlockCodex
import com.jme3.math.FastMath
import net.torvald.colourutil.RGB
import net.torvald.colourutil.CIELuvUtil.additiveLuv
import net.torvald.terrarum.concurrent.ThreadParallel
import net.torvald.terrarum.gameactors.ActorWithPhysics
import net.torvald.terrarum.gameactors.abs
import net.torvald.terrarum.gameactors.roundInt
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.tileproperties.TilePropUtil
import net.torvald.terrarum.blockproperties.Block
import org.newdawn.slick.Color
import org.newdawn.slick.Graphics
import java.util.*
import java.util.concurrent.locks.ReentrantLock
/**
* Created by minjaesong on 16-01-25.
@@ -25,8 +18,8 @@ import java.util.concurrent.locks.ReentrantLock
object LightmapRenderer {
private val world: GameWorld = Terrarum.ingame!!.world
val overscan_open: Int = Math.min(32, 256f.div(TileCodex[Tile.AIR].opacity and 0xFF).ceil())
val overscan_opaque: Int = Math.min(8, 256f.div(TileCodex[Tile.STONE].opacity and 0xFF).ceil())
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())
private val LIGHTMAP_WIDTH = Terrarum.ingame!!.ZOOM_MIN.inv().times(Terrarum.WIDTH)
.div(FeaturesDrawer.TILE_SIZE).ceil() + overscan_open * 2 + 3
@@ -39,7 +32,7 @@ object LightmapRenderer {
private val lightmap: Array<IntArray> = Array(LIGHTMAP_HEIGHT) { IntArray(LIGHTMAP_WIDTH) }
private val lanternMap = ArrayList<Lantern>(Terrarum.ingame!!.ACTORCONTAINER_INITIAL_SIZE * 4)
private val AIR = Tile.AIR
private val AIR = Block.AIR
private val OFFSET_R = 2
private val OFFSET_G = 1
@@ -87,11 +80,11 @@ object LightmapRenderer {
}
fun renderLightMap() {
for_x_start = MapCamera.x / TILE_SIZE - 1 // fix for premature lightmap rendering
for_y_start = MapCamera.y / TILE_SIZE - 1 // on topmost/leftmost side
for_x_start = WorldCamera.x / TILE_SIZE - 1 // fix for premature lightmap rendering
for_y_start = WorldCamera.y / TILE_SIZE - 1 // on topmost/leftmost side
for_x_end = for_x_start + MapCamera.width / TILE_SIZE + 3
for_y_end = for_y_start + MapCamera.height / TILE_SIZE + 2 // same fix as above
for_x_end = for_x_start + WorldCamera.width / TILE_SIZE + 3
for_y_end = for_y_start + WorldCamera.height / TILE_SIZE + 2 // same fix as above
/**
* * true: overscanning is limited to 8 tiles in width (overscan_opaque)
@@ -159,8 +152,8 @@ object LightmapRenderer {
// build noop map
for (i in 0..rect_size) {
val point = edgeToMaskNum(i)
val tile = Terrarum.ingame!!.world.getTileFromTerrain(point.first, point.second) ?: Tile.NULL
val isSolid = TileCodex[tile].isSolid
val tile = Terrarum.ingame!!.world.getTileFromTerrain(point.first, point.second) ?: Block.NULL
val isSolid = BlockCodex[tile].isSolid
noop_mask.set(i, isSolid)
}
@@ -248,8 +241,8 @@ object LightmapRenderer {
var lightLevelThis: Int = 0
val thisTerrain = Terrarum.ingame!!.world.getTileFromTerrain(x, y)
val thisWall = Terrarum.ingame!!.world.getTileFromWall(x, y)
val thisTileLuminosity = TileCodex[thisTerrain].luminosity
val thisTileOpacity = TileCodex[thisTerrain].opacity
val thisTileLuminosity = BlockCodex[thisTerrain].luminosity
val thisTileOpacity = BlockCodex[thisTerrain].opacity
val sunLight = Terrarum.ingame!!.world.globalLight
// MIX TILE

View File

@@ -1,4 +1,4 @@
package net.torvald.terrarum.mapdrawer
package net.torvald.terrarum.worlddrawer
import com.jme3.math.FastMath
import net.torvald.terrarum.Terrarum
@@ -7,7 +7,7 @@ import net.torvald.terrarum.gameworld.GameWorld
/**
* Created by minjaesong on 2016-12-30.
*/
object MapCamera {
object WorldCamera {
private val world: GameWorld? = Terrarum.ingame?.world
private val TILE_SIZE = FeaturesDrawer.TILE_SIZE

View File

@@ -1,4 +1,4 @@
package net.torvald.terrarum.mapgenerator
package net.torvald.terrarum.worldgenerator
import net.torvald.random.HQRNG

View File

@@ -1,4 +1,4 @@
package net.torvald.terrarum.mapgenerator
package net.torvald.terrarum.worldgenerator
internal object FloatingIslePreset01 {
var w = 100

View File

@@ -1,4 +1,4 @@
package net.torvald.terrarum.mapgenerator
package net.torvald.terrarum.worldgenerator
internal object FloatingIslePreset02 {
var w = 80

View File

@@ -1,4 +1,4 @@
package net.torvald.terrarum.mapgenerator
package net.torvald.terrarum.worldgenerator
internal object FloatingIslePreset03 {
var w = 66

View File

@@ -1,4 +1,4 @@
package net.torvald.terrarum.mapgenerator
package net.torvald.terrarum.worldgenerator
internal object FloatingIslePreset04 {
var w = 88

View File

@@ -1,4 +1,4 @@
package net.torvald.terrarum.mapgenerator
package net.torvald.terrarum.worldgenerator
internal object FloatingIslePreset05 {
var w = 74

View File

@@ -1,4 +1,4 @@
package net.torvald.terrarum.mapgenerator
package net.torvald.terrarum.worldgenerator
/**
* Created by minjaesong on 16-03-31.

View File

@@ -1,4 +1,4 @@
package net.torvald.terrarum.mapgenerator
package net.torvald.terrarum.worldgenerator
import com.jme3.math.FastMath

View File

@@ -1,4 +1,4 @@
package net.torvald.terrarum.mapgenerator
package net.torvald.terrarum.worldgenerator
import com.jme3.math.FastMath

View File

@@ -1,4 +1,4 @@
package net.torvald.terrarum.mapgenerator
package net.torvald.terrarum.worldgenerator
import com.jme3.math.FastMath

View File

@@ -1,4 +1,4 @@
package net.torvald.terrarum.mapgenerator
package net.torvald.terrarum.worldgenerator
import com.jme3.math.FastMath

View File

@@ -1,4 +1,4 @@
package net.torvald.terrarum.mapgenerator
package net.torvald.terrarum.worldgenerator
/**
* Created by minjaesong on 16-03-31.

View File

@@ -1,4 +1,4 @@
package net.torvald.terrarum.mapgenerator
package net.torvald.terrarum.worldgenerator
import net.torvald.dataclass.IntArrayStack
import net.torvald.colourutil.Col4096

View File

@@ -1,4 +1,4 @@
package net.torvald.terrarum.mapgenerator
package net.torvald.terrarum.worldgenerator
import net.torvald.random.HQRNG
import com.jme3.math.FastMath

View File

@@ -1,4 +1,4 @@
package net.torvald.terrarum.mapgenerator
package net.torvald.terrarum.worldgenerator
/*
* A speed-improved simplex noise algorithm for 2D, 3D and 4D in Java.

View File

@@ -1,4 +1,4 @@
package net.torvald.terrarum.mapgenerator
package net.torvald.terrarum.worldgenerator
/**
* Created by minjaesong on 16-06-13.

View File

@@ -1,14 +1,13 @@
package net.torvald.terrarum.mapgenerator
package net.torvald.terrarum.worldgenerator
import net.torvald.random.HQRNG
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.tileproperties.Tile
import net.torvald.terrarum.blockproperties.Block
import com.jme3.math.FastMath
import com.sudoplay.joise.Joise
import com.sudoplay.joise.module.*
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.concurrent.ThreadParallel
import net.torvald.terrarum.gameactors.ThreadActorUpdate
import net.torvald.terrarum.gameactors.roundInt
import java.util.*
@@ -117,32 +116,32 @@ object WorldGenerator {
*/
val noiseArray = arrayOf(
// TODO cave one featured in http://accidentalnoise.sourceforge.net/minecraftworlds.html
TaggedJoise("Carving caves", noiseCave(), 1.0, TILE_MACRO_ALL, TILE_MACRO_ALL, Tile.AIR, NoiseFilterSqrt, CAVEGEN_THRE_START, CAVEGEN_THRE_END)
// , TaggedJoise("Collapsing caves", noiseBlobs(0.5), 0.3, Tile.AIR, Tile.STONE, Tile.STONE, NoiseFilterUniform)
TaggedJoise("Carving caves", noiseCave(), 1.0, TILE_MACRO_ALL, TILE_MACRO_ALL, Block.AIR, NoiseFilterSqrt, CAVEGEN_THRE_START, CAVEGEN_THRE_END)
// , TaggedJoise("Collapsing caves", noiseBlobs(0.5), 0.3, Block.AIR, Block.STONE, Block.STONE, NoiseFilterUniform)
//
//, TaggedJoise("Putting stone patches on the ground", noiseBlobs(0.8), 1.02f, intArrayOf(Tile.DIRT, Tile.GRASS), Tile.DIRT, Tile.STONE, NoiseFilterQuadratic, NOISE_GRAD_END, NOISE_GRAD_START)
//, TaggedJoise("Placing dirt spots in the cave", noiseBlobs(0.5), 0.98f, Tile.STONE, Tile.STONE, Tile.DIRT, NoiseFilterQuadratic, NOISE_GRAD_END, NOISE_GRAD_START)
//, TaggedJoise("Quarrying some stone into gravels", noiseBlobs(0.5), 0.98f, Tile.STONE, Tile.STONE, Tile.GRAVEL, NoiseFilterQuadratic, NOISE_GRAD_END, NOISE_GRAD_START)
//, TaggedJoise("Putting stone patches on the ground", noiseBlobs(0.8), 1.02f, intArrayOf(Block.DIRT, Block.GRASS), Block.DIRT, Block.STONE, NoiseFilterQuadratic, NOISE_GRAD_END, NOISE_GRAD_START)
//, TaggedJoise("Placing dirt spots in the cave", noiseBlobs(0.5), 0.98f, Block.STONE, Block.STONE, Block.DIRT, NoiseFilterQuadratic, NOISE_GRAD_END, NOISE_GRAD_START)
//, TaggedJoise("Quarrying some stone into gravels", noiseBlobs(0.5), 0.98f, Block.STONE, Block.STONE, Block.GRAVEL, NoiseFilterQuadratic, NOISE_GRAD_END, NOISE_GRAD_START)
//
//, TaggedJoise("Growing copper veins", noiseRidged(1.7f, 1.7f), 1.68f, Tile.STONE, Tile.STONE, Tile.ORE_COPPER)
//, TaggedJoise("Cutting copper veins", noiseBlobs(0.4f, 0.4f), 0.26f, Tile.ORE_COPPER, Tile.STONE, Tile.STONE)
//, TaggedJoise("Growing copper veins", noiseRidged(1.7f, 1.7f), 1.68f, Block.STONE, Block.STONE, Block.ORE_COPPER)
//, TaggedJoise("Cutting copper veins", noiseBlobs(0.4f, 0.4f), 0.26f, Block.ORE_COPPER, Block.STONE, Block.STONE)
//
//, TaggedJoise("Growing iron veins", noiseRidged(1.7f, 1.7f), 1.68f, Tile.STONE, Tile.STONE, Tile.ORE_IRON)
//, TaggedJoise("Cutting iron veins", noiseBlobs(0.7f, 0.7f), 0.26f, Tile.ORE_IRON, Tile.STONE, Tile.STONE)
//, TaggedJoise("Growing iron veins", noiseRidged(1.7f, 1.7f), 1.68f, Block.STONE, Block.STONE, Block.ORE_IRON)
//, TaggedJoise("Cutting iron veins", noiseBlobs(0.7f, 0.7f), 0.26f, Block.ORE_IRON, Block.STONE, Block.STONE)
//
//, TaggedJoise("Growing silver veins", noiseRidged(1.7f, 1.7f), 1.71f, Tile.STONE, Tile.STONE, Tile.ORE_SILVER)
//, TaggedJoise("Cutting silver veins", noiseBlobs(0.7f, 0.7f), 0.26f, Tile.ORE_SILVER, Tile.STONE, Tile.STONE)
//, TaggedJoise("Growing silver veins", noiseRidged(1.7f, 1.7f), 1.71f, Block.STONE, Block.STONE, Block.ORE_SILVER)
//, TaggedJoise("Cutting silver veins", noiseBlobs(0.7f, 0.7f), 0.26f, Block.ORE_SILVER, Block.STONE, Block.STONE)
//
//, TaggedJoise("Growing gold veins", noiseRidged(1.7f, 1.7f), 1.73f, Tile.STONE, Tile.STONE, Tile.ORE_GOLD)
//, TaggedJoise("Cutting gold veins", noiseBlobs(0.7f, 0.7f), 0.26f, Tile.ORE_GOLD, Tile.STONE, Tile.STONE)
//, TaggedJoise("Growing gold veins", noiseRidged(1.7f, 1.7f), 1.73f, Block.STONE, Block.STONE, Block.ORE_GOLD)
//, TaggedJoise("Cutting gold veins", noiseBlobs(0.7f, 0.7f), 0.26f, Block.ORE_GOLD, Block.STONE, Block.STONE)
// // FIXME gem clusters are too large
//, TaggedJoise("Growing topaz clusters", noiseBlobs(0.9f, 0.9f), 2f, Tile.STONE, Tile.STONE, Tile.RAW_TOPAZ)
//, TaggedJoise("Growing aluminium oxide clusters", noiseBlobs(0.9f, 0.9f), 1.7f, Tile.STONE, Tile.STONE, intArrayOf(Tile.RAW_RUBY, Tile.RAW_SAPPHIRE))
//, TaggedJoise("Growing emerald clusters", noiseBlobs(0.9f, 0.9f), 1.7f, Tile.STONE, Tile.STONE, Tile.RAW_EMERALD)
//, TaggedJoise("Growing hearts of white", noiseBlobs(0.9f, 0.9f), 1.83f, Tile.STONE, Tile.STONE, Tile.RAW_DIAMOND)
//, TaggedJoise("Growing hearts of violet", noiseRidged(2.5f, 2.5f), 1.75f, Tile.STONE, Tile.STONE, Tile.RAW_AMETHYST)
//, TaggedJoise("Growing topaz clusters", noiseBlobs(0.9f, 0.9f), 2f, Block.STONE, Block.STONE, Block.RAW_TOPAZ)
//, TaggedJoise("Growing aluminium oxide clusters", noiseBlobs(0.9f, 0.9f), 1.7f, Block.STONE, Block.STONE, intArrayOf(Block.RAW_RUBY, Block.RAW_SAPPHIRE))
//, TaggedJoise("Growing emerald clusters", noiseBlobs(0.9f, 0.9f), 1.7f, Block.STONE, Block.STONE, Block.RAW_EMERALD)
//, TaggedJoise("Growing hearts of white", noiseBlobs(0.9f, 0.9f), 1.83f, Block.STONE, Block.STONE, Block.RAW_DIAMOND)
//, TaggedJoise("Growing hearts of violet", noiseRidged(2.5f, 2.5f), 1.75f, Block.STONE, Block.STONE, Block.RAW_AMETHYST)
//
//, TaggedJoise("Cutting over-grown hearts", noiseBlobs(0.7f, 0.7f), 0.17f, Tile.RAW_AMETHYST, Tile.STONE, Tile.STONE)
//, TaggedJoise("Cutting over-grown hearts", noiseBlobs(0.7f, 0.7f), 0.17f, Block.RAW_AMETHYST, Block.STONE, Block.STONE)
)
processNoiseLayers(noiseArray)
@@ -564,11 +563,11 @@ object WorldGenerator {
for (i in 0..HEIGHT - pillarOffset - 1) {
if (i < DIRT_LAYER_DEPTH) {
world.setTileTerrain(x, i + pillarOffset, Tile.DIRT)
world.setTileWall(x, i + pillarOffset, Tile.DIRT)
world.setTileTerrain(x, i + pillarOffset, Block.DIRT)
world.setTileWall(x, i + pillarOffset, Block.DIRT)
} else {
world.setTileTerrain(x, i + pillarOffset, Tile.STONE)
world.setTileWall(x, i + pillarOffset, Tile.STONE)
world.setTileTerrain(x, i + pillarOffset, Block.STONE)
world.setTileWall(x, i + pillarOffset, Block.STONE)
}
}
@@ -633,11 +632,11 @@ object WorldGenerator {
for (x in 0..WIDTH - 1) {
for (y in 0..HEIGHT - 1) {
if (terrainMap[clamp(y + DIRT_LAYER_DEPTH, 0, HEIGHT - 1)].get(x)) {
// map.setTileTerrain(x, y, Tile.DIRT)
// map.setTileWall(x, y, Tile.DIRT)
// map.setTileTerrain(x, y, Block.DIRT)
// map.setTileWall(x, y, Block.DIRT)
val tile =
if (y < dirtStoneLine[x]) Tile.DIRT
else Tile.STONE
if (y < dirtStoneLine[x]) Block.DIRT
else Block.STONE
world.setTileTerrain(x, y, tile)
world.setTileWall(x, y, tile)
}
@@ -780,7 +779,7 @@ object WorldGenerator {
val nIslands = random.nextInt(Math.max(1, nIslandsMax - nIslandsMin)) + nIslandsMin
val prevIndex = -1
val tiles = intArrayOf(Tile.AIR, Tile.STONE, Tile.DIRT, Tile.GRASS)
val tiles = intArrayOf(Block.AIR, Block.STONE, Block.DIRT, Block.GRASS)
for (i in 0..nIslands - 1) {
var currentIndex = random.nextInt(FloatingIslandsPreset.PRESETS)
@@ -809,7 +808,7 @@ object WorldGenerator {
for (i in HEIGHT * 14 / 15..HEIGHT - 1) {
for (j in 0..WIDTH - 1) {
if (world.terrainArray[i][j].toInt() == 0) {
world.setTileTerrain(j, i, Tile.LAVA)
world.setTileTerrain(j, i, Block.LAVA)
}
}
}
@@ -837,8 +836,8 @@ object WorldGenerator {
if (nearbyWallTile == null) break;
if (i != 4 && thisTile == Tile.DIRT && nearbyWallTile == Tile.AIR) {
world.setTileTerrain(x, y, Tile.GRASS)
if (i != 4 && thisTile == Block.DIRT && nearbyWallTile == Block.AIR) {
world.setTileTerrain(x, y, Block.GRASS)
break
}
}
@@ -848,7 +847,7 @@ object WorldGenerator {
}
private fun isGrassOrDirt(x: Int, y: Int): Boolean {
return world.getTileFromTerrain(x, y) == Tile.GRASS || world.getTileFromTerrain(x, y) == Tile.DIRT
return world.getTileFromTerrain(x, y) == Block.GRASS || world.getTileFromTerrain(x, y) == Block.DIRT
}
private fun replaceIfTerrain(ifTileRaw: Int, x: Int, y: Int, replaceTileRaw: Int) {
@@ -867,19 +866,19 @@ object WorldGenerator {
private fun fillOcean() {
val thisSandList = intArrayOf(
Tile.SAND, Tile.SAND, Tile.SAND, Tile.SAND,
Tile.SAND_WHITE, Tile.SAND_WHITE, Tile.SAND_WHITE,
Tile.SAND_BLACK, Tile.SAND_BLACK, Tile.SAND_GREEN
Block.SAND, Block.SAND, Block.SAND, Block.SAND,
Block.SAND_WHITE, Block.SAND_WHITE, Block.SAND_WHITE,
Block.SAND_BLACK, Block.SAND_BLACK, Block.SAND_GREEN
)
val thisRand = HQRNG(SEED xor random.nextLong())
val thisSand = thisSandList[thisRand.nextInt(thisSandList.size)]
// val thisSand = Tile.SAND_GREEN
// val thisSand = Block.SAND_GREEN
val thisSandStr = if (thisSand == Tile.SAND_BLACK)
val thisSandStr = if (thisSand == Block.SAND_BLACK)
"black"
else if (thisSand == Tile.SAND_GREEN)
else if (thisSand == Block.SAND_GREEN)
"green"
else if (thisSand == Tile.SAND)
else if (thisSand == Block.SAND)
"yellow"
else
"white"
@@ -891,11 +890,11 @@ object WorldGenerator {
if (ix < OCEAN_WIDTH) {
if (worldOceanPosition == TYPE_OCEAN_LEFT) {
for (y in getTerrainHeightFromHeightMap(OCEAN_WIDTH)..getTerrainHeightFromHeightMap(ix) - 1) {
world.setTileTerrain(ix, y, Tile.WATER)
world.setTileTerrain(ix, y, Block.WATER)
}
} else if (worldOceanPosition == TYPE_OCEAN_RIGHT) {
for (y in getTerrainHeightFromHeightMap(world.width - 1 - OCEAN_WIDTH)..getTerrainHeightFromHeightMap(world.width - 1 - ix) - 1) {
world.setTileTerrain(world.width - 1 - ix, y, Tile.WATER)
world.setTileTerrain(world.width - 1 - ix, y, Block.WATER)
}
}
}
@@ -925,17 +924,17 @@ object WorldGenerator {
for (y in 0..world.height - 1 - 1) {
for (x in 0..getFrozenAreaWidth(y) - 1) {
if (worldOceanPosition == TYPE_OCEAN_RIGHT) {
replaceIfTerrain(Tile.DIRT, x, y, Tile.SNOW)
replaceIfTerrain(Tile.STONE, x, y, Tile.ICE_NATURAL)
replaceIfTerrain(Block.DIRT, x, y, Block.SNOW)
replaceIfTerrain(Block.STONE, x, y, Block.ICE_NATURAL)
replaceIfWall(Tile.DIRT, x, y, Tile.SNOW)
replaceIfWall(Tile.STONE, x, y, Tile.ICE_NATURAL)
replaceIfWall(Block.DIRT, x, y, Block.SNOW)
replaceIfWall(Block.STONE, x, y, Block.ICE_NATURAL)
} else {
replaceIfTerrain(Tile.DIRT, world.width - 1 - x, y, Tile.SNOW)
replaceIfTerrain(Tile.STONE, world.width - 1 - x, y, Tile.ICE_NATURAL)
replaceIfTerrain(Block.DIRT, world.width - 1 - x, y, Block.SNOW)
replaceIfTerrain(Block.STONE, world.width - 1 - x, y, Block.ICE_NATURAL)
replaceIfWall(Tile.DIRT, world.width - 1 - x, y, Tile.SNOW)
replaceIfWall(Tile.STONE, world.width - 1 - x, y, Tile.ICE_NATURAL)
replaceIfWall(Block.DIRT, world.width - 1 - x, y, Block.SNOW)
replaceIfWall(Block.STONE, world.width - 1 - x, y, Block.ICE_NATURAL)
}
}
}

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB