diff --git a/out/production/Terrarum_renewed/com/Torvald/ImageFont/GameFontWhite.class b/out/production/Terrarum_renewed/com/Torvald/ImageFont/GameFontWhite.class index 93cfe3aa5..45fdd9edd 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/ImageFont/GameFontWhite.class and b/out/production/Terrarum_renewed/com/Torvald/ImageFont/GameFontWhite.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/Player.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/Player.class index 623639ecc..97580624f 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/Player.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/Player.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/CodexEdictis.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/CodexEdictis.class index 10592adfa..33b5ac130 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/CodexEdictis.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/CodexEdictis.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/CommandInput.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/CommandInput.class index 191f2ed4c..a11178d58 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/CommandInput.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/CommandInput.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/CommandInterpreter.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/CommandInterpreter.class index 00eb0db57..7df8873a4 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/CommandInterpreter.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/CommandInterpreter.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/ConsoleCommand.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/ConsoleCommand.class index c5bb76b6d..13685b72f 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/ConsoleCommand.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/ConsoleCommand.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/GetAV.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/GetAV.class index 7f573e399..3ef16754a 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/GetAV.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/GetAV.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/GetFactioning.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/GetFactioning.class index 41a49b5f7..549c1548f 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/GetFactioning.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/GetFactioning.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/GetLocale.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/GetLocale.class index 9630d6db1..b542641cc 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/GetLocale.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/GetLocale.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/SetLocale.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/SetLocale.class index 429f0af07..6bf1ab485 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/SetLocale.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/SetLocale.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/LangPack/Lang.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/LangPack/Lang.class index 6bcfe8a54..2383c553e 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/LangPack/Lang.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/LangPack/Lang.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/LightmapLantern.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/LightmapLantern.class index c9ebc90f1..07d9c1a7d 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/LightmapLantern.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/LightmapLantern.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/LightmapRenderer.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/LightmapRenderer.class index ece444f74..832da59a6 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/LightmapRenderer.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/LightmapRenderer.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/MapCamera.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/MapCamera.class index db0dbeb29..5f968dc3c 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/MapCamera.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/MapCamera.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/TileProp.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/TileProp.class index 86882584b..4b29fcf72 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/TileProp.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/TileProp.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/TilePropCodex.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/TilePropCodex.class index 101b14a0b..b8fe43e4b 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/TilePropCodex.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/TilePropCodex.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/propdata.csv b/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/propdata.csv index e067dd1dd..d9606412b 100644 --- a/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/propdata.csv +++ b/out/production/Terrarum_renewed/com/Torvald/Terrarum/TileProperties/propdata.csv @@ -1,38 +1,38 @@ "id";"name" ;"opacity";"strength";"fluid";"viscosity";"solid";"wall";"lumcolor";"drop";"fall";"friction" -# Friction: 0: frictionless, <16: slippery, 16: regular, >16: sticky - "0";"TILE_AIR" ; "1"; "0"; "0"; "N/A"; "0"; "0"; "0"; "0"; "0";"16" - "1";"TILE_STONE" ; "5"; "25"; "0"; "N/A"; "1"; "1"; "0"; "1"; "0";"16" - "2";"TILE_DIRT" ; "5"; "6"; "0"; "N/A"; "1"; "1"; "0"; "2"; "0";"16" - "3";"TILE_GRASS" ; "5"; "6"; "0"; "N/A"; "1"; "1"; "0"; "2"; "0";"16" - "4";"TILE_PLANK_NORMAL" ; "5"; "12"; "0"; "N/A"; "1"; "1"; "0"; "4"; "0";"16" - "5";"TILE_PLANK_EBONY" ; "5"; "12"; "0"; "N/A"; "1"; "1"; "0"; "5"; "0";"16" - "6";"TILE_PLANK_BIRCH" ; "5"; "12"; "0"; "N/A"; "1"; "1"; "0"; "6"; "0";"16" - "7";"TILE_PLANK_BLOODROSE" ; "5"; "12"; "0"; "N/A"; "1"; "1"; "0"; "7"; "0";"16" - "8";"TILE_TRUNK_NORMAL" ; "5"; "12"; "0"; "N/A"; "1"; "0"; "0"; "8"; "0";"16" - "9";"TILE_TRUNK_EBONY" ; "5"; "12"; "0"; "N/A"; "1"; "0"; "0"; "9"; "0";"16" - "10";"TILE_TRUNK_BIRCH" ; "5"; "12"; "0"; "N/A"; "1"; "0"; "0"; "10"; "0";"16" - "11";"TILE_TRUNK_BLOODROSE" ; "5"; "12"; "0"; "N/A"; "1"; "0"; "0"; "11"; "0";"16" - "12";"TILE_STONE_QUARRIED" ; "5"; "25"; "0"; "N/A"; "1"; "1"; "0"; "12"; "0";"16" - "13";"TILE_SAND" ; "5"; "6"; "0"; "N/A"; "1"; "1"; "0"; "13"; "1";"16" - "14";"TILE_GRAVEL" ; "5"; "6"; "0"; "N/A"; "1"; "0"; "0"; "14"; "1";"16" +# Friction: 0: frictionless, <16: slippery, 16: regular, >16: sticky | Opacity/Lumcolor: 40-step RGB + "0";"TILE_AIR" ; "1641"; "0"; "0"; "N/A"; "0"; "0"; "0"; "0"; "0";"16" + "1";"TILE_STONE" ; "8205"; "25"; "0"; "N/A"; "1"; "1"; "0"; "1"; "0";"16" + "2";"TILE_DIRT" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "2"; "0";"16" + "3";"TILE_GRASS" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "2"; "0";"16" + "4";"TILE_PLANK_NORMAL" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "4"; "0";"16" + "5";"TILE_PLANK_EBONY" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "5"; "0";"16" + "6";"TILE_PLANK_BIRCH" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "6"; "0";"16" + "7";"TILE_PLANK_BLOODROSE" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "7"; "0";"16" + "8";"TILE_TRUNK_NORMAL" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "8"; "0";"16" + "9";"TILE_TRUNK_EBONY" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "9"; "0";"16" + "10";"TILE_TRUNK_BIRCH" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "10"; "0";"16" + "11";"TILE_TRUNK_BLOODROSE" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "11"; "0";"16" + "12";"TILE_STONE_QUARRIED" ; "8205"; "25"; "0"; "N/A"; "1"; "1"; "0"; "12"; "0";"16" + "13";"TILE_SAND" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "13"; "1";"16" + "14";"TILE_GRAVEL" ; "8205"; "6"; "0"; "N/A"; "1"; "0"; "0"; "14"; "1";"16" - "15";"TILE_ORE_MALACHITE" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "15"; "0";"16" - "16";"TILE_ORE_HEMATITE" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "16"; "0";"16" - "17";"TILE_ORE_NATURAL_GOLD" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "17"; "0";"16" - "18";"TILE_ORE_NATURAL_SILVER" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "18"; "0";"16" - "19";"TILE_ORE_RUTILE" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "19"; "0";"16" - "20";"TILE_ORE_AURICHALCUMITE" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "20"; "0";"16" - "21";"TILE_GEM_RUBY" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "21"; "0";"16" - "22";"TILE_GEM_EMERALD" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "22"; "0";"16" - "23";"TILE_GEM_SAPPHIRE" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "23"; "0";"16" - "24";"TILE_GEM_TOPAZ" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "24"; "0";"16" - "25";"TILE_GEM_DIAMOND" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "25"; "0";"16" - "26";"TILE_GEM_AMETHYST" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "26"; "0";"16" + "15";"TILE_ORE_MALACHITE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "15"; "0";"16" + "16";"TILE_ORE_HEMATITE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "16"; "0";"16" + "17";"TILE_ORE_NATURAL_GOLD" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "17"; "0";"16" + "18";"TILE_ORE_NATURAL_SILVER" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "18"; "0";"16" + "19";"TILE_ORE_RUTILE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "19"; "0";"16" + "20";"TILE_ORE_AURICHALCUMITE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "20"; "0";"16" + "21";"TILE_GEM_RUBY" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "21"; "0";"16" + "22";"TILE_GEM_EMERALD" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "22"; "0";"16" + "23";"TILE_GEM_SAPPHIRE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "23"; "0";"16" + "24";"TILE_GEM_TOPAZ" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "24"; "0";"16" + "25";"TILE_GEM_DIAMOND" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "25"; "0";"16" + "26";"TILE_GEM_AMETHYST" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "26"; "0";"16" - "27";"TILE_SNOW" ; "5"; "6"; "0"; "N/A"; "1"; "1"; "0"; "27"; "0";"16" - "28";"TILE_ICE_FRAGILE" ; "2"; "1"; "0"; "N/A"; "1"; "0"; "0"; "28"; "0";"16" - "29";"TILE_ICE_NATURAL" ; "4"; "25"; "0"; "N/A"; "1"; "1"; "0"; "29"; "0"; "8" - "30";"TILE_ICE_CLEAR_MAGICAL" ; "5"; "25"; "0"; "N/A"; "1"; "1"; "4967"; "30"; "0"; "8" + "27";"TILE_SNOW" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "27"; "0";"16" + "28";"TILE_ICE_FRAGILE" ; "3282"; "1"; "0"; "N/A"; "1"; "0"; "0"; "28"; "0";"16" + "29";"TILE_ICE_NATURAL" ; "6564"; "25"; "0"; "N/A"; "1"; "1"; "0"; "29"; "0"; "8" + "30";"TILE_ICE_CLEAR_MAGICAL" ; "8205"; "25"; "0"; "N/A"; "1"; "1"; "4967"; "30"; "0"; "8" # see scandinavian name set female of this tile id! "31";"TILE_PLATFORM_STONE" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "31"; "0";"16" "32";"TILE_PLATFORM_WOODEN" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "32"; "0";"16" @@ -42,5 +42,5 @@ "36";"TILE_TORCH" ; "0"; "0"; "0"; "N/A"; "0"; "0";"63680"; "36"; "0";"16" -"239";"TILE_WATER" ; "2"; "100"; "1"; "2"; "0"; "0";"59159"; "239"; "0";"16" -"255";"TILE_LAVA" ; "0"; "100"; "1"; "2"; "0"; "0";"48320"; "239"; "0";"16" +"239";"TILE_WATER" ; "6522"; "100"; "1"; "2"; "0"; "0"; "0"; "239"; "0";"16" +"255";"TILE_LAVA" ; "62358"; "100"; "1"; "2"; "0"; "0";"48320"; "239"; "0";"16" diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/UserInterface/BasicDebugInfoWindow.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/UserInterface/BasicDebugInfoWindow.class index a8b2b72a7..f4c1d8745 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/UserInterface/BasicDebugInfoWindow.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/UserInterface/BasicDebugInfoWindow.class differ diff --git a/res/books/kana_test_kanji.txt b/res/books/kana_test_kanji.txt index ea92ad6ef..55dcf37d5 100644 --- a/res/books/kana_test_kanji.txt +++ b/res/books/kana_test_kanji.txt @@ -1,29 +1,29 @@ 世界一みんなの人気者 -それは彼女のこと アシュリー +それは かのじょの こと アシュリー 一目見れば誰もが振り向く -当たり前アシュリーだもん +あたりまえ アシュリーだもん 世界中みんなが憧れる -それは彼女のこと アシュリー +それは かのじょの こと アシュリー アシュリー様の魔法は最高 -今夜もパーティよ +こんやも パーティよ -なわ ぶな ぬー 笑いの呪文 -じお いら うん 何お呪文 -いお でぃ えむ 覚えられない -あぁ いや 退屈 +なわ ぶな ぬー わらいの じゅもん +じお いら うん なんの じゅもん +いお でぃ えむ おぼえ られない +あぁ いや たいくつ 世界一みんなの人気者 -それは彼女のこと アシュリー +それは かのじょの こと アシュリー アシュリー様の魔法は最高 -怖いもの無しよ +こわい もの なしよ -夜空の海 数多の星 -いつも一人きり -みんなと仲良くしたいの +よぞらの うみ あまたの ほし +いつも ひとりきり +みんなと なかよく したいの どうしたらいいの 世界一みんなの人気者 -それは彼女のこと アシュリー -アシュリー様の魔法は最高 -今夜もパーティよ +それは かのじょの こと アシュリー +アシュリー様の魔法は最高よぞら +こんやも パーティよ diff --git a/res/graphics/fonts/unifont_unihan_jp.png b/res/graphics/fonts/unifont_unihan_ja.png similarity index 100% rename from res/graphics/fonts/unifont_unihan_jp.png rename to res/graphics/fonts/unifont_unihan_ja.png diff --git a/res/locales/devmsg.csv b/res/locales/devmsg.csv index d463d688f..ee5bf473a 100644 --- a/res/locales/devmsg.csv +++ b/res/locales/devmsg.csv @@ -1,7 +1,5 @@ "STRING_ID";"IETF language tag(s) without dash";"enUS";"frFR";"esES";"deDE";"itIT";"ptBR";"ptPT";"ruRU";"elGR";"trTR";"daDK";"noNB";"svSE";"nlNL";"plPL";"fiFI";"jaJP";"zhCN";"zhTW";"koKR";"csCZ";"huHU";"roRO";"thTH";"bgBG";"heIL";"jakanaJP" -"TERM_PHYS_MASS";;"mass";"masse";;;;;;;;;;;;;;;"質量";;;"질량";;;;;;;"しつりょう" - "DEV_MEMORY_SHORT_CAP";;"MEM";"MEM";;;;;;;;;;;;;;;"メモリー";;;"메모리";;;;;;;"メモリー" "DEV_MEMORY_A_OF_B";;"%1$sM out of %2$sM";"%1$sM sur %2$sM";;;;;;;;;;;;;;;"%2$sM中%1$sM";;;"%2$sM 중 %1$sM";;;;;;;"%2$sM ちゅう %1$sM" @@ -10,6 +8,6 @@ "DEV_COLOUR_LEGEND_ORANGE";;"ORANGE";"ORANGE";;;;;;;;;;;;;;;"黄";;;"황";;;;;;;"オレンジ" "DEV_COLOUR_LEGEND_RED";;" RED";" ROUGE";;;;;;;;;;;;;;;"赤";;;"적";;;;;;;"  あか" -"DEV_MESSAGE_CONSOLE_CODEX";;"Type 'codex' for available commands.";"Tapez « codex » pour commandes disponibles.";;;;;;;;;;;;;;;"使用可能な命令語の目録は「codex」を入力して下さい。";;;"사용 가능한 명령어 목록을 보려면 'codex'를 입력해 주십시오.";;;;;;;"しよう かのうな めいれいご の もくろく は 「codex」を にゅうりょく して ください。" -"DEV_MESSAGE_CONSOLE_AVAILABLE_COMMANDS";;"Available commends:";"Commandes disponibles :";;;;;;;;;;;;;;;"命令語の目録:";;;"명령어 목록:";;;;;;;"めいれいご の もくろく:" +"DEV_MESSAGE_CONSOLE_CODEX";;"Type 'codex' for available commands.";"Tapez « codex » pour commandes disponibles.";;;;;;;;;;;;;;;"使用可能な命令語の目録は「codex」を入力して下さい。";;;"사용 가능한 명령어 목록을 보려면 'codex'를 입력해 주십시오.";;;;;;;"しよう かのうな めいれいごの もくろくは 「codex」を にゅうりょく して ください。" +"DEV_MESSAGE_CONSOLE_AVAILABLE_COMMANDS";;"Available commends:";"Commandes disponibles :";;;;;;;;;;;;;;;"命令語の目録:";;;"명령어 목록:";;;;;;;"めいれいごの もくろく:" "DEV_MESSAGE_CONSOLE_COMMAND_UNKNOWN";;"'%1$s': Unknown command";"« %1$s » : Commande inconnue";;;;;;;;;;;;;;;"「%1$s」: 不明な命令語";;;"'%1$s': 알 수 없는 명령어";;;;;;;"「%1$s」: ふめいな めいれいご" \ No newline at end of file diff --git a/res/locales/polyglot.csv b/res/locales/polyglot.csv index bbebcb520..83678f7f5 100644 --- a/res/locales/polyglot.csv +++ b/res/locales/polyglot.csv @@ -1,11 +1,14 @@ -"STRING_ID";"IETF language tag(s) without dash";"enUS";"frFR";"esES";"deDE";"itIT";"ptBR";"ptPT";"ruRU";"elGR";"trTR";"daDK";"noNB";"svSE";"nlNL";"plPL";"fiFI";"jaJP";"zhCN";"zhTW";"koKR";"csCZ";"huHU";"roRO";"thTH";"bgBG";"heIL";"jakanaJP" -"LANGUAGE_EN";"[LanguageName] in english";"English";"French";"Spanish";"German";"Italian ";"Portuguese (Brazil)";"Portuguese";"Russian";"Greek";"Turkish";"Danish";"Norwegian";"Swedish";"Dutch";"Polish";"Finnish";"Japanese";"Simplified Chinese";"Traditional Chinese";"Korean";"Czech";"Hungarian";"Romanian";"Thai";"Bulgarian";"Hebrew";"Japanese Kana" -"LANGUAGE_DIRECTION";"ltr or rtl (text direction used by game code)";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"rtl";"ltr" +"STRING_ID";"IETF language tag(s) without dash";"enUS";"frFR";"esES";"deDE";"itIT";"ptBR";"ptPT";"ruRU";"elGR";"trTR";"daDK";"noNB";"svSE";"nlNL";"plPL";"fiFI";"jaJP";"zhCN";"zhTW";"koKR";"csCZ";"huHU";"roRO";"thTH";"bgBG";"heIL";"jakanaJP";"isIC" -"CREDITS_POLYGLOT";"";"Translated by the Polyglot Project.";"Traduit par le Polyglot Projet.";"Traducido por el proyecto Polyglot.";"Übersetzt von Polyglot Project.";"Tradotto dal Polyglot Project.";"Traduzido pelo projeto Polyglot.";"Traduzido pelo projeto Polyglot.";"Перевод от проекта Polygon";"Μεταφράστηκε από το Polyglot Project.";"Polyglot Projesi ile çevrilmiştir.";"Oversat af Polyglot Projektet.";"Oversatt av Polyglot Prosjektet.";"Översättning av Polyglot-projektet.";"Vertaald door het Polyglot project.";"Przetłumaczono za pomocą Polyglot Project.";"Käännökset: Polyglot Project.";"翻訳提供:Polyglotプロジェクト";"Polyglot 项目提供翻译";"翻譯由Polyglot Project 提供";"번역 제공: Polyglot Project.";"Překlad: Polyglot Projektu.";"Fordította a Polgylot Project.";"Tradus de către Polyglot Project.";"คำแปลโดย Polyglot Project";"Превод от проекта Polyglot.";"תורגם על-ידי פרויקט פוליגלוט.";"ほんやく ていきょう:Polyglotプロジェクト" +"LANGUAGE_EN";"[LanguageName] in english";"English";"French";"Spanish";"German";"Italian ";"Portuguese (Brazil)";"Portuguese";"Russian";"Greek";"Turkish";"Danish";"Norwegian";"Swedish";"Dutch";"Polish";"Finnish";"Japanese";"Simplified Chinese";"Traditional Chinese";"Korean";"Czech";"Hungarian";"Romanian";"Thai";"Bulgarian";"Hebrew";"Japanese Kana";"Icelandic" +"LANGUAGE_ID";"IETF language tag(s) without dash";"enUS";"frFR";"esES";"deDE";"itIT";"ptBR";"ptPT";"ruRU";"elGR";"trTR";"daDK";"noNB";"svSE";"nlNL";"plPL";"fiFI";"jaJP";"zhCN";"zhTW";"koKR";"csCZ";"huHU";"roRO";"thTH";"bgBG";"heIL";"jakanaJP";"isIC" +"LANGUAGE_THIS";"MyLanguage'; in native text";"English";"Français";"Español";"Deutsch";"Italiano";"Português Brasileiro";"Português";"Pусский";"Ελληνικά";"Türkçe";"Dansk";"Norsk Bokmål";"Svenska";"Nederlands";"Polski";"Suomi";"日本語";"简体中文";"繁體中文";"한국어";"Čeština";"Magyar";"Română";"ภาษาไทย";"Български";"עברית";"にほんご";"íslenska" +"LANGUAGE_DIRECTION";"ltr or rtl (text direction used by game code)";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"rtl";"ltr";"ltr" -"CONTEXT_CHARACTER_DELETE";"";"Delete Character";"Supprimer personnage";"Eliminar personaje";"Character löschen";"Cancella personaggio";"Deletar Personagem";"Apagar personagem";"Удалить персонажа";"Διαγραφή Χαρακτήρα";"Karakteri Sil";"Slet karakter";"Slett karakter";"Radera karaktär";"Verwijder Personage";"Usuń Postać";"Poista hahmo";"キャラクター削除";"删除角色";"刪除角色";"캐릭터 지우기";"Smazat postavu";"Karakter törlése";"Șterge personaj";"ลบตัวละคร";"Изтрий персонаж";"למחוק דמות" -"CONTEXT_CHARACTER_NEW";"Typically used in rpgs/mmorpgs";"New Character";"Nouveau personnage";"Nuevo personaje";"Neuer Charakter";"Nuovo personaggio";"Novo Personagem";"Nova personagem";"Новый персонаж";"Δημιουργία Χαρακτήρα";"Yeni Karakter";"Ny karakter";"Ny karakter";"Ny karaktär";"Nieuw Personage";"Nowa Postać";"Uusi hahmo";"新規キャラクター";"创新角色";"創新角色";"캐릭터 만들기";"Nová postava";"Új karakter";"Personaj nou";"ตัวละครใหม่";"Нов персонаж";"דמות חדשה" +"CREDITS_POLYGLOT";"";"Translated by the Polyglot Project.";"Traduit par le Polyglot Projet.";"Traducido por el proyecto Polyglot.";"Übersetzt von Polyglot Project.";"Tradotto dal Polyglot Project.";"Traduzido pelo projeto Polyglot.";"Traduzido pelo projeto Polyglot.";"Перевод от проекта Polygon";"Μεταφράστηκε από το Polyglot Project.";"Polyglot Projesi ile çevrilmiştir.";"Oversat af Polyglot Projektet.";"Oversatt av Polyglot Prosjektet.";"Översättning av Polyglot-projektet.";"Vertaald door het Polyglot project.";"Przetłumaczono za pomocą Polyglot Project.";"Käännökset: Polyglot Project.";"翻訳提供:Polyglotプロジェクト";"Polyglot 项目提供翻译";"翻譯由Polyglot Project 提供";"번역 제공: Polyglot Project.";"Překlad: Polyglot Projektu.";"Fordította a Polgylot Project.";"Tradus de către Polyglot Project.";"คำแปลโดย Polyglot Project";"Превод от проекта Polyglot.";"תורגם על-ידי פרויקט פוליגלוט.";"ほんやく ていきょう:Polyglotプロジェクト";"Þýddur af verkefnið Polyglot" + +"CONTEXT_CHARACTER_DELETE";"";"Delete Character";"Supprimer personnage";"Eliminar personaje";"Character löschen";"Cancella personaggio";"Deletar Personagem";"Apagar personagem";"Удалить персонажа";"Διαγραφή Χαρακτήρα";"Karakteri Sil";"Slet karakter";"Slett karakter";"Radera karaktär";"Verwijder Personage";"Usuń Postać";"Poista hahmo";"キャラクター削除";"删除角色";"刪除角色";"캐릭터 지우기";"Smazat postavu";"Karakter törlése";"Șterge personaj";"ลบตัวละคร";"Изтрий персонаж";"למחוק דמות";"Eyða persónu" +"CONTEXT_CHARACTER_NEW";"Typically used in rpgs/mmorpgs";"New Character";"Nouveau personnage";"Nuevo personaje";"Neuer Charakter";"Nuovo personaggio";"Novo Personagem";"Nova personagem";"Новый персонаж";"Δημιουργία Χαρακτήρα";"Yeni Karakter";"Ny karakter";"Ny karakter";"Ny karaktär";"Nieuw Personage";"Nowa Postać";"Uusi hahmo";"新規キャラクター";"创新角色";"創新角色";"캐릭터 만들기";"Nová postava";"Új karakter";"Personaj nou";"ตัวละครใหม่";"Нов персонаж";"דמות חדשה";"Nýja persónu" "CONTEXT_CLASS_AI";"[Noun]";"Artificial Intelligence";"Intelligence Artificielle";"Inteligencia Artificial";"Künstliche Intelligenz";"Intelligenza Artificiale";"Inteligência Artificial";"Inteligência Artificial";"Искусственный интеллект";"Τεχνιτή Νοημοσύνη";"Yapay Zeka";"Kunstig Intelligens";"Kunstig Intelligens";"Artificiell intelligens";"Kunstmatige intelligentie";"Sztuczna Inteligencja";"Tekoäly";"人工知能";"人工智能";"人工智能";"인공지능";"Umělá inteligence";"Mesterséges Intelligencia";"Inteligență Artificială";"ปัญญาประดิษฐ์";"Изкуствен интелект";"בינה-מלאכותית" "CONTEXT_CLASS_ALIEN";"[Noun]";"Alien";"Extraterrestre";"Alienígena";"Alien";"Alieno";"Extraterrestre";"Extraterrestre";"Пришелец";"Εξωγήινος";"Uzaylı";"Rumvæsen";"Romvesen";"Utomjording";"Buitenaards wezen";"Kosmita";"Avaruusolio";"エイリアン";"外星人";"外星人";"외계인";"Mimozemšťan";"Idegen";"Extraterestru";"เอเลี่ยน";"Извънземно";"חייזר" @@ -34,27 +37,26 @@ "CONTEXT_CLASS_ZOMBIE";"[Noun]";"Zombie";"Zombie";"Zombi";"Zombie";"Zombie";"Zumbi";"Zombie";"Зомби";"Ζόμπι";"Zombi";"Zombie";"Zombie";"Zombie";"Zombie";"Zombie";"Zombi";"ゾンビ";"僵尸";"僵尸";"좀비";"Zombie";"Zombi";"Zombie";"ซอมบี้";"Зомби";"זומבי" "CONTEXT_CLASS_ZOMBIE_PLURAL";"[Noun/Plural]";"Zombies";"Zombies";"Zombis";"Zombies";"Zombie";"Zumbis";"Zombies";"Зомби";"Ζόμπι";"Zombiler";"Zombier";"Zombier";"Zombier";"Zombies";"Zombie";"Zombit";"ゾンビ";"僵尸";"僵尸";"좀비";"Zombíci";"Zombik";"Zombies";"ซอมบี้";"Зомбита";"זומבים" -"CONTEXT_CONDITION_BURNING";"[Adjective]";"Burning";"En feu";"En llamas";"Brennender";"A fuoco";"Queimando";"A arder";"Горящий";"Φλεγόμενο";"Yanıyor";"Brændende";"Brennende";"Brinnande";"Brandend";"Popażony";"Liekeissä";"炎上";"燃烧";"燃燒中";"화상";"Hořící";"Égés";"În flăcări";"ไหม้";"Горящ";"שורף" -"CONTEXT_CONDITION_CRITICAL";"[Adjective]";"Critical";"Critique";"Crítico";"Kritischer";"Critico";"Estado grave";"Estado grave";"В критическом состоянии";"Σε κρίσιμη κατάσταση";"Kritik";"Såret kritisk";"Kritisk såret ";"Svårt skadad";"Kritisch";"Krytyczny";"Kriittinen";"瀕死";"瀕死";"瀕死";"치명상";"Kritický";"Kritikus";"Critical";"คริติคอล";"В критично състояние";"אנוש" -"CONTEXT_CONDITION_DEAD";"[Adjective] [Default male]";"Dead";"Mort";"Muerto";"Toter";"Morto";"Morto";"Morto";"Мёртвый";"Νεκρός";"Ölü";"Død";"Død";"Död";"Dood";"Martwy";"Kuollut";"死亡";"死亡";"死亡";"사망";"Mrtvý";"Halott";"Mort";"ตาย";"Мъртъв";"מת" -"CONTEXT_CONDITION_FROZEN";"[Adjective] [Default male]";"Frozen";"Gelé";"Congelado";"Gefrohrener";"Ghiacciato";"Congelado";"Congelado";"Заморожен";"Παγωμένος";"Donmuş";"Frossen";"Frossen";"Fryst";"Bevroren";"Zamrożony";"Jäässä";"凍結";"凍結";"凍結";"동결";"Zmražený";"Fagyott";"Înghețat";"หนาวเย็น";"Замразен";"קפוא" -"CONTEXT_CONDITION_POISONED";"[Adjective] [Default male]";"Poisoned";"Empoisonné";"Envenenado";"Vergifteter";"Avvelenato";"Envenenado";"Envenenado";"Отравлен";"Δηλητηρισμένος";"Zehirlenmiş";"Forgiftet";"Forgiftet";"Förgiftad";"Vergiftigd";"Otruty";"Myrkytetty";"毒";"毒";"中毒";"중독";"Otrávený";"Mérgezett";"Otrăvit";"ติดพิษ";"Отровен";"מורעל" -"CONTEXT_CONDITION_SLOWED";"[Adjective] [Default male]";"Slowed";"Ralenti";"Ralentizado";"Verlangsamter";"Rallentato";"Lento";"Lento";"Замедлен";"Επιβραδυνμένος";"Yavaşlamış";"Langsommelig";"Nedsakted";"Nedsaktad";"Vertraagd";"Spowolniony";"Hidastettu";"減速";"減速";"減速";"감속";"Zpomalený";"Lassított";"Încetinit";"ช้า";"Забавен";"מואט" -"CONTEXT_CONDITION_STUNNED";"[Adjective] [Default male]";"Stunned";"Étourdi";"Aturdido";"Erstarrter";"Stordito";"Atordoado";"Atordoado";"Оглушен";"Παραλυμένος";"Sersemlemiş";"Lamslået";"Lamslått";"Lamslagen";"Bedwelmd";"Ogłuszony";"Pökerryksissä";"スタン";"眩晕";"眩晕";"스턴";"Ohromený";"Kábult";"Împietrit";"มึน";"Зашеметен";"משותק" -"CONTEXT_CONDITION_UNCONSCIOUS";"[Adjective]";"Unconscious";"Inconscient";"Inconsciente";"Bewusstloser";"Svenuto";"Desmaiado";"Desmaiado";"Без сознания";"Αναίσθητος";"Şuursuz";"Ubevist";"Ubevist";"Omedveten";"Bewusteloos";"Nieprzytomny";"Tajuton";"気絶";"失去知觉";"失去知覺";"기절";"V bezvědomí";"Eszméletlen";"Inconștient";"สลบ";"В безсъзнание";"חסר-הכרה" -"CONTEXT_CONDITION_UNHURT";"[Adjective] [Default male] No wounds";"Unhurt";"Indemne";"Ileso";"Unverletzter";"Illeso";"Ileso";"Ileso";"Невредимый";"Αβλαβής";"Yaralanmamış";"Ubeskadiget";"Uskadd";"Oskadad";"Ongedeerd";"Zdrowy";"Täydessä kunnossa";"無傷";"未受伤";"未受傷";"정상";"Nezraněný";"Sértetlen";"Neatins";"ไม่บาดเจ็บ";"Невредим";"בריא" -"CONTEXT_CONDITION_WET";"[Adjective] [Default male]";"Wet";"Trempé";"Mojado";"Nasser";"Bagnato";"Molhado";"Molhado";"Мокрый";"Βρεγμένος";"Islak";"Våd";"Våt";"Våt";"Nat";"Przemoczony";"Märkä";"濡れている";".湿";".濕";"젖음";"Vlhký";"Nedves";"Ud";"เปียก";"Мокър";"רטוב" -"CONTEXT_CONDITION_WOUNDED";"[Adjective] [Default male]";"Wounded";"Blessé";"Herido";"Verwundeter";"Ferito";"Ferido";"Ferido";"Раненый";"Πληγωμένος";"Yaralı";"Såret";"Såret";"Skadad";"Gewond";"Ranny";"Haavoittunut";"負傷";"受伤";"受傷";"부상";"Zraněný";"Sebesült";"Rănit";"บาดเจ็บ";"Ранен";"פצוע" +"CONTEXT_CONDITION_BURNING";"[Adjective]";"Burning";"En feu";"En llamas";"Brennender";"A fuoco";"Queimando";"A arder";"Горящий";"Φλεγόμενο";"Yanıyor";"Brændende";"Brennende";"Brinnande";"Brandend";"Popażony";"Liekeissä";"炎上";"燃烧";"燃燒中";"화상";"Hořící";"Égés";"În flăcări";"ไหม้";"Горящ";"שורף";"えんじょう";"Tendrað" +"CONTEXT_CONDITION_CRITICAL";"[Adjective]";"Critical";"Critique";"Crítico";"Kritischer";"Critico";"Estado grave";"Estado grave";"В критическом состоянии";"Σε κρίσιμη κατάσταση";"Kritik";"Såret kritisk";"Kritisk såret ";"Svårt skadad";"Kritisch";"Krytyczny";"Kriittinen";"瀕死";"瀕死";"瀕死";"치명상";"Kritický";"Kritikus";"Critical";"คริติคอล";"В критично състояние";"אנוש";"ひんし";"Gagnrýninn" +"CONTEXT_CONDITION_DEAD";"[Adjective] [Default male]";"Dead";"Mort";"Muerto";"Toter";"Morto";"Morto";"Morto";"Мёртвый";"Νεκρός";"Ölü";"Død";"Død";"Död";"Dood";"Martwy";"Kuollut";"死亡";"死亡";"死亡";"사망";"Mrtvý";"Halott";"Mort";"ตาย";"Мъртъв";"מת";"しぼう";"Dauður" +"CONTEXT_CONDITION_FROZEN";"[Adjective] [Default male]";"Frozen";"Gelé";"Congelado";"Gefrohrener";"Ghiacciato";"Congelado";"Congelado";"Заморожен";"Παγωμένος";"Donmuş";"Frossen";"Frossen";"Fryst";"Bevroren";"Zamrożony";"Jäässä";"凍結";"凍結";"凍結";"동결";"Zmražený";"Fagyott";"Înghețat";"หนาวเย็น";"Замразен";"קפוא";"とうけつ";"Frosinn" +"CONTEXT_CONDITION_POISONED";"[Adjective] [Default male]";"Poisoned";"Empoisonné";"Envenenado";"Vergifteter";"Avvelenato";"Envenenado";"Envenenado";"Отравлен";"Δηλητηρισμένος";"Zehirlenmiş";"Forgiftet";"Forgiftet";"Förgiftad";"Vergiftigd";"Otruty";"Myrkytetty";"毒";"毒";"中毒";"중독";"Otrávený";"Mérgezett";"Otrăvit";"ติดพิษ";"Отровен";"מורעל";"どく";"Eitrun" +"CONTEXT_CONDITION_SLOWED";"[Adjective] [Default male]";"Slowed";"Ralenti";"Ralentizado";"Verlangsamter";"Rallentato";"Lento";"Lento";"Замедлен";"Επιβραδυνμένος";"Yavaşlamış";"Langsommelig";"Nedsakted";"Nedsaktad";"Vertraagd";"Spowolniony";"Hidastettu";"減速";"減速";"減速";"감속";"Zpomalený";"Lassított";"Încetinit";"ช้า";"Забавен";"מואט";"げんそく";"hægur-hreyfing" +"CONTEXT_CONDITION_STUNNED";"[Adjective] [Default male]";"Stunned";"Étourdi";"Aturdido";"Erstarrter";"Stordito";"Atordoado";"Atordoado";"Оглушен";"Παραλυμένος";"Sersemlemiş";"Lamslået";"Lamslått";"Lamslagen";"Bedwelmd";"Ogłuszony";"Pökerryksissä";"スタン";"眩晕";"眩晕";"스턴";"Ohromený";"Kábult";"Împietrit";"มึน";"Зашеметен";"משותק";"スタン";"hneykslaður" +"CONTEXT_CONDITION_UNCONSCIOUS";"[Adjective]";"Unconscious";"Inconscient";"Inconsciente";"Bewusstloser";"Svenuto";"Desmaiado";"Desmaiado";"Без сознания";"Αναίσθητος";"Şuursuz";"Ubevist";"Ubevist";"Omedveten";"Bewusteloos";"Nieprzytomny";"Tajuton";"気絶";"失去知觉";"失去知覺";"기절";"V bezvědomí";"Eszméletlen";"Inconștient";"สลบ";"В безсъзнание";"חסר-הכרה";"きぜつ";"meðvitundarlaus" +"CONTEXT_CONDITION_UNHURT";"[Adjective] [Default male] No wounds";"Unhurt";"Indemne";"Ileso";"Unverletzter";"Illeso";"Ileso";"Ileso";"Невредимый";"Αβλαβής";"Yaralanmamış";"Ubeskadiget";"Uskadd";"Oskadad";"Ongedeerd";"Zdrowy";"Täydessä kunnossa";"無傷";"未受伤";"未受傷";"정상";"Nezraněný";"Sértetlen";"Neatins";"ไม่บาดเจ็บ";"Невредим";"בריא";"むきず";"óskemmdar" +"CONTEXT_CONDITION_WET";"[Adjective] [Default male]";"Wet";"Trempé";"Mojado";"Nasser";"Bagnato";"Molhado";"Molhado";"Мокрый";"Βρεγμένος";"Islak";"Våd";"Våt";"Våt";"Nat";"Przemoczony";"Märkä";"濡れている";".湿";".濕";"젖음";"Vlhký";"Nedves";"Ud";"เปียก";"Мокър";"רטוב";"ぬれている";"Blautur" +"CONTEXT_CONDITION_WOUNDED";"[Adjective] [Default male]";"Wounded";"Blessé";"Herido";"Verwundeter";"Ferito";"Ferido";"Ferido";"Раненый";"Πληγωμένος";"Yaralı";"Såret";"Såret";"Skadad";"Gewond";"Ranny";"Haavoittunut";"負傷";"受伤";"受傷";"부상";"Zraněný";"Sebesült";"Rănit";"บาดเจ็บ";"Ранен";"פצוע";"ふしょう";"Sár" -"CONTEXT_DESCRIPTION_BIG";"[Adjective]";"Big";"Gros";"Grande";"Groß";"Grande";"Grande";"Grande";"Большой";"Μεγάλο";"Büyük";"Stor";"Stor";"Stor";"Groot";"Duży";"Iso";"大";"大";"大";"대";"Velký";"Nagy";"Mare";"ใหญ่";"Голям";"גדול" -"CONTEXT_DESCRIPTION_HUGE";"[Adjective] Very large";"Huge";"Énorme";"Enorme";"Riesig";"Enorme";"Enorme";"Enorme";"Огромный";"Τεράστιο";"Devasa";"Enorm";"Enorm";"Enorm";"Enorm";"Ogromny";"Jättimäinen";"巨大";"极大";"極大";"특대";"Obrovský";"Hatalmas";"Enorm";"ใหญ่มาก";"Огромен";"ענק" -"CONTEXT_DESCRIPTION_SMALL";"[Adjective]";"Small";"Petit";"Pequeño";"Klein";"Piccolo";"Pequeno";"Pequeno";"Маленький";"Μικρό";"Küçük";"Lille";"Liten";"Liten";"Klein";"Mały";"Pieni";"小";"小";"小";"소";"Malý";"Kicsi";"Mic";"เล็ก";"Малък";"קטן" -"CONTEXT_DESCRIPTION_TINY";"[Adjective] Very small";"Tiny";"Minuscule";"Diminuto";"Winzig";"Minuscolo";"Muito pequeno";"Muito pequeno";"Крошечный";"Μικροσκοπικό";"Minik";"Lillebitte";"Bitteliten";"Pytteliten";"Minuscuul";"Malutki";"Pikkuriikkinen";"極小";"极小";"極小";"특소";"Maličký";"Apró";"Minuscul";"เล็กจิ๋ว";"Миниатюрен";"קטנטן" +"CONTEXT_DESCRIPTION_BIG";"[Adjective]";"Big";"Gros";"Grande";"Groß";"Grande";"Grande";"Grande";"Большой";"Μεγάλο";"Büyük";"Stor";"Stor";"Stor";"Groot";"Duży";"Iso";"大";"大";"大";"대";"Velký";"Nagy";"Mare";"ใหญ่";"Голям";"גדול";"だい";"Stór" +"CONTEXT_DESCRIPTION_HUGE";"[Adjective] Very large";"Huge";"Énorme";"Enorme";"Riesig";"Enorme";"Enorme";"Enorme";"Огромный";"Τεράστιο";"Devasa";"Enorm";"Enorm";"Enorm";"Enorm";"Ogromny";"Jättimäinen";"巨大";"极大";"極大";"특대";"Obrovský";"Hatalmas";"Enorm";"ใหญ่มาก";"Огромен";"ענק";"きょだい";"Gífurlegur" +"CONTEXT_DESCRIPTION_SMALL";"[Adjective]";"Small";"Petit";"Pequeño";"Klein";"Piccolo";"Pequeno";"Pequeno";"Маленький";"Μικρό";"Küçük";"Lille";"Liten";"Liten";"Klein";"Mały";"Pieni";"小";"小";"小";"소";"Malý";"Kicsi";"Mic";"เล็ก";"Малък";"קטן";"こ";"Lítill" +"CONTEXT_DESCRIPTION_TINY";"[Adjective] Very small";"Tiny";"Minuscule";"Diminuto";"Winzig";"Minuscolo";"Muito pequeno";"Muito pequeno";"Крошечный";"Μικροσκοπικό";"Minik";"Lillebitte";"Bitteliten";"Pytteliten";"Minuscuul";"Malutki";"Pikkuriikkinen";"極小";"极小";"極小";"특소";"Maličký";"Apró";"Minuscul";"เล็กจิ๋ว";"Миниатюрен";"קטנטן";"きょくしょう";"Pínulítill" "CONTEXT_ITEM_ARMOR";"[Noun] Body armor";"Armor";"Armure";"Armadura";"Rüstung";"Armatura";"Armadura";"Armadura";"Броня";"Πανοπλία";"Zırh";"Rustning";"Rustning";"Rustning";"Pantser";"Zbroja";"Panssari";"鎧";"护甲";"護甲";"갑옷";"Brnění";"Páncél";"Armură";"ชุดเกราะ";"Броня";"שריון" "CONTEXT_ITEM_ARROW";"[Noun] Ammo for archers";"Arrow";"Flèche";"Flecha";"Pfeil";"Freccia";"Flecha";"Seta";"Стрела";"Βέλος";"Ok";"Pil";"Pil";"Pil";"Pijl";"Strzała";"Nuoli";"矢";"箭";"箭";"화살";"Šíp";"Nyílvessző";"Săgeată";"ลูกธนู";"Стрела";"חץ" "CONTEXT_ITEM_ARROW_PLURAL";"[Noun/Plural] Ammo for archers";"Arrows";"Flèches";"Flechas";"Pfeile";"Frecce";"Flechas";"Setas";"Стрелы";"Βέλη";"Oklar";"Pile";"Piler";"Pilar";"Pijlen";"Strzały";"Nuolet";"矢";"箭";"箭";"화살";"Šípy";"Nyílvesszők";"Săgeți";"ลูกธนู";"Стрели";"חיצים" -"CONTEXT_ITEM_BOARD";"[Noun] Boardgame board";"Board";"Plateau de jeu";"Tablero";"Brett";"Plancia";"Tabuleiro";"Tabuleiro";"Доска";"Ταμπλό";"Tahta";"Spilleplade";"Bret";"Bräde";"Spelbord";"Plansza";"Lauta";"盤";"盘";"遊戲盤";"판";"Deska";"Tábla";"Tablă de joc";"บอร์ด";"Дъска";"לוח" "CONTEXT_ITEM_BOMB";"[Noun]";"Bomb";"Bombe";"Bomba";"Bombe";"Bomba";"Bomba";"Bomba";"Бомба";"Βόμβα";"Bomba";"Bombe";"Bombe";"Bomb";"Bom";"Bomba";"Pommi";"爆弾";"炸弹";"炸彈";"폭탄";"Bomba";"Bomba";"Bombă";"ระเบิด";"Бомба";"פצצה" "CONTEXT_ITEM_BOOK";"[Noun]";"Book";"Livre";"Libro";"Buch";"Libro";"Livro";"Livro";"Книга";"Βιβλίο";"Kitap";"Bog";"Bok";"Bok";"Boek";"Książka";"Kirja";"本";"书";"書";"책";"Kniha";"Könyv";"Carte";"หนังสือ";"Книга";"ספר" "CONTEXT_ITEM_BOOTS";"[Noun/Plural] Boots";"Boots";"Bottes";"Botas";"Stiefel";"Scarponi";"Botas";"Botas";"Ботинки";"Μπότες";"Bot";"Støvler";"Støvler";"Kängor";"Schoenen";"Buty";"Saappaat";"靴";"靴";"靴";"신발";"Boty";"Csizma";"Bocanci";"รองเท้าบูท";"Ботуши";"מגפיים" @@ -185,7 +187,7 @@ "CREDITS_LOCALIZATION";"";"Localization";"Localisation";"Localización";"Lokalisierung";"Localizzazione";"Localização";"Localização";"Локализация";"Επιλογή τοποθεσιών";"Lokalizasyon";"Lokalisering";"Lokalisering";"Lokalisering";"Lokalisatie";"Lokalizacja";"Lokalisaatio";"ローカリゼーション";"本地化";"本土化";"지역화";"Lokalizace";"Lokalizáció";"Localizare";"โลคัลไลเซชัน";"Локализиране";"התאמה לשפה" "CREDITS_TRANSLATION";"";"Translation";"Traduction";"Traducción";"Übersetzung";"Traduzione";"Tradução";"Tradução";"Перевод";"Μετάφραση";"Çeviri";"Oversættelse";"Oversettelse";"Översättning";"Vertaling";"Tłumaczenia";"Käännöstyö";"翻訳";"翻译 ";"翻譯";"번역";"Překlad";"Fordítás";"Traducere";"แปลภาษา";"Превод";"תרגום" -"ERROR_DEVICE_NOT_FOUND";"Use {0} in place of [device]";"No {0} detected.";"Aucun {0} détecté.";"No se detectó {0}.";"{0} nicht erkannt.";"Nessun {0} trovato.";"{0} não encontrado.";"O dispositivo {0} não foi detectado.";"{0} не обнаружен.";"Δεν εντοπίστηκε {0}.";"{0} aygıt algılanamadı.";"Ingen {0} fundet.";"Ingen {0} funnet.";"{0} kunde inte hittas.";"Geen {0} gevonden.";"Nie wykryto {0}.";"{0} ei havaittu.";"{0} が接続されていません。";"未检测到{0}。";"未檢測到{0}。";"{0}을(를) 찾을 수 없습니다.";"Zařízení {0} nenalezeno.";"{0} nem található.";"Nu s-a detectat niciun {0}.";"ตรวจไม่พบอุปกรณ์ {0}";"Няма засечен {0}.";"לא נמצא רכיב {0}." +"ERROR_DEVICE_NOT_FOUND";"Use %1$s in place of [device]";"No %1$s detected.";"Aucun %1$s détecté.";"No se detectó %1$s.";"%1$s nicht erkannt.";"Nessun %1$s trovato.";"%1$s não encontrado.";"O dispositivo %1$s não foi detectado.";"%1$s не обнаружен.";"Δεν εντοπίστηκε %1$s.";"%1$s aygıt algılanamadı.";"Ingen %1$s fundet.";"Ingen %1$s funnet.";"%1$s kunde inte hittas.";"Geen %1$s gevonden.";"Nie wykryto %1$s.";"%1$s ei havaittu.";"%1$s が接続されていません。";"未检测到%1$s。";"未檢測到%1$s。";"%1$s을(를) 찾을 수 없습니다.";"Zařízení %1$s nenalezeno.";"%1$s nem található.";"Nu s-a detectat niciun %1$s.";"ตรวจไม่พบอุปกรณ์ %1$s";"Няма засечен %1$s.";"לא נמצא רכיב %1$s." "ERROR_GENERIC_ERRCODE";"";"Error code:";"Code d'erreur :";"Código de error:";"Fehlercode:";"Codice errore:";"Código do erro:";"Código do erro:";"Код ошибки:";"Κωδικός σφάλματος:";"Hata kodu:";"Fejlkode:";"Feilkode:";"Felkod:";"Foutcode:";"Kod błędu:";"Virhekoodi: ";"エラーコード:";"错误代码:";"錯誤代碼:";"오류 코드:";"Kód chyby:";"Hibakód:";"Cod de eroare:";"รหัสข้อผิดพลาด";"Код на грешката:";"טעות מספר:" "ERROR_GENERIC_TEXT";"";"An error has occured.";"Une erreur s'est produite.";"Ha ocurrido un error.";"Ein Fehler ist aufgetreten.";"È stato riscontrato un errore.";"Ocorreu um erro.";"Ocorreu um erro.";"Произошла ошибка.";"Γενικό σφάλμα.";"Bir hata oluştu.";"Der er sket en fejl.";"Det har skjedd en feil.";"Ett fel har uppstått.";"Er is een fout opgetreden.";"Wystąpił jakiś błąd.";"On tapahtunut virhe.";"エラーが発生しました。";"发生了错误。";"發生了錯誤。";"오류가 발생했습니다.";"Vyskytla se chyba.";"Hiba történt.";"A apărut o eroare.";"เกิดความผิดพลาดบางประการ";"Грешка в изпълнението.";"ארעה טעות." "ERROR_GENERIC_INVALID_NAME";"";"Invalid name.";"Nom incorrect.";"El nombre no es válido.";"Ungültiger Name.";"Nome non valido.";"Nome inválido.";"Nome Inválido.";"Недопустимое название.";"Μη έγκυρο όνομα.";"Geçersiz İsim.";"Ugyldigt navn.";"Ugyldig navn.";"Ogiltigt Namn.";"Ongeldige naam.";"Błędna nazwa.";"Virheellinen nimi.";"無効な名前です。";"名称无效。";"名稱無效。";"이름이 잘못되었습니다.";"Neplatný název.";"Érvénytelen név.";"Nume Invalid.";"ชื่อไม่ถูกต้อง";"Невалидно име.";"שם לא נכון!" @@ -436,9 +438,6 @@ "MENU_LABEL_YES";"";"Yes";"Oui";"Sí";"Ja";"Sì";"Sim";"Sim";"Да";"Ναι";"Evet";"Ja";"Ja";"Ja";"Ja";"Tak";"Kyllä";"はい";"是";"是";"예";"Ano";"Igen";"Da";"ใช่";"Да";"כן" "MENU_LABEL_YES_CAPS";"";"YES";"OUI";"SÍ";"JA";"SI";"SIM";"SIM";"ДА";"ΝΑΙ";"EVET";"JA";"JA";"JA";"JA";"TAK";"KYLLÄ";"はい";"是";"是";"예";"ANO";"IGEN";"DA";"ใช่";"ДА";"כן" -"MENU_LANGUAGE_THIS";"MyLanguage'; in native text";"English";"Français";"Español";"Deutsch";"Italiano";"Português Brasileiro";"Português";"Pусский";"Ελληνικά";"Türkçe";"Dansk";"Norsk Bokmål";"Svenska";"Nederlands";"Polski";"Suomi";"日本語";"简体中文";"繁體中文";"한국어";"Čeština";"Magyar";"Română";"ภาษาไทย";"Български";"עברית";"にほんご" -"MENU_LANGUAGE_THIS_EN";"MyLanguage'; in english text";"English";"French";"Spanish";"German";"Italian ";"Portuguese (Brazil)";"Portuguese (Portugal)";"Russian";"Greek";"Turkish";"Danish";"Norwegian";"Swedish";"Dutch";"Polish";"Finnish";"Japanese";"Simplified Chinese";"Traditional Chinese";"Korean";"Czech";"Hungarian";"Romanian";"Thai";"Bulgarian";"Hebrew";"Japanese (Kana)" - "MENU_LOGIN";"[Verb]";"Login";"Se connecter";"Iniciar sesión";"Login";"Login";"Login";"Login";"Вход";"Είσοδος";"Giriş";"Log ind";"Logg in";"Logga in";"Login";"Logowanie";"Kirjaudu";"ログイン";"登录";"登錄";"로그인";"Přihlášení";"Csatlakozás";"Conectare";"ล๊อกอิน";"Влез";"כניסה" "MENU_LOGIN_EMAIL";"Email address";"E-mail";"E-mail";"E-mail";"E-Mail";"E-mail";"E-mail";"E-mail";"E-Mail";"Ηλεκτρονικό ταχυδρομείο";"E-Mail";"E-mail";"E-postaddresse";"E-postadress";"E-mail";"E-mail";"Sähköposti";"Eメール";"电子邮件";"電子郵件";"이메일";"E-mail";"E-mail";"E-mail";"อีเมล";"Имейл";"כתובת-דואר" "MENU_LOGIN_FORGOT";"";"Forgot password";"Mot de passe oublié";"Olvidé mi contraseña";"Passwort vergessen?";"Password dimenticata?";"Esqueceu sua senha?";"Esqueceu-se da password?";"Забыл пароль";"Ξέχασα τον κωδικό μου";"Şifremi Unuttum";"Glemt kodeord";"Glemt passord";"Glömt lösenord";"Wachtwoord vergeten";"Nie pamiętam hasła";"Unohdin salasanan";"パスワードを忘れた";"忘记密码";"忘記密碼";"비밀번호를 잊으셨나요?";"Zapomenuté heslo";"Elfelejtettem a jelszót";"Am uitat parola";"ลืมรหัสผ่าน";"Забравена парола";"שכחת סיסמה?" diff --git a/src/com/Torvald/ImageFont/GameFontWhite.java b/src/com/Torvald/ImageFont/GameFontWhite.java index 937acad05..945bc3e36 100644 --- a/src/com/Torvald/ImageFont/GameFontWhite.java +++ b/src/com/Torvald/ImageFont/GameFontWhite.java @@ -45,8 +45,8 @@ public class GameFontWhite extends GameFontBase { ); uniHan = new SpriteSheet( "./res/graphics/fonts/unifont_unihan" - + (((Terrarum.gameLocale.contains("jp") || Terrarum.gameLocale.contains("ko"))) - ? "_jp" : "") + + ((!Terrarum.gameLocale.contains("zh")) + ? "_ja" : "") +".png" , W_UNIHAN, H_UNIHAN ); @@ -79,8 +79,8 @@ public class GameFontWhite extends GameFontBase { public void reloadUnihan() throws SlickException { uniHan = new SpriteSheet( "./res/graphics/fonts/unifont_unihan" - + ((!Terrarum.gameLocale.contains("cn")) - ? "_jp" : "") + + ((!Terrarum.gameLocale.contains("zh")) + ? "_ja" : "") +".png" , W_UNIHAN, H_UNIHAN ); diff --git a/src/com/Torvald/Terrarum/Actors/Player.java b/src/com/Torvald/Terrarum/Actors/Player.java index 975b3971f..4c6fc9240 100644 --- a/src/com/Torvald/Terrarum/Actors/Player.java +++ b/src/com/Torvald/Terrarum/Actors/Player.java @@ -55,7 +55,7 @@ public class Player extends ActorWithBody implements Controllable, Pocketed, Fac private final int TSIZE = MapDrawer.TILE_SIZE; - private char LUMINANCE_RGB = 63999; + private char LUMINANCE_RGB = 1560; private HashSet factionSet = new HashSet<>(); diff --git a/src/com/Torvald/Terrarum/ConsoleCommand/CommandInterpreter.java b/src/com/Torvald/Terrarum/ConsoleCommand/CommandInterpreter.java index c20de9206..686bfa720 100644 --- a/src/com/Torvald/Terrarum/ConsoleCommand/CommandInterpreter.java +++ b/src/com/Torvald/Terrarum/ConsoleCommand/CommandInterpreter.java @@ -17,6 +17,7 @@ public class CommandInterpreter { CommandInput[] cmd = parse(command); for (CommandInput single_command : cmd) { + ConsoleCommand commandObj = null; try { if (single_command.getName().equalsIgnoreCase("auth")) { Terrarum.game.auth.execute(single_command.toStringArray()); @@ -35,9 +36,9 @@ public class CommandInterpreter { } else { if (Terrarum.game.auth.b()) { - ConsoleCommand commandObj = CommandDict.getCommand( - single_command.getName().toLowerCase()); - commandObj.execute(single_command.toStringArray()); + commandObj = CommandDict.getCommand( + single_command.getName().toLowerCase() + ); } else { throw new NullPointerException(); // if not authorised, say "Unknown command" @@ -47,6 +48,17 @@ public class CommandInterpreter { catch (NullPointerException e) { echoUnknownCmd(single_command.getName()); } + finally { + try { + if (commandObj != null) + commandObj.execute(single_command.toStringArray()); + } + catch (Exception e) { + System.out.println("[CommandInterpreter] "); + e.printStackTrace(); + new Echo().execute(Lang.get("ERROR_GENERIC_TEXT")); + } + } } } diff --git a/src/com/Torvald/Terrarum/ConsoleCommand/ConsoleCommand.java b/src/com/Torvald/Terrarum/ConsoleCommand/ConsoleCommand.java index 72f9d5906..7361d138d 100644 --- a/src/com/Torvald/Terrarum/ConsoleCommand/ConsoleCommand.java +++ b/src/com/Torvald/Terrarum/ConsoleCommand/ConsoleCommand.java @@ -5,7 +5,7 @@ package com.Torvald.Terrarum.ConsoleCommand; */ interface ConsoleCommand { - void execute(String[] args); + void execute(String[] args) throws Exception; void printUsage(); diff --git a/src/com/Torvald/Terrarum/ConsoleCommand/GetLocale.java b/src/com/Torvald/Terrarum/ConsoleCommand/GetLocale.java index 1d04cad80..bd1696c9d 100644 --- a/src/com/Torvald/Terrarum/ConsoleCommand/GetLocale.java +++ b/src/com/Torvald/Terrarum/ConsoleCommand/GetLocale.java @@ -11,9 +11,9 @@ public class GetLocale implements ConsoleCommand { public void execute(String[] args) { new Echo().execute( "Locale: " - + Lang.get("MENU_LANGUAGE_THIS") + + Lang.get("LANGUAGE_THIS") + " (" - + Lang.get("MENU_LANGUAGE_THIS_EN") + + Lang.get("LANGUAGE_EN") + ")" ); } diff --git a/src/com/Torvald/Terrarum/ConsoleCommand/SetLocale.java b/src/com/Torvald/Terrarum/ConsoleCommand/SetLocale.java index 77e56ef02..c656b26d4 100644 --- a/src/com/Torvald/Terrarum/ConsoleCommand/SetLocale.java +++ b/src/com/Torvald/Terrarum/ConsoleCommand/SetLocale.java @@ -3,6 +3,7 @@ package com.Torvald.Terrarum.ConsoleCommand; import com.Torvald.ImageFont.GameFontBase; import com.Torvald.Terrarum.LangPack.Lang; import com.Torvald.Terrarum.Terrarum; +import org.apache.commons.csv.CSVRecord; import org.newdawn.slick.SlickException; import java.io.IOException; @@ -25,6 +26,13 @@ public class SetLocale implements ConsoleCommand { Terrarum.gameLocale = prevLocale; } } + else if (args.length == 1) { + Echo echo = new Echo(); + echo.execute("Locales:"); + + CSVRecord record = Lang.getRecord("LANGUAGE_ID"); + record.forEach(field -> echo.execute("] " + field)); + } else { printUsage(); } diff --git a/src/com/Torvald/Terrarum/LangPack/Lang.java b/src/com/Torvald/Terrarum/LangPack/Lang.java index f12dbc113..19f6b5cb7 100644 --- a/src/com/Torvald/Terrarum/LangPack/Lang.java +++ b/src/com/Torvald/Terrarum/LangPack/Lang.java @@ -80,6 +80,15 @@ public class Lang { lang.put(record.get(CSV_COLUMN_FIRST), record); } + public static CSVRecord getRecord(String key) { + CSVRecord record = lang.get(key); + if (record == null) { + System.out.println("[Lang] No such record."); + throw new NullPointerException(); + } + return record; + } + public static String get(String key) { String value = null; try { value = lang.get(key).get(Terrarum.gameLocale); } diff --git a/src/com/Torvald/Terrarum/MapDrawer/LightmapRenderer.java b/src/com/Torvald/Terrarum/MapDrawer/LightmapRenderer.java index 83c1b5b90..aac8e5d83 100644 --- a/src/com/Torvald/Terrarum/MapDrawer/LightmapRenderer.java +++ b/src/com/Torvald/Terrarum/MapDrawer/LightmapRenderer.java @@ -248,109 +248,80 @@ public class LightmapRenderer { private static char calculate(int x, int y){ if (!outOfBounds(x, y)){ - float lightColorR = 1f; - float lightColorG = 1f; - float lightColorB = 1f; - char lightColorInt; - + char lightLevelThis = 0; int thisTerrain = Terrarum.game.map.getTileFromTerrain(x, y); int thisWall = Terrarum.game.map.getTileFromWall(x, y); + char thisTileLuminosity = TilePropCodex.getProp(thisTerrain).getLuminosity(); // open air if (thisTerrain == AIR && thisWall == AIR) { - lightColorInt = Terrarum.game.map.getGlobalLight(); + lightLevelThis = screenBlend(lightLevelThis, Terrarum.game.map.getGlobalLight()); } - else { - // mix light emitter - if (TilePropCodex.getProp(thisTerrain).getLuminosity() != 0) { - char lum = TilePropCodex.getProp(thisTerrain).getLuminosity(); - lightColorR = getR(lum); - lightColorG = getG(lum); - lightColorB = getB(lum); + + // mix luminous tile + if (thisTileLuminosity > 0) { + lightLevelThis = screenBlend(lightLevelThis, thisTileLuminosity); + } + + // mix lantern + for (LightmapLantern lantern : lanterns) { + if (lantern.getX() == x && lantern.getY() == y) { + lightLevelThis = screenBlend(lightLevelThis, lantern.getIntensity()); + break; } + } - // mix lantern - for (LightmapLantern lantern : lanterns) { - if (lantern.getX() == x && lantern.getY() == y) { - char lum = lantern.getIntensity(); - lightColorR = getR(lum); - lightColorG = getG(lum); - lightColorB = getB(lum); - break; - } - } + // mix luminous actor + // test player TODO for all actor.Luminous in the game + int tileX = Math.round(Terrarum.game.getPlayer().getHitbox().getPointedX() / TSIZE); + int tileY = Math.round(Terrarum.game.getPlayer().getHitbox().getPointedY() / TSIZE) + - 1; + char actorLuminosity = Terrarum.game.getPlayer().getLuminance(); + if (x == tileX && y == tileY) { + lightLevelThis = screenBlend(lightLevelThis, actorLuminosity); + } - // mix actor Luminous - // test player TODO for all actor.Luminous in the game - int tileX = Math.round(Terrarum.game.getPlayer().getHitbox().getPointedX() / TSIZE); - int tileY = Math.round(Terrarum.game.getPlayer().getHitbox().getPointedY() / TSIZE) - - 1; - char lum = Terrarum.game.getPlayer().getLuminance(); - if (x == tileX && y == tileY) { - lightColorR = getR(lum); - lightColorG = getG(lum); - lightColorB = getB(lum); - } - float[] bgrVal = new float[3]; // {B, G, R} - - // test for each B, G, R channel - for (int i = 0; i < 3; i++) { - int brightest = 0; - - //get brightest of nearby 4 tiles - int nearby = 0b0; - findNearbyBrightest: - for (int yoff = -1; yoff <= 1; yoff++) { - for (int xoff = -1; xoff <= 1; xoff++) { - /** - * filter for 'v's as: - * +-+-+-+ - * |a|v|a| - * +-+-+-+ - * |v| |v| - * +-+-+-+ - * |a|v|a| - * +-+-+-+ - */ - if (xoff != yoff && -xoff != yoff) { // 'v' tiles - if (!outOfMapBounds(x + xoff, y + yoff)) { - nearby = getRaw(staticLightMap[y + yoff][x + xoff], i); - } - } - else if (xoff != 0 && yoff != 0) { // 'a' tiles - if (!outOfMapBounds(x + xoff, y + yoff)) { - nearby = darken((char) getRaw(staticLightMap[y + yoff][x + xoff], i) - , 0x3); //mix some to have more 'spreading' - // so that light spreads in a shape of an octagon instead of a diamond - } - } - - if (nearby > brightest) { - brightest = nearby; - } - - if (brightest == CHANNEL_MAX) break findNearbyBrightest; + // calculate and mix ambient + char ambient = 0; char nearby = 0; + findNearbyBrightest: + for (int yoff = -1; yoff <= 1; yoff++) { + for (int xoff = -1; xoff <= 1; xoff++) { + /** + * filter for 'v's as: + * +-+-+-+ + * |a|v|a| + * +-+-+-+ + * |v| |v| + * +-+-+-+ + * |a|v|a| + * +-+-+-+ + */ + if (xoff != yoff && -xoff != yoff) { // 'v' tiles + if (!outOfMapBounds(x + xoff, y + yoff)) { + nearby = staticLightMap[y + yoff][x + xoff]; } } + else if (xoff != 0 && yoff != 0) { // 'a' tiles + if (!outOfMapBounds(x + xoff, y + yoff)) { + nearby = darkenUniformInt(staticLightMap[y + yoff][x + xoff] + , 2); + // mix some to have more 'spreading' + // so that light spreads in a shape of an octagon instead of a diamond + } + } + else { + nearby = 0; // exclude 'me' tile + } - //return: brightest - opacity - bgrVal[i] = darkenFloat( - (char) (brightest) - , TilePropCodex.getProp(thisTerrain).getOpacity() - ); + ambient = additiveBlend(ambient, nearby); // keep base value as brightest nearby } - - // construct lightColor from bgrVal - lightColorInt = constructRGBFromFloat( - bgrVal[OFFSET_R] * lightColorR - , bgrVal[OFFSET_G] * lightColorG - , bgrVal[OFFSET_B] * lightColorB - ); - } - return lightColorInt; + char opacity = TilePropCodex.getProp(thisTerrain).getOpacity(); + ambient = darkenColoured(ambient, opacity); // get real ambient by appling opacity value + + return screenBlend(lightLevelThis, ambient); } else { throw new IllegalArgumentException("Out of bounds of lightMap"); @@ -361,19 +332,43 @@ public class LightmapRenderer { * * @param data Raw channel value [0-39] per channel * @param darken [0-39] per channel - * @return darkened data [0-9] per channel (darken-int divided by 39) + * @return darkened data [0-39] per channel */ - private static float darkenFloat(char data, int darken) { - return (darken(data, darken) / CHANNEL_MAX_FLOAT); + private static char darkenColoured(char data, char darken) { + if (darken < 0 || darken >= COLOUR_DOMAIN_SIZE) { throw new IllegalArgumentException("darken: out of " + + "range"); } + + float r = clampZero(getR(data) - getR(darken)); + float g = clampZero(getG(data) - getG(darken)); + float b = clampZero(getB(data) - getB(darken)); + + return constructRGBFromFloat(r, g, b); } /** - * - * @param data Raw channel value [0-39] per channel - * @param darken [0-39] per channel - * @return darkened data [0-39] per channel + * Darken each channel by 'darken' argument + * @param data [0-39] per channel + * @param darken [0-1] + * @return */ - private static char darken(char data, int darken) { + private static char darkenUniformFloat(char data, float darken) { + if (darken < 0 || darken > 1f) { throw new IllegalArgumentException("darken: out of " + + "range"); } + + float r = clampZero(getR(data) - darken); + float g = clampZero(getG(data) - darken); + float b = clampZero(getB(data) - darken); + + return constructRGBFromFloat(r, g, b); + } + + /** + * Darken each channel by 'darken' argument + * @param data [0-39] per channel + * @param darken [0-39] + * @return + */ + private static char darkenUniformInt(char data, int darken) { if (darken < 0 || darken > CHANNEL_MAX) { throw new IllegalArgumentException("darken: out of " + "range"); } @@ -384,6 +379,46 @@ public class LightmapRenderer { return constructRGBFromInt(r, g, b); } + + /** + * + * @param data Raw channel value [0-39] per channel + * @param brighten [0-39] per channel + * @return brightened data [0-39] per channel + */ + private static char brightenColoured(char data, char brighten) { + if (brighten < 0 || brighten >= COLOUR_DOMAIN_SIZE) { throw new IllegalArgumentException("brighten: out of " + + "range"); } + + float r = clampFloat(getR(data) + getR(brighten)); + float g = clampFloat(getG(data) + getG(brighten)); + float b = clampFloat(getB(data) + getB(brighten)); + + return constructRGBFromFloat(r, g, b); + } + + /** + * + * @param rgb + * @param rgb2 + * @return + */ + private static char additiveBlend(char rgb, char rgb2) { + int r1 = getRawR(rgb); int r2 = getRawR(rgb2); int newR = (r1 > r2) ? r1 : r2; + int g1 = getRawG(rgb); int g2 = getRawG(rgb2); int newG = (g1 > g2) ? g1 : g2; + int b1 = getRawB(rgb); int b2 = getRawB(rgb2); int newB = (b1 > b2) ? b1 : b2; + + return constructRGBFromInt(newR, newG, newB); + } + + private static char screenBlend(char rgb, char rgb2) { + float r1 = getR(rgb); float r2 = getR(rgb2); float newR = 1 - (1 - r1) * (1 - r2); + float g1 = getG(rgb); float g2 = getG(rgb2); float newG = 1 - (1 - g1) * (1 - g2); + float b1 = getB(rgb); float b2 = getB(rgb2); float newB = 1 - (1 - b1) * (1 - b2); + + return constructRGBFromFloat(newR, newG, newB); + } + public static int getRawR(char RGB) { return RGB / MUL_2; } @@ -500,6 +535,10 @@ public class LightmapRenderer { return (i < 0) ? 0 : (i > CHANNEL_MAX) ? CHANNEL_MAX : i; } + private static float clampFloat(float i) { + return (i < 0) ? 0 : (i > 1) ? 1 : i; + } + public static char[][] getStaticLightMap() { return staticLightMap; } diff --git a/src/com/Torvald/Terrarum/MapDrawer/MapCamera.java b/src/com/Torvald/Terrarum/MapDrawer/MapCamera.java index 73516a2da..29ee03631 100644 --- a/src/com/Torvald/Terrarum/MapDrawer/MapCamera.java +++ b/src/com/Torvald/Terrarum/MapDrawer/MapCamera.java @@ -392,8 +392,13 @@ public class MapCamera { if (ty < 0) ty = 0; else if (ty >= map.width) ty = map.width; - if (!isOpaque(map.getTileFromTerrain(tx, ty))) { - return true; + try { + if (!isOpaque(map.getTileFromTerrain(tx, ty))) { + return true; + } + } + catch (ArrayIndexOutOfBoundsException e) { + return false; } } return false; diff --git a/src/com/Torvald/Terrarum/TileProperties/TileProp.java b/src/com/Torvald/Terrarum/TileProperties/TileProp.java index 9ab513cf1..14207596b 100644 --- a/src/com/Torvald/Terrarum/TileProperties/TileProp.java +++ b/src/com/Torvald/Terrarum/TileProperties/TileProp.java @@ -8,7 +8,7 @@ public class TileProp { private int id; private String name; - private int opacity; + private char opacity; private int strength; @@ -42,11 +42,11 @@ public class TileProp { this.name = name; } - public int getOpacity() { + public char getOpacity() { return opacity; } - void setOpacity(int opacity) { + void setOpacity(char opacity) { this.opacity = opacity; } diff --git a/src/com/Torvald/Terrarum/TileProperties/TilePropCodex.java b/src/com/Torvald/Terrarum/TileProperties/TilePropCodex.java index 78781391d..ea8c68e1b 100644 --- a/src/com/Torvald/Terrarum/TileProperties/TilePropCodex.java +++ b/src/com/Torvald/Terrarum/TileProperties/TilePropCodex.java @@ -60,7 +60,7 @@ public class TilePropCodex { prop.setId(intVal(record, "id")); - prop.setOpacity(intVal(record, "opacity")); + prop.setOpacity((char) intVal(record, "opacity")); prop.setStrength(intVal(record, "strength")); prop.setLuminosity((char) intVal(record, "lumcolor")); prop.setDrop(intVal(record, "drop")); @@ -71,7 +71,7 @@ public class TilePropCodex { prop.setWallable(boolVal(record, "wall")); prop.setFallable(boolVal(record, "fall")); - if (prop.isFluid()) prop.setOpacity(intVal(record, "opacity")); + if (prop.isFluid()) prop.setViscocity(intVal(record, "opacity")); System.out.print(prop.getId()); System.out.println("\t" + prop.getName()); diff --git a/src/com/Torvald/Terrarum/TileProperties/propdata.csv b/src/com/Torvald/Terrarum/TileProperties/propdata.csv index e067dd1dd..d9606412b 100644 --- a/src/com/Torvald/Terrarum/TileProperties/propdata.csv +++ b/src/com/Torvald/Terrarum/TileProperties/propdata.csv @@ -1,38 +1,38 @@ "id";"name" ;"opacity";"strength";"fluid";"viscosity";"solid";"wall";"lumcolor";"drop";"fall";"friction" -# Friction: 0: frictionless, <16: slippery, 16: regular, >16: sticky - "0";"TILE_AIR" ; "1"; "0"; "0"; "N/A"; "0"; "0"; "0"; "0"; "0";"16" - "1";"TILE_STONE" ; "5"; "25"; "0"; "N/A"; "1"; "1"; "0"; "1"; "0";"16" - "2";"TILE_DIRT" ; "5"; "6"; "0"; "N/A"; "1"; "1"; "0"; "2"; "0";"16" - "3";"TILE_GRASS" ; "5"; "6"; "0"; "N/A"; "1"; "1"; "0"; "2"; "0";"16" - "4";"TILE_PLANK_NORMAL" ; "5"; "12"; "0"; "N/A"; "1"; "1"; "0"; "4"; "0";"16" - "5";"TILE_PLANK_EBONY" ; "5"; "12"; "0"; "N/A"; "1"; "1"; "0"; "5"; "0";"16" - "6";"TILE_PLANK_BIRCH" ; "5"; "12"; "0"; "N/A"; "1"; "1"; "0"; "6"; "0";"16" - "7";"TILE_PLANK_BLOODROSE" ; "5"; "12"; "0"; "N/A"; "1"; "1"; "0"; "7"; "0";"16" - "8";"TILE_TRUNK_NORMAL" ; "5"; "12"; "0"; "N/A"; "1"; "0"; "0"; "8"; "0";"16" - "9";"TILE_TRUNK_EBONY" ; "5"; "12"; "0"; "N/A"; "1"; "0"; "0"; "9"; "0";"16" - "10";"TILE_TRUNK_BIRCH" ; "5"; "12"; "0"; "N/A"; "1"; "0"; "0"; "10"; "0";"16" - "11";"TILE_TRUNK_BLOODROSE" ; "5"; "12"; "0"; "N/A"; "1"; "0"; "0"; "11"; "0";"16" - "12";"TILE_STONE_QUARRIED" ; "5"; "25"; "0"; "N/A"; "1"; "1"; "0"; "12"; "0";"16" - "13";"TILE_SAND" ; "5"; "6"; "0"; "N/A"; "1"; "1"; "0"; "13"; "1";"16" - "14";"TILE_GRAVEL" ; "5"; "6"; "0"; "N/A"; "1"; "0"; "0"; "14"; "1";"16" +# Friction: 0: frictionless, <16: slippery, 16: regular, >16: sticky | Opacity/Lumcolor: 40-step RGB + "0";"TILE_AIR" ; "1641"; "0"; "0"; "N/A"; "0"; "0"; "0"; "0"; "0";"16" + "1";"TILE_STONE" ; "8205"; "25"; "0"; "N/A"; "1"; "1"; "0"; "1"; "0";"16" + "2";"TILE_DIRT" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "2"; "0";"16" + "3";"TILE_GRASS" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "2"; "0";"16" + "4";"TILE_PLANK_NORMAL" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "4"; "0";"16" + "5";"TILE_PLANK_EBONY" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "5"; "0";"16" + "6";"TILE_PLANK_BIRCH" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "6"; "0";"16" + "7";"TILE_PLANK_BLOODROSE" ; "8205"; "12"; "0"; "N/A"; "1"; "1"; "0"; "7"; "0";"16" + "8";"TILE_TRUNK_NORMAL" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "8"; "0";"16" + "9";"TILE_TRUNK_EBONY" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "9"; "0";"16" + "10";"TILE_TRUNK_BIRCH" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "10"; "0";"16" + "11";"TILE_TRUNK_BLOODROSE" ; "8205"; "12"; "0"; "N/A"; "1"; "0"; "0"; "11"; "0";"16" + "12";"TILE_STONE_QUARRIED" ; "8205"; "25"; "0"; "N/A"; "1"; "1"; "0"; "12"; "0";"16" + "13";"TILE_SAND" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "13"; "1";"16" + "14";"TILE_GRAVEL" ; "8205"; "6"; "0"; "N/A"; "1"; "0"; "0"; "14"; "1";"16" - "15";"TILE_ORE_MALACHITE" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "15"; "0";"16" - "16";"TILE_ORE_HEMATITE" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "16"; "0";"16" - "17";"TILE_ORE_NATURAL_GOLD" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "17"; "0";"16" - "18";"TILE_ORE_NATURAL_SILVER" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "18"; "0";"16" - "19";"TILE_ORE_RUTILE" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "19"; "0";"16" - "20";"TILE_ORE_AURICHALCUMITE" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "20"; "0";"16" - "21";"TILE_GEM_RUBY" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "21"; "0";"16" - "22";"TILE_GEM_EMERALD" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "22"; "0";"16" - "23";"TILE_GEM_SAPPHIRE" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "23"; "0";"16" - "24";"TILE_GEM_TOPAZ" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "24"; "0";"16" - "25";"TILE_GEM_DIAMOND" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "25"; "0";"16" - "26";"TILE_GEM_AMETHYST" ; "5"; "25"; "0"; "N/A"; "1"; "0"; "0"; "26"; "0";"16" + "15";"TILE_ORE_MALACHITE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "15"; "0";"16" + "16";"TILE_ORE_HEMATITE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "16"; "0";"16" + "17";"TILE_ORE_NATURAL_GOLD" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "17"; "0";"16" + "18";"TILE_ORE_NATURAL_SILVER" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "18"; "0";"16" + "19";"TILE_ORE_RUTILE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "19"; "0";"16" + "20";"TILE_ORE_AURICHALCUMITE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "20"; "0";"16" + "21";"TILE_GEM_RUBY" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "21"; "0";"16" + "22";"TILE_GEM_EMERALD" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "22"; "0";"16" + "23";"TILE_GEM_SAPPHIRE" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "23"; "0";"16" + "24";"TILE_GEM_TOPAZ" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "24"; "0";"16" + "25";"TILE_GEM_DIAMOND" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "25"; "0";"16" + "26";"TILE_GEM_AMETHYST" ; "8205"; "25"; "0"; "N/A"; "1"; "0"; "0"; "26"; "0";"16" - "27";"TILE_SNOW" ; "5"; "6"; "0"; "N/A"; "1"; "1"; "0"; "27"; "0";"16" - "28";"TILE_ICE_FRAGILE" ; "2"; "1"; "0"; "N/A"; "1"; "0"; "0"; "28"; "0";"16" - "29";"TILE_ICE_NATURAL" ; "4"; "25"; "0"; "N/A"; "1"; "1"; "0"; "29"; "0"; "8" - "30";"TILE_ICE_CLEAR_MAGICAL" ; "5"; "25"; "0"; "N/A"; "1"; "1"; "4967"; "30"; "0"; "8" + "27";"TILE_SNOW" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "27"; "0";"16" + "28";"TILE_ICE_FRAGILE" ; "3282"; "1"; "0"; "N/A"; "1"; "0"; "0"; "28"; "0";"16" + "29";"TILE_ICE_NATURAL" ; "6564"; "25"; "0"; "N/A"; "1"; "1"; "0"; "29"; "0"; "8" + "30";"TILE_ICE_CLEAR_MAGICAL" ; "8205"; "25"; "0"; "N/A"; "1"; "1"; "4967"; "30"; "0"; "8" # see scandinavian name set female of this tile id! "31";"TILE_PLATFORM_STONE" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "31"; "0";"16" "32";"TILE_PLATFORM_WOODEN" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "32"; "0";"16" @@ -42,5 +42,5 @@ "36";"TILE_TORCH" ; "0"; "0"; "0"; "N/A"; "0"; "0";"63680"; "36"; "0";"16" -"239";"TILE_WATER" ; "2"; "100"; "1"; "2"; "0"; "0";"59159"; "239"; "0";"16" -"255";"TILE_LAVA" ; "0"; "100"; "1"; "2"; "0"; "0";"48320"; "239"; "0";"16" +"239";"TILE_WATER" ; "6522"; "100"; "1"; "2"; "0"; "0"; "0"; "239"; "0";"16" +"255";"TILE_LAVA" ; "62358"; "100"; "1"; "2"; "0"; "0";"48320"; "239"; "0";"16" diff --git a/src/com/Torvald/Terrarum/UserInterface/BasicDebugInfoWindow.java b/src/com/Torvald/Terrarum/UserInterface/BasicDebugInfoWindow.java index a66d72a08..654c9aea8 100644 --- a/src/com/Torvald/Terrarum/UserInterface/BasicDebugInfoWindow.java +++ b/src/com/Torvald/Terrarum/UserInterface/BasicDebugInfoWindow.java @@ -69,12 +69,7 @@ public class BasicDebugInfoWindow implements UICanvas { printLine(g, 4, "veloY : " + String.valueOf(playerDbg.veloY())); printLine(g, 5, "grounded : " + String.valueOf(playerDbg.grounded())); printLine(g, 6, "noClip : " + String.valueOf(playerDbg.noClip())); - printLine(g, 7 - , Lang.get("TERM_PHYS_MASS") - + " : " - + String.valueOf(playerDbg.mass()) - + " [kg]" - ); + printLine(g, 7, "mass : " + String.valueOf(playerDbg.mass()) + " [kg]"); String lightVal; try {