added resources for ambient sound
Former-commit-id: 85517a87b4d2d64808ccfc3fae7effa4cf92eb55 Former-commit-id: 1ddfcd3db3db138d047f6defe5d87ddf7eefac8f
|
Before Width: | Height: | Size: 354 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 313 KiB After Width: | Height: | Size: 4.1 MiB |
BIN
res/graphics/overlay_bloodshot.png
Normal file
|
After Width: | Height: | Size: 409 KiB |
BIN
res/graphics/overlay_darkrim.png
Normal file
|
After Width: | Height: | Size: 289 KiB |
BIN
res/graphics/overlay_darkrim_deletemask.png
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Нов Свят",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Всички права запазени",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "ВНИМАНИЕ-ЗДРАВЕ И БЕЗОПАСНОСТ"
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Nový Svět",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Všechna práva vyhrazena",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "POZOR-ZDRAVÍ A BEZPEČNOST"
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Ny Verden",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Alle rettigheder forbeholdes",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "ADVARSEL-SUNDHED OG SIKKERHED"
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Neue Welt",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "Alle Rechte vorbehalten.",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Alle Rechte vorbehalten.",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "WARNUNG-GESUNDHEIT UND SICHERHEIT"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Νέο Κόσμο",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Όλα τα δικαιώματα διατηρούνται",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "ΠΡΟΣΟΧΗ-ΥΓΕΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "New World",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "All rights reserved.",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": "Best player experience can be achieved with properly adjusted monitor. If you have not, please do it before you play."
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "All rights reserved.",
|
||||
"APP_ADJUST_YOUR_MONITOR": "Best player experience can be achieved with properly adjusted monitor. If you have not, please do it before you play.",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "WARNING-HEALTH AND SAFETY"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Nuevo Mundo",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "Todos los derechos reservados.",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Todos los derechos reservados.",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "ADVERTENCIA-SALUD Y SEGURIDAD"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Uusi Maailma",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "Kaikki oikeudet pidätetään",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": "Paras pelikokemus saavutetaan on oikealla säädetty näytöllä. Jos et ole ollut, säädä ennen pelaamista."
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Kaikki oikeudet pidätetään",
|
||||
"APP_ADJUST_YOUR_MONITOR": "Paras pelikokemus saavutetaan on oikealla säädetty näytöllä. Jos et ole ollut, säädä ennen pelaamista.",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "VAROITUS-TERVEYS JA TURVALLISUUS"
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Nouveau Monde",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "Tous les droits sont réservés.",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": "Meilleure expérience de joueur peut être réalisé avec écran correctement réglé. Si vous ne l'avez pas, s.v.p. le réglez avant de jouer."
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Tous les droits sont réservés.",
|
||||
"APP_ADJUST_YOUR_MONITOR": "Meilleure expérience de joueur peut être réalisé avec écran correctement réglé. Si vous ne l'avez pas, s.v.p. le réglez avant de jouer.",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "ATTENTION-SANTÉ ET SÉCURITÉ"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Új Világ",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Minden jog fenntartva",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "VIGYÁZAT-EGÉSZSÉGÜGYI ÉS BIZTONSÁGI"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Nýr Heimur",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "Öll réttindi áskilinn.",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": "Best leikmaður reynsla er getur náðist með rétt kvarðaður skjárinn. Ef þú ekki gerðir, gerðu svo vel að kvarða áður en þú leikur."
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Öll réttindi áskilinn.",
|
||||
"APP_ADJUST_YOUR_MONITOR": "Best leikmaður reynsla er getur náðist með rétt kvarðaður skjárinn. Ef þú ekki gerðir, gerðu svo vel að kvarða áður en þú leikur.",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "VIÐVÖRUN-HEILSA OG ÖRYGGI"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Nuovo Mondo",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "Tutti i diritti riservati.",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Tutti i diritti riservati.",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "ATTENZIONE-SALUTE E SICUREZZA"
|
||||
|
||||
}
|
||||
13
res/locales/jaJP/configurator.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"MENU_MONITOR_CALI_TITLE": "モニターチェック",
|
||||
"MENU_MONITOR_CALI_LABEL_1": "1番のバーが明確に見えるはずし、",
|
||||
"MENU_MONITOR_CALI_LABEL_2": "30・31・32番のバーが明確に区別されなければなりません。",
|
||||
"MENU_MONITOR_CALI_LABEL_3": " ",
|
||||
"MENU_MONITOR_CALI_LABEL_4": "調整しないたモニターでは、左端のいくつかのバーが表示されません、",
|
||||
"MENU_MONITOR_CALI_LABEL_5": "右端のいくつかのバーの違いが表示されません、",
|
||||
"MENU_MONITOR_CALI_LABEL_6": "または31と32番の間に大きなジャンブを示しています。",
|
||||
"MENU_MONITOR_CALI_LABEL_7": " ",
|
||||
"MENU_MONITOR_CALI_LABEL_8": "調整したモニターでは、1から32番まで、ほぼ同じステップの明るさが示しています。",
|
||||
"MENU_MONITOR_CALI_LABEL_9": " ",
|
||||
"MENU_MONITOR_CALI_LABEL_10": "モニターのコントラストと明るさ設定を調整してください。"
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "新しい世界",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "全著作権所有。",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": "このゲームは、適切に調整したモニターから最高のプレイができます。調整していなかったら、プレイする前に調整してください。"
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "全著作権所有。",
|
||||
"APP_ADJUST_YOUR_MONITOR": "このゲームは、適切に調整したモニターから最高のプレイができます。調整していなかったら、プレイする前に調整してください。",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "警告ー健康と安全のために"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "あたらしい せかい",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "ぜんちょさくけん しょゆう。",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": "このゲームは、てきせつにちょうせいした モニターから さいこうのプレイができます。ちょうせいして いなかったら、プレイするまえに ちょうせいしてください。"
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "ぜんちょさくけん しょゆう。",
|
||||
"APP_ADJUST_YOUR_MONITOR": "このゲームは、てきせつにちょうせいした モニターから さいこうのプレイができます。ちょうせいして いなかったら、プレイするまえに ちょうせいしてください。",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "けいこくーけんこうと あんぜんを ために"
|
||||
|
||||
}
|
||||
@@ -3,11 +3,11 @@
|
||||
"MENU_MONITOR_CALI_LABEL_1": "1번 막대가 배경에서 눈에 띄어야 하고",
|
||||
"MENU_MONITOR_CALI_LABEL_2": "30·31·32번 막대가 확실히 구분되어야 합니다",
|
||||
"MENU_MONITOR_CALI_LABEL_3": " ",
|
||||
"MENU_MONITOR_CALI_LABEL_4": "부적절한 모니터에서는 왼쪽 끝의 막대 몇 개가 보이지 않거나",
|
||||
"MENU_MONITOR_CALI_LABEL_4": "조정 안 된 모니터에서는 왼쪽 끝의 막대 몇 개가 보이지 않거나",
|
||||
"MENU_MONITOR_CALI_LABEL_5": "오른쪽 끝의 막대 몇 개가 똑같게 보이거나",
|
||||
"MENU_MONITOR_CALI_LABEL_6": "31번과 32번의 차이가 크게 보일 것입니다",
|
||||
"MENU_MONITOR_CALI_LABEL_7": " ",
|
||||
"MENU_MONITOR_CALI_LABEL_8": "적절한 모니터에서는 1번 막대에서 32번 막대까지 거의 일정하게 밝아지는 것으로 보입니다",
|
||||
"MENU_MONITOR_CALI_LABEL_8": "조정된 모니터에서는 1번 막대에서 32번 막대까지 거의 일정하게 밝아지는 것으로 보입니다",
|
||||
"MENU_MONITOR_CALI_LABEL_9": " ",
|
||||
"MENU_MONITOR_CALI_LABEL_10": "모니터의 대비와 밝기 설정을 조절해 모니터를 조정해 주십시오"
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "새 세계",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "모든 권리 보유.",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": "본 게임은 적절히 조정된 모니터에서 최상으로 즐길 수 있습니다. 조정하지 않았다면 플레이하기 전에 조정해 주십시오."
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "모든 권리 보유.",
|
||||
"APP_ADJUST_YOUR_MONITOR": "본 게임은 적절히 조정된 모니터에서 최상으로 즐길 수 있습니다. 조정하지 않았다면 플레이하기 전에 조정해 주십시오.",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "경고—건강과 안전을 위하여"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Nieuwe Wereld",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Alle rechten voorbehouden",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "WAARSCHUWING-GEZONDHEID EN VEILIGHEID"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Ny Verden",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Alle rettigheter reservert",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "ADVARSEL-HELSE OG SIKKERHET"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Nowy Świat",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Wszelkie prawa zastrzeżone",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "UWAGA-ZDROWIE I BEZPIECZEŃSTWO"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Novo Mundo",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Todos os direitos reservados",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "ATENÇÃO-SAÚDE E SEGURANÇA"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Novo Mundo",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Todos os direitos reservados",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "ATENÇÃO-SAÚDE E SEGURANÇA"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Lume Noua",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Toate drepturile rezervate",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "ATENȚIONARE-SĂNĂTATE ȘI SIGURANȚĂ"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Новый Мир",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Все права защищены",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "ПРЕДУПРЕЖДЕНИЕ-ЗДОРОВЬЕ И БЕЗОПАСНОСТЬ"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Ny Värld",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Alla rättigheter förbehållna",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "VARNING-HÄLSA OCH SÄKERHET"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "โลกใหม",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "สงวนลิขสิทธิ์",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "คำเตือน-อนามัยและความปลอดภัย"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "Yeni Dünya",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Her hakkı saklıdır",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "UYARI-SAĞLIK VE GÜVENLİK"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "新世界",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "版权所有",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "警告ー健康和安全"
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"MENU_LABEL_NEW_WORLD": "新世界",
|
||||
|
||||
"COPYRIGHT_PROPRIETARY": "",
|
||||
"APP_CALIBRATE_YOUR_MONITOR": ""
|
||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "版權所有",
|
||||
"APP_ADJUST_YOUR_MONITOR": "",
|
||||
|
||||
"APP_WARNING_HEALTH_AND_SAFETY": "警告ー健康和安全"
|
||||
|
||||
}
|
||||
1
res/sounds/ambient/klankbeeld-freesound/.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.{psd,tga,ogg} filter=lfs diff=lfs merge=lfs -text
|
||||
BIN
res/sounds/ambient/klankbeeld-freesound/ambient_forest_01.ogg
LFS
Normal file
BIN
res/sounds/ambient/klankbeeld-freesound/ambient_meadow_01.ogg
LFS
Normal file
BIN
res/sounds/ambient/klankbeeld-freesound/ambient_windy_01.ogg
LFS
Normal file
BIN
res/sounds/ambient/klankbeeld-freesound/ambient_woods_01.ogg
LFS
Normal file
BIN
res/sounds/ambient/klankbeeld-freesound/crickets_01.ogg
LFS
Normal file
BIN
res/sounds/ambient/klankbeeld-freesound/crickets_02.ogg
LFS
Normal file
@@ -20,6 +20,8 @@ object CSVFetcher {
|
||||
csvString = StringBuffer() // reset buffer every time it called
|
||||
readCSVasString(csvFilePath)
|
||||
|
||||
println("Reading CSV $csvFilePath")
|
||||
|
||||
val csvParser = CSVParser.parse(
|
||||
csvString!!.toString(),
|
||||
CSVFormat.DEFAULT.withIgnoreSurroundingSpaces()
|
||||
|
||||
@@ -22,6 +22,8 @@ object JsonFetcher {
|
||||
jsonString = StringBuffer() // reset buffer every time it called
|
||||
readJsonFileAsString(jsonFilePath)
|
||||
|
||||
println("Reading JSON $jsonFilePath")
|
||||
|
||||
val jsonParser = JsonParser()
|
||||
val jsonObj = jsonParser.parse(jsonString!!.toString()).asJsonObject
|
||||
|
||||
@@ -33,6 +35,8 @@ object JsonFetcher {
|
||||
jsonString = StringBuffer() // reset buffer every time it called
|
||||
readJsonFileAsString(jsonFile.canonicalPath)
|
||||
|
||||
println("Reading JSON ${jsonFile.path}")
|
||||
|
||||
val jsonParser = JsonParser()
|
||||
val jsonObj = jsonParser.parse(jsonString!!.toString()).asJsonObject
|
||||
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
* *Terrarum* by Torvald
|
||||
Copyright 2015-2016 Torvald. All rights reserved.
|
||||
mailto: skyhi14 *64* __115875741922660__ *46* __6516589__
|
||||
*Terrarum* by Torvald
|
||||
|
||||
Copyright (C) 2015-2016 Torvald. All rights reserved.
|
||||
mailto: skyhi14 *64* __115875741922660__ *46* __6516589__
|
||||
|
||||
----
|
||||
|
||||
* *Simplex Noise Generator*, version 2012-03-09 by Stefan Gustavson
|
||||
Released as public domain
|
||||
*Simplex Noise Generator*, version 2012-03-09 by Stefan Gustavson
|
||||
|
||||
Released as public domain
|
||||
|
||||
----
|
||||
|
||||
* *Joise* modular noise library
|
||||
Copyright (C) 2013 Jason Taylor.
|
||||
*Joise* modular noise library
|
||||
|
||||
Copyright (C) 2013 Jason Taylor.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@@ -26,9 +29,10 @@
|
||||
|
||||
----
|
||||
|
||||
* *Vector2* from Dyn4j
|
||||
Copyright (c) 2010-2015 William Bittle http://www.dyn4j.org/
|
||||
All rights reserved.
|
||||
*Vector2* from Dyn4j
|
||||
|
||||
Copyright (c) 2010-2015 William Bittle http://www.dyn4j.org/
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted
|
||||
provided that the following conditions are met:
|
||||
@@ -50,4 +54,13 @@
|
||||
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||||
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Kotlin translated and modified code Copyright (c) 2016 Torvald aka skyhi14.
|
||||
Kotlin translated and modified code Copyright (C) 2016 Torvald aka skyhi14.
|
||||
|
||||
---
|
||||
|
||||
Amazing ambient sound recordings in ```sound/ambient/klankbeeld-freesound```
|
||||
|
||||
Samples used: 173111, 183181, 185290, 195287, 240108, 326914, 337691, 347753
|
||||
|
||||
Copyright (C) 2012, 2013, 2015, 2016 Klankbeeld
|
||||
Sound from http://www.freesound.org/people/klankbeeld/
|
||||
@@ -59,9 +59,9 @@ constructor(gamename: String) : StateBasedGame(gamename) {
|
||||
}
|
||||
}
|
||||
|
||||
//game = StateGame()
|
||||
//addState(game)
|
||||
addState(StateMonitorCheck())
|
||||
ingame = StateInGame()
|
||||
addState(ingame)
|
||||
//addState(StateMonitorCheck())
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
@@ -241,7 +241,7 @@ object LightmapRenderer {
|
||||
}
|
||||
// luminous tile on top of air
|
||||
else if (thisWall == AIR && thisTileLuminosity.toInt() > 0) {
|
||||
lightLevelThis = maximiseRGB(sunLight, thisTileLuminosity) // maximise to not exceed 1.0 with normal (<= 1.0) light
|
||||
lightLevelThis = sunLight maxBlend thisTileLuminosity // maximise to not exceed 1.0 with normal (<= 1.0) light
|
||||
}
|
||||
// opaque wall and luminous tile
|
||||
else if (thisWall != AIR && thisTileLuminosity.toInt() > 0) {
|
||||
@@ -252,7 +252,7 @@ object LightmapRenderer {
|
||||
// mix luminous actor
|
||||
for ((posX, posY, luminosity) in lanternMap) {
|
||||
if (posX == x && posY == y)
|
||||
lightLevelThis = maximiseRGB(lightLevelThis, luminosity) // maximise to not exceed 1.0 with normal (<= 1.0) light
|
||||
lightLevelThis = lightLevelThis maxBlend luminosity // maximise to not exceed 1.0 with normal (<= 1.0) light
|
||||
}
|
||||
|
||||
|
||||
@@ -286,7 +286,7 @@ object LightmapRenderer {
|
||||
nearby = 0 // exclude 'me' tile
|
||||
}
|
||||
|
||||
ambient = maximiseRGB(ambient, nearby) // keep base value as brightest nearby
|
||||
ambient = ambient maxBlend nearby // keep base value as brightest nearby
|
||||
}
|
||||
}
|
||||
|
||||
@@ -294,7 +294,7 @@ object LightmapRenderer {
|
||||
thisTileOpacity) // get real ambient by appling opacity value
|
||||
|
||||
// mix and return lightlevel and ambient
|
||||
return maximiseRGB(lightLevelThis, ambient)
|
||||
return lightLevelThis maxBlend ambient
|
||||
}
|
||||
else {
|
||||
return lightLevelThis
|
||||
@@ -355,27 +355,19 @@ object LightmapRenderer {
|
||||
* +-+-+
|
||||
* d
|
||||
*/
|
||||
val a = maximiseRGB(
|
||||
thisLightLevel,
|
||||
getLight(x, y - 1) ?: thisLightLevel
|
||||
)
|
||||
val d = maximiseRGB(
|
||||
thisLightLevel,
|
||||
getLight(x, y + 1) ?: thisLightLevel
|
||||
)
|
||||
val b = maximiseRGB(
|
||||
thisLightLevel,
|
||||
getLight(x - 1, y) ?: thisLightLevel
|
||||
)
|
||||
val c = maximiseRGB(
|
||||
thisLightLevel,
|
||||
getLight(x + 1, y) ?: thisLightLevel
|
||||
)
|
||||
val a = thisLightLevel maxBlend (getLight(x, y - 1) ?: thisLightLevel)
|
||||
val d = thisLightLevel maxBlend (getLight(x, y + 1) ?: thisLightLevel)
|
||||
val b = thisLightLevel maxBlend (getLight(x - 1, y) ?: thisLightLevel)
|
||||
val c = thisLightLevel maxBlend (getLight(x + 1, y) ?: thisLightLevel)
|
||||
|
||||
val colourMapItoL = IntArray(4)
|
||||
colourMapItoL[0] = colourLinearMix(a, b)
|
||||
colourMapItoL[1] = colourLinearMix(a, c)
|
||||
colourMapItoL[2] = colourLinearMix(b, d)
|
||||
colourMapItoL[3] = colourLinearMix(c, d)
|
||||
val colMean = (a linMix d) linMix (b linMix c)
|
||||
val colDelta = thisLightLevel colSub colMean
|
||||
|
||||
colourMapItoL[0] = a linMix b colAdd colDelta
|
||||
colourMapItoL[1] = a linMix c colAdd colDelta
|
||||
colourMapItoL[2] = b linMix d colAdd colDelta
|
||||
colourMapItoL[3] = c linMix d colAdd colDelta
|
||||
|
||||
for (iy in 0..1) {
|
||||
for (ix in 0..1) {
|
||||
@@ -505,34 +497,46 @@ object LightmapRenderer {
|
||||
* @param rgb2
|
||||
* @return
|
||||
*/
|
||||
private fun maximiseRGB(rgb: Int, rgb2: Int): Int {
|
||||
val r1 = rgb.rawR()
|
||||
val r2 = rgb2.rawR()
|
||||
private infix fun Int.maxBlend(other: Int): Int {
|
||||
val r1 = this.rawR()
|
||||
val r2 = other.rawR()
|
||||
val newR = if (r1 > r2) r1 else r2
|
||||
val g1 = rgb.rawG()
|
||||
val g2 = rgb2.rawG()
|
||||
val g1 = this.rawG()
|
||||
val g2 = other.rawG()
|
||||
val newG = if (g1 > g2) g1 else g2
|
||||
val b1 = rgb.rawB()
|
||||
val b2 = rgb2.rawB()
|
||||
val b1 = this.rawB()
|
||||
val b2 = other.rawB()
|
||||
val newB = if (b1 > b2) b1 else b2
|
||||
|
||||
return constructRGBFromInt(newR, newG, newB)
|
||||
}
|
||||
|
||||
private fun screenBlend(rgb: Int, rgb2: Int): Int {
|
||||
val r1 = rgb.r()
|
||||
val r2 = rgb2.r()
|
||||
private infix fun Int.screenBlend(other: Int): Int {
|
||||
val r1 = this.r()
|
||||
val r2 = other.r()
|
||||
val newR = 1 - (1 - r1) * (1 - r2)
|
||||
val g1 = rgb.g()
|
||||
val g2 = rgb2.g()
|
||||
val g1 = this.g()
|
||||
val g2 = other.g()
|
||||
val newG = 1 - (1 - g1) * (1 - g2)
|
||||
val b1 = rgb.b()
|
||||
val b2 = rgb2.b()
|
||||
val b1 = this.b()
|
||||
val b2 = other.b()
|
||||
val newB = 1 - (1 - b1) * (1 - b2)
|
||||
|
||||
return constructRGBFromFloat(newR, newG, newB)
|
||||
}
|
||||
|
||||
private infix fun Int.colSub(other: Int) = constructRGBFromInt(
|
||||
(this.rawR() - other.rawR()).clampChannel() ,
|
||||
(this.rawG() - other.rawG()).clampChannel() ,
|
||||
(this.rawB() - other.rawB()).clampChannel()
|
||||
)
|
||||
|
||||
private infix fun Int.colAdd(other: Int) = constructRGBFromInt(
|
||||
(this.rawR() + other.rawR()).clampChannel() ,
|
||||
(this.rawG() + other.rawG()).clampChannel() ,
|
||||
(this.rawB() + other.rawB()).clampChannel()
|
||||
)
|
||||
|
||||
fun Int.rawR() = this / MUL_2
|
||||
fun Int.rawG() = this % MUL_2 / MUL
|
||||
fun Int.rawB() = this % MUL
|
||||
@@ -581,10 +585,10 @@ object LightmapRenderer {
|
||||
return constructRGBFromInt(intR, intG, intB)
|
||||
}
|
||||
|
||||
private fun colourLinearMix(colA: Int, colB: Int): Int {
|
||||
val r = (colA.rawR() + colB.rawR()) ushr 1
|
||||
val g = (colA.rawG() + colB.rawG()) ushr 1
|
||||
val b = (colA.rawB() + colB.rawB()) ushr 1
|
||||
private infix fun Int.linMix(other: Int): Int {
|
||||
val r = (this.rawR() + other.rawR()) ushr 1
|
||||
val g = (this.rawG() + other.rawG()) ushr 1
|
||||
val b = (this.rawB() + other.rawB()) ushr 1
|
||||
return constructRGBFromInt(r, g, b)
|
||||
}
|
||||
|
||||
|
||||