mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-07 00:54:05 +09:00
Compare commits
177 Commits
v0.3.2-tes
...
v0.3.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c701519cb9 | ||
|
|
75e6669d49 | ||
|
|
18631064d4 | ||
|
|
9fe6618cc9 | ||
|
|
7b8d6d6913 | ||
|
|
385a882937 | ||
|
|
c73461a407 | ||
|
|
f7e4987785 | ||
|
|
78bd88858b | ||
|
|
d2b1346252 | ||
|
|
fb28fd8a76 | ||
|
|
36d25c6479 | ||
|
|
2ade76147c | ||
|
|
59d9adbbd1 | ||
|
|
821c7c77d8 | ||
|
|
3308f09e08 | ||
|
|
37d45e22ad | ||
|
|
1ac861fa82 | ||
|
|
451808cd1c | ||
|
|
0c00b3b7cc | ||
|
|
1669f7fdd0 | ||
|
|
f4bfe84009 | ||
|
|
91cf08e93a | ||
|
|
33a8112454 | ||
|
|
439cde09fc | ||
|
|
2a62435712 | ||
|
|
5495552db5 | ||
|
|
e04d0284bb | ||
|
|
ad601ffd7e | ||
|
|
987ec1fd98 | ||
|
|
4fb30821f1 | ||
|
|
a73c536941 | ||
|
|
4c1f16fe91 | ||
|
|
6df78b59a9 | ||
|
|
28c4d8f11b | ||
|
|
cdfc86398c | ||
|
|
91d94d2dab | ||
|
|
0af2e57368 | ||
|
|
fbce707cac | ||
|
|
9d7bd37394 | ||
|
|
df8bcf79af | ||
|
|
e328457259 | ||
|
|
9baec6c7a1 | ||
|
|
d05364f43f | ||
|
|
e7ed3d8eae | ||
|
|
da6da79186 | ||
|
|
0767521441 | ||
|
|
30aca57cbc | ||
|
|
e512c6c7ad | ||
|
|
6ebf79a8e3 | ||
|
|
e5d5feeb38 | ||
|
|
8e9d2371c8 | ||
|
|
1f5d032ad8 | ||
|
|
7993ccd2e5 | ||
|
|
c77f1ffd23 | ||
|
|
4eb7a8a77e | ||
|
|
10f92a11a9 | ||
|
|
c5659e2833 | ||
|
|
173f99f87d | ||
|
|
64e05a4f17 | ||
|
|
c033260ec5 | ||
|
|
22191bd377 | ||
|
|
79f19120f2 | ||
|
|
d96b7d1b84 | ||
|
|
2b62b4f413 | ||
|
|
f0fa5830bd | ||
|
|
ec24dc9870 | ||
|
|
6bc3d0e6ad | ||
|
|
64c610e77e | ||
|
|
b25ea9654c | ||
|
|
b6b98562a2 | ||
|
|
c93b70f537 | ||
|
|
fb67b0ef5a | ||
|
|
7c7b3de68d | ||
|
|
71df31b93d | ||
|
|
9b24014191 | ||
|
|
02308a7918 | ||
|
|
03c6061a12 | ||
|
|
325e67f999 | ||
|
|
211f936bd3 | ||
|
|
1f6fa49d19 | ||
|
|
13810fc09b | ||
|
|
f95bc36c98 | ||
|
|
d507d84950 | ||
|
|
b31da6ffec | ||
|
|
3593894c0f | ||
|
|
c28b286553 | ||
|
|
c0a3da1b66 | ||
|
|
02cf5fdce5 | ||
|
|
1e6f51e16c | ||
|
|
c61c169048 | ||
|
|
5c58c3006b | ||
|
|
742cabb81f | ||
|
|
07d5e571d6 | ||
|
|
305242045f | ||
|
|
67388999f0 | ||
|
|
b0cc1180bb | ||
|
|
453459e3b6 | ||
|
|
bad72dd353 | ||
|
|
13185f0565 | ||
|
|
fcaf4c97f1 | ||
|
|
9c396e7b8d | ||
|
|
afb7dff5d2 | ||
|
|
5d0514040c | ||
|
|
7c1806946b | ||
|
|
e5e02681b8 | ||
|
|
6db3baf691 | ||
|
|
07cbcbe79b | ||
|
|
57a9f7febc | ||
|
|
16cfaaea27 | ||
|
|
72c742897e | ||
|
|
23af64deb4 | ||
|
|
bb017fa9b7 | ||
|
|
1745bb16db | ||
|
|
370583d1af | ||
|
|
66b651c627 | ||
|
|
c5874a7f3d | ||
|
|
057905c3b7 | ||
|
|
2b50562002 | ||
|
|
73a8198378 | ||
|
|
1ef479124e | ||
|
|
e5e8028b3f | ||
|
|
739b51af95 | ||
|
|
f9f49ab63c | ||
|
|
a497463349 | ||
|
|
253db56c4f | ||
|
|
3d13941060 | ||
|
|
592e489411 | ||
|
|
49b2011ea0 | ||
|
|
61e6255b52 | ||
|
|
2e956f89f5 | ||
|
|
e8ffd1f844 | ||
|
|
0882145f9c | ||
|
|
28e2179e44 | ||
|
|
48eb1ffd8f | ||
|
|
6daccb2e62 | ||
|
|
8c9d5a26fb | ||
|
|
ee3e5b14cd | ||
|
|
5c39df9080 | ||
|
|
5d77694316 | ||
|
|
cf111d2507 | ||
|
|
724ace3f00 | ||
|
|
1457cbffb3 | ||
|
|
7a42066392 | ||
|
|
528b975350 | ||
|
|
9e9064dd55 | ||
|
|
138c6d22d2 | ||
|
|
a33f0e7ab4 | ||
|
|
93c427473d | ||
|
|
6b8798a19e | ||
|
|
376595d7cd | ||
|
|
4cc52b5585 | ||
|
|
0ff71f39fe | ||
|
|
13f487a562 | ||
|
|
0599ce91b1 | ||
|
|
3d5fd984d7 | ||
|
|
8d0d84fbf8 | ||
|
|
eb2c716691 | ||
|
|
ac53f821e2 | ||
|
|
cd6df71347 | ||
|
|
ac553ed156 | ||
|
|
8c5c986cbf | ||
|
|
a0f597865e | ||
|
|
bafd0d9f7c | ||
|
|
e259fc2f3b | ||
|
|
ebbb121b8c | ||
|
|
331e89b4df | ||
|
|
98a6c9ae70 | ||
|
|
1646871ddf | ||
|
|
76bfc0fde4 | ||
|
|
ef6f39632d | ||
|
|
a3ecd4a4f4 | ||
|
|
065f80224f | ||
|
|
34fb046968 | ||
|
|
43da6cc5d8 | ||
|
|
fccc2162f6 | ||
|
|
c554df9b98 |
24
.idea/artifacts/TerrarumBuild.xml
generated
24
.idea/artifacts/TerrarumBuild.xml
generated
@@ -13,6 +13,10 @@
|
|||||||
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-controllers-desktop-2.2.1.jar" path-in-jar="/" />
|
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-controllers-desktop-2.2.1.jar" path-in-jar="/" />
|
||||||
<element id="extracted-dir" path="$PROJECT_DIR$/lib/GetCpuName.jar" path-in-jar="/" />
|
<element id="extracted-dir" path="$PROJECT_DIR$/lib/GetCpuName.jar" path-in-jar="/" />
|
||||||
<element id="extracted-dir" path="$PROJECT_DIR$/lib/jxinput-1.0.0.jar" path-in-jar="/" />
|
<element id="extracted-dir" path="$PROJECT_DIR$/lib/jxinput-1.0.0.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-stdlib.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-reflect.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-stdlib-jdk7.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-stdlib-jdk8.jar" path-in-jar="/" />
|
||||||
<element id="extracted-dir" path="$PROJECT_DIR$/lib/commons-csv-1.8.jar" path-in-jar="/" />
|
<element id="extracted-dir" path="$PROJECT_DIR$/lib/commons-csv-1.8.jar" path-in-jar="/" />
|
||||||
<element id="extracted-dir" path="$PROJECT_DIR$/lib/prtree.jar" path-in-jar="/" />
|
<element id="extracted-dir" path="$PROJECT_DIR$/lib/prtree.jar" path-in-jar="/" />
|
||||||
<element id="extracted-dir" path="$PROJECT_DIR$/lib/Terrarum_Joise.jar" path-in-jar="/" />
|
<element id="extracted-dir" path="$PROJECT_DIR$/lib/Terrarum_Joise.jar" path-in-jar="/" />
|
||||||
@@ -72,21 +76,17 @@
|
|||||||
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.11.0-natives-armeabi-v7a.jar" path-in-jar="/" />
|
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.11.0-natives-armeabi-v7a.jar" path-in-jar="/" />
|
||||||
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.11.0-natives-desktop.jar" path-in-jar="/" />
|
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.11.0-natives-desktop.jar" path-in-jar="/" />
|
||||||
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.11.0-natives-x86_64.jar" path-in-jar="/" />
|
<element id="extracted-dir" path="$PROJECT_DIR$/lib/gdx-platform-1.11.0-natives-x86_64.jar" path-in-jar="/" />
|
||||||
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.8.21/kotlin-stdlib-1.8.21.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.21/kotlin-stdlib-common-1.8.21.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-test/1.8.21/kotlin-test-1.8.21.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-reflect/1.8.21/kotlin-reflect-1.8.21.jar" path-in-jar="/" />
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-reflect/1.8.21/kotlin-reflect-1.8.21.jar" path-in-jar="/" />
|
||||||
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-stdlib-jdk8.jar" path-in-jar="/" />
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.8.21/kotlin-stdlib-1.8.21.jar" path-in-jar="/" />
|
||||||
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-reflect.jar" path-in-jar="/" />
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.21/kotlin-stdlib-common-1.8.21.jar" path-in-jar="/" />
|
||||||
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-stdlib-jdk7.jar" path-in-jar="/" />
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0.jar" path-in-jar="/" />
|
||||||
<element id="extracted-dir" path="$KOTLIN_BUNDLED$/lib/kotlin-stdlib.jar" path-in-jar="/" />
|
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-test/1.8.21/kotlin-test-1.8.21.jar" path-in-jar="/" />
|
||||||
<element id="extracted-dir" path="$PROJECT_DIR$/lib/graal-sdk-22.3.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$PROJECT_DIR$/lib/icu4j-71.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$PROJECT_DIR$/lib/js-22.3.1-edit.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$PROJECT_DIR$/lib/js-scriptengine-22.3.1.jar" path-in-jar="/" />
|
<element id="extracted-dir" path="$PROJECT_DIR$/lib/js-scriptengine-22.3.1.jar" path-in-jar="/" />
|
||||||
<element id="extracted-dir" path="$PROJECT_DIR$/lib/regex-22.3.1-edit.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$PROJECT_DIR$/lib/truffle-api-22.3.1.jar" path-in-jar="/" />
|
<element id="extracted-dir" path="$PROJECT_DIR$/lib/truffle-api-22.3.1.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$PROJECT_DIR$/lib/icu4j-71.1.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$PROJECT_DIR$/lib/regex-22.3.1-edit.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$PROJECT_DIR$/lib/js-22.3.1-edit.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$PROJECT_DIR$/lib/graal-sdk-22.3.1.jar" path-in-jar="/" />
|
||||||
</root>
|
</root>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
14
.idea/libraries/io_github_classgraph.xml
generated
Normal file
14
.idea/libraries/io_github_classgraph.xml
generated
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="io.github.classgraph" type="repository">
|
||||||
|
<properties maven-id="io.github.classgraph:classgraph:4.8.157" />
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$PROJECT_DIR$/lib/classgraph-4.8.157.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$PROJECT_DIR$/lib/classgraph-4.8.157-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$PROJECT_DIR$/lib/classgraph-4.8.157-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
19
.idea/runConfigurations/Principii.xml
generated
Normal file
19
.idea/runConfigurations/Principii.xml
generated
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<component name="ProjectRunConfigurationManager">
|
||||||
|
<configuration default="false" name="Principii" type="Application" factoryName="Application" nameIsGenerated="true">
|
||||||
|
<option name="MAIN_CLASS_NAME" value="net.torvald.terrarum.Principii" />
|
||||||
|
<module name="TerrarumBuild" />
|
||||||
|
<extension name="coverage">
|
||||||
|
<pattern>
|
||||||
|
<option name="PATTERN" value="net.torvald.terrarum.*" />
|
||||||
|
<option name="ENABLED" value="true" />
|
||||||
|
</pattern>
|
||||||
|
</extension>
|
||||||
|
<method v="2">
|
||||||
|
<option name="BuildArtifacts" enabled="true">
|
||||||
|
<artifact name="ModuleComputers" />
|
||||||
|
<artifact name="TerrarumBuild" />
|
||||||
|
</option>
|
||||||
|
<option name="Make" enabled="true" />
|
||||||
|
</method>
|
||||||
|
</configuration>
|
||||||
|
</component>
|
||||||
@@ -16,5 +16,6 @@
|
|||||||
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
|
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
|
||||||
<orderEntry type="library" name="jetbrains.kotlin.reflect" level="project" />
|
<orderEntry type="library" name="jetbrains.kotlin.reflect" level="project" />
|
||||||
<orderEntry type="library" name="jetbrains.kotlin.test" level="project" />
|
<orderEntry type="library" name="jetbrains.kotlin.test" level="project" />
|
||||||
|
<orderEntry type="library" name="io.github.classgraph" level="project" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
@@ -195,17 +195,10 @@ internal class UIHomeComputer : UICanvas(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun doOpening(delta: Float) {
|
override fun doOpening(delta: Float) {
|
||||||
|
super.doOpening(delta)
|
||||||
fixture.startVM()
|
fixture.startVM()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun doClosing(delta: Float) {
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun endOpening(delta: Float) {
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun endClosing(delta: Float) {
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun dispose() {
|
override fun dispose() {
|
||||||
fbo.dispose()
|
fbo.dispose()
|
||||||
|
|||||||
@@ -24,5 +24,6 @@
|
|||||||
<orderEntry type="library" name="badlogicgames.gdx.backend.lwjgl3" level="project" />
|
<orderEntry type="library" name="badlogicgames.gdx.backend.lwjgl3" level="project" />
|
||||||
<orderEntry type="library" name="jetbrains.kotlin.reflect" level="project" />
|
<orderEntry type="library" name="jetbrains.kotlin.reflect" level="project" />
|
||||||
<orderEntry type="library" name="jetbrains.kotlin.test" level="project" />
|
<orderEntry type="library" name="jetbrains.kotlin.test" level="project" />
|
||||||
|
<orderEntry type="library" name="io.github.classgraph" level="project" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
BIN
assets/clut/skybox.png
LFS
Normal file
BIN
assets/clut/skybox.png
LFS
Normal file
Binary file not shown.
BIN
assets/graphics/astrum.png
LFS
Normal file
BIN
assets/graphics/astrum.png
LFS
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
assets/graphics/gui/apple_rosetta_warning.tga
LFS
Normal file
BIN
assets/graphics/gui/apple_rosetta_warning.tga
LFS
Normal file
Binary file not shown.
Binary file not shown.
BIN
assets/graphics/gui/hrule.tga
LFS
Normal file
BIN
assets/graphics/gui/hrule.tga
LFS
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -379,11 +379,11 @@ let isDiacritics = (s) => s !== undefined && inRange(s.charCodeAt(0), 0x0300, 0x
|
|||||||
return Object.freeze({"n":"\uDBBF\uDFC1Бъл. Многоезична\uDBBF\uDFC0","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
return Object.freeze({"n":"\uDBBF\uDFC1Бъл. Многоезична\uDBBF\uDFC0","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
||||||
"t":dislplayKeyLayouts,
|
"t":dislplayKeyLayouts,
|
||||||
"l":"bgBG",
|
"l":"bgBG",
|
||||||
// return: [displayed output, composed output]
|
// return: [delete count, composed output]
|
||||||
"accept":(headkey,shiftin,altgrin)=>{
|
"accept":(headkey,shiftin,altgrin)=>{
|
||||||
let layer = 1*shiftin + 2*altgrin
|
let layer = 1*shiftin + 2*altgrin
|
||||||
|
|
||||||
let s = states.keylayouts[headkey][layer]
|
let s = (states.keylayouts[headkey][layer] || states.keylayouts[headkey][1*shiftin]) || states.keylayouts[headkey][0]
|
||||||
|
|
||||||
// typing seq for diacritics: diacritics THEN a character
|
// typing seq for diacritics: diacritics THEN a character
|
||||||
if (isDiacritics(s)) {
|
if (isDiacritics(s)) {
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ let isDiacritics = (s) => s !== undefined && inRange(s.charCodeAt(0), 0x0300, 0x
|
|||||||
return Object.freeze({"n":"Ελ. Φωνητικό","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
return Object.freeze({"n":"Ελ. Φωνητικό","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
||||||
"tf":states.layouttable,
|
"tf":states.layouttable,
|
||||||
"l":"elGR",
|
"l":"elGR",
|
||||||
// return: [displayed output, composed output]
|
// return: [delete count, composed output]
|
||||||
"accept":(headkey,shiftin,altgrin,lowlayerkey)=>{
|
"accept":(headkey,shiftin,altgrin,lowlayerkey)=>{
|
||||||
let layer = 1*shiftin + 2*altgrin
|
let layer = 1*shiftin + 2*altgrin
|
||||||
|
|
||||||
|
|||||||
283
assets/keylayout/hi_in_inscript.ime
Normal file
283
assets/keylayout/hi_in_inscript.ime
Normal file
@@ -0,0 +1,283 @@
|
|||||||
|
let states = {"keylayouts":[[""],[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
["0",")","\u0966",")"],
|
||||||
|
["1","\u090D","\u0967","!"],
|
||||||
|
["2","\u0945","\u0968","@"],
|
||||||
|
["3","\u094D\u0930","\u0969","#"],
|
||||||
|
["4","\u0930\u094D","\u096A","$"],
|
||||||
|
["5","\u091C\u094D\u091E","\u096B","%"],
|
||||||
|
["6","\u0924\u094D\u0930","\u096C","^"],
|
||||||
|
["7","\u0915\u094D\u0937","\u096D","&"],
|
||||||
|
["8","\u0936\u094D\u0930","\u096E","*"],
|
||||||
|
["9","(","\u096F","("],
|
||||||
|
["*"],
|
||||||
|
["#"],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
["\u094B","\u0913"],
|
||||||
|
["\u0935","\u0934"],
|
||||||
|
["\u092E","\u0923","\u0954","\u0923"],
|
||||||
|
["\u094D","\u0905"],
|
||||||
|
["\u093E","\u0906"],
|
||||||
|
["\u093F","\u0907","\u0962","\u090C"],
|
||||||
|
["\u0941","\u0909"],
|
||||||
|
["\u092A","\u092B","\u092A","\u095E"],
|
||||||
|
["\u0917","\u0918","\u095A","\u0918"],
|
||||||
|
["\u0930","\u0931"],
|
||||||
|
["\u0915","\u0916","\u0958","\u0959"],
|
||||||
|
["\u0924","\u0925"],
|
||||||
|
["\u0938","\u0936"],
|
||||||
|
["\u0932","\u0933"],
|
||||||
|
["\u0926","\u0927"],
|
||||||
|
["\u091C","\u091D","\u095B","\u091D"],
|
||||||
|
["\u094C","\u0914"],
|
||||||
|
["\u0940","\u0908","\u0963","\u0961"],
|
||||||
|
["\u0947","\u090F"],
|
||||||
|
["\u0942","\u090A"],
|
||||||
|
["\u0939","\u0919"],
|
||||||
|
["\u0928","\u0929"],
|
||||||
|
["\u0948","\u0910"],
|
||||||
|
["\u0902","\u0901","\u0902","\u0950"],
|
||||||
|
["\u092C","\u092D"],
|
||||||
|
["\u0946","\u090E","\u0953","\u090E"],
|
||||||
|
[",","\u0937","\u0970","\u0970"],
|
||||||
|
[".","\u0964","\u0965","\u093D"],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[" "],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
["\n"],
|
||||||
|
["\x08"],
|
||||||
|
["\u094A","\u0912"],
|
||||||
|
["-","\u0903"],
|
||||||
|
["\u0943","\u090B","\u0944","\u0960"],
|
||||||
|
["\u0921","\u0922","\u095C","\u095D"],
|
||||||
|
["\u093C","\u091E"],
|
||||||
|
["\u0949","\u0911"],
|
||||||
|
["\u091A","\u091B","\u0952","\u091B"],
|
||||||
|
["\u091F","\u0920","\u0951","\u0920"],
|
||||||
|
["\u092F","\u095F"],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
["0"],
|
||||||
|
["1"],
|
||||||
|
["2"],
|
||||||
|
["3"],
|
||||||
|
["4"],
|
||||||
|
["5"],
|
||||||
|
["6"],
|
||||||
|
["7"],
|
||||||
|
["8"],
|
||||||
|
["9"],
|
||||||
|
["/"],
|
||||||
|
["*"],
|
||||||
|
["-"],
|
||||||
|
["+"],
|
||||||
|
["."],
|
||||||
|
["."],
|
||||||
|
["\n"],
|
||||||
|
["="],
|
||||||
|
["("],
|
||||||
|
[")"],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined]
|
||||||
|
],
|
||||||
|
"code":""} // practically unused as long as there are no diacritics on the keyboard
|
||||||
|
let reset = () => {
|
||||||
|
states.code = 0
|
||||||
|
}
|
||||||
|
let inRange = (s,a,b) => (a <= s && s <= b)
|
||||||
|
return Object.freeze({"n":"इनस्क्रिप्ट","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
||||||
|
"t":states.keylayouts.slice(0,10).concat([["3","\uDBBF\uDE01\u094D\u0930","\u0969","#"], ["4","\u0930\u094D\uDBBF\uDE01","\u096A","$"]], states.keylayouts.slice(12)),
|
||||||
|
"l":"hiIN",
|
||||||
|
// return: [delete count, composed output]
|
||||||
|
"accept":(headkey,shiftin,altgrin)=>{
|
||||||
|
let layer = 1*shiftin + 2*altgrin
|
||||||
|
|
||||||
|
let s = (states.keylayouts[headkey][layer] || states.keylayouts[headkey][1*shiftin]) || states.keylayouts[headkey][0]
|
||||||
|
|
||||||
|
return ['0', s]
|
||||||
|
},
|
||||||
|
"backspace":()=>{
|
||||||
|
reset()
|
||||||
|
return ''
|
||||||
|
},
|
||||||
|
"end":()=>{
|
||||||
|
reset()
|
||||||
|
return ''
|
||||||
|
},
|
||||||
|
"reset":()=>{ reset() },
|
||||||
|
"composing":()=>(states.code!='')
|
||||||
|
})
|
||||||
@@ -346,12 +346,12 @@ let bufDebugStringify = (buf) => [0,1,2].map(i => (buf[i] == undefined) ? "·" :
|
|||||||
return Object.freeze({"n":"두벌식 표준","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
return Object.freeze({"n":"두벌식 표준","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
||||||
"t":states.keylayouts.map(it => [it[0],it[1]]),
|
"t":states.keylayouts.map(it => [it[0],it[1]]),
|
||||||
"l":"koKR",
|
"l":"koKR",
|
||||||
// return: [displayed output, composed output]
|
// return: [delete count, composed output]
|
||||||
"accept":(headkey,shiftin,altgrin)=>{
|
"accept":(headkey,shiftin,altgrin)=>{
|
||||||
let layer = 1*shiftin// + 2*altgrin
|
let layer = 1*shiftin// + 2*altgrin
|
||||||
states.code = 1
|
states.code = 1
|
||||||
|
|
||||||
let s = states.keylayouts[headkey][layer]
|
let s = states.keylayouts[headkey][layer] || states.keylayouts[headkey][0]
|
||||||
|
|
||||||
if (isHangul(s)) {
|
if (isHangul(s)) {
|
||||||
let bufIndex = (isJongseongConsonant(s) && isConsonant(states.buf[0]) && undefined !== states.buf[1]) ? 2 :
|
let bufIndex = (isJongseongConsonant(s) && isConsonant(states.buf[0]) && undefined !== states.buf[1]) ? 2 :
|
||||||
|
|||||||
@@ -346,12 +346,12 @@ let bufDebugStringify = (buf) => [0,1,2].map(i => (buf[i] == undefined) ? "·" :
|
|||||||
return Object.freeze({"n":"두벌식 수정 표준","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
return Object.freeze({"n":"두벌식 수정 표준","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
||||||
"t":states.keylayouts.map(it => [it[0],it[1]]),
|
"t":states.keylayouts.map(it => [it[0],it[1]]),
|
||||||
"l":"koKR",
|
"l":"koKR",
|
||||||
// return: [displayed output, composed output]
|
// return: [delete count, composed output]
|
||||||
"accept":(headkey,shiftin,altgrin)=>{
|
"accept":(headkey,shiftin,altgrin)=>{
|
||||||
let layer = 1*shiftin// + 2*altgrin
|
let layer = 1*shiftin// + 2*altgrin
|
||||||
states.code = 1
|
states.code = 1
|
||||||
|
|
||||||
let s = states.keylayouts[headkey][layer]
|
let s = states.keylayouts[headkey][layer] || states.keylayouts[headkey][0]
|
||||||
|
|
||||||
if (isHangul(s)) {
|
if (isHangul(s)) {
|
||||||
let bufIndex = (isJongseongConsonant(s) && isConsonant(states.buf[0]) && undefined !== states.buf[1]) ? 2 :
|
let bufIndex = (isJongseongConsonant(s) && isConsonant(states.buf[0]) && undefined !== states.buf[1]) ? 2 :
|
||||||
|
|||||||
@@ -375,12 +375,12 @@ let bufDebugStringify = (buf) => [0,1,2].map(i => (buf[i] == undefined) ? "·" :
|
|||||||
return Object.freeze({"n":"세벌식 3-90","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
return Object.freeze({"n":"세벌식 3-90","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
||||||
"t":states.keylayouts.map(it => [it[0],it[1]]),
|
"t":states.keylayouts.map(it => [it[0],it[1]]),
|
||||||
"l":"koKR",
|
"l":"koKR",
|
||||||
// return: [displayed output, composed output]
|
// return: [delete count, composed output]
|
||||||
"accept":(headkey,shiftin,altgrin)=>{
|
"accept":(headkey,shiftin,altgrin)=>{
|
||||||
let layer = 1*shiftin// + 2*altgrin
|
let layer = 1*shiftin// + 2*altgrin
|
||||||
states.code = 1
|
states.code = 1
|
||||||
|
|
||||||
let s = states.keylayouts[headkey][layer]
|
let s = states.keylayouts[headkey][layer] || states.keylayouts[headkey][0]
|
||||||
let bufIndex = isJungseong(s) ? 1 : isJongseong(s) ? 2 : 0
|
let bufIndex = isJungseong(s) ? 1 : isJongseong(s) ? 2 : 0
|
||||||
|
|
||||||
if (isHangul(s)) {
|
if (isHangul(s)) {
|
||||||
|
|||||||
@@ -375,12 +375,12 @@ let bufDebugStringify = (buf) => [0,1,2].map(i => (buf[i] == undefined) ? "·" :
|
|||||||
return Object.freeze({"n":"세벌식 공자판","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
return Object.freeze({"n":"세벌식 공자판","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
||||||
"t":states.keylayouts.map(it => [it[0],it[1]]),
|
"t":states.keylayouts.map(it => [it[0],it[1]]),
|
||||||
"l":"koKR",
|
"l":"koKR",
|
||||||
// return: [displayed output, composed output]
|
// return: [delete count, composed output]
|
||||||
"accept":(headkey,shiftin,altgrin)=>{
|
"accept":(headkey,shiftin,altgrin)=>{
|
||||||
let layer = 1*shiftin// + 2*altgrin
|
let layer = 1*shiftin// + 2*altgrin
|
||||||
states.code = 1
|
states.code = 1
|
||||||
|
|
||||||
let s = states.keylayouts[headkey][layer]
|
let s = states.keylayouts[headkey][layer] || states.keylayouts[headkey][0]
|
||||||
let bufIndex = isJungseong(s) ? 1 : isJongseong(s) ? 2 : 0
|
let bufIndex = isJungseong(s) ? 1 : isJongseong(s) ? 2 : 0
|
||||||
|
|
||||||
if (isHangul(s)) {
|
if (isHangul(s)) {
|
||||||
|
|||||||
@@ -385,12 +385,12 @@ let bufDebugStringify = (buf) => [0,1,2].map(i => (buf[i] == undefined) ? "·" :
|
|||||||
return Object.freeze({"n":"신세벌식 ’03","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
return Object.freeze({"n":"신세벌식 ’03","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
||||||
"t":states.keylayouts.map(it => [it[0],it[1]]),
|
"t":states.keylayouts.map(it => [it[0],it[1]]),
|
||||||
"l":"koKR",
|
"l":"koKR",
|
||||||
// return: [displayed output, composed output]
|
// return: [delete count, composed output]
|
||||||
"accept":(headkey,shiftin,altgrin)=>{
|
"accept":(headkey,shiftin,altgrin)=>{
|
||||||
let layer = 1*shiftin// + 2*altgrin
|
let layer = 1*shiftin// + 2*altgrin
|
||||||
states.code = 1
|
states.code = 1
|
||||||
|
|
||||||
let s = states.keylayouts[headkey][layer]
|
let s = states.keylayouts[headkey][layer] || states.keylayouts[headkey][0]
|
||||||
let s2 = states.keylayouts[headkey][2]
|
let s2 = states.keylayouts[headkey][2]
|
||||||
let bufIndex = isJungseong(s) ? 1 : isJongseong(s) ? 2 : 0
|
let bufIndex = isJungseong(s) ? 1 : isJongseong(s) ? 2 : 0
|
||||||
|
|
||||||
|
|||||||
@@ -385,12 +385,12 @@ let bufDebugStringify = (buf) => [0,1,2].map(i => (buf[i] == undefined) ? "·" :
|
|||||||
return Object.freeze({"n":"신세벌식 P2","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
return Object.freeze({"n":"신세벌식 P2","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
||||||
"t":states.keylayouts.map(it => [it[0],it[1]]),
|
"t":states.keylayouts.map(it => [it[0],it[1]]),
|
||||||
"l":"koKR",
|
"l":"koKR",
|
||||||
// return: [displayed output, composed output]
|
// return: [delete count, composed output]
|
||||||
"accept":(headkey,shiftin,altgrin)=>{
|
"accept":(headkey,shiftin,altgrin)=>{
|
||||||
let layer = 1*shiftin// + 2*altgrin
|
let layer = 1*shiftin// + 2*altgrin
|
||||||
states.code = 1
|
states.code = 1
|
||||||
|
|
||||||
let s = states.keylayouts[headkey][layer]
|
let s = states.keylayouts[headkey][layer] || states.keylayouts[headkey][0]
|
||||||
let s2 = states.keylayouts[headkey][2]
|
let s2 = states.keylayouts[headkey][2]
|
||||||
let bufIndex = isJungseong(s) ? 1 : isJongseong(s) ? 2 : 0
|
let bufIndex = isJungseong(s) ? 1 : isJongseong(s) ? 2 : 0
|
||||||
|
|
||||||
|
|||||||
@@ -375,11 +375,11 @@ let isDiacritics = (s) => s !== undefined && inRange(s.charCodeAt(0), 0x0300, 0x
|
|||||||
return Object.freeze({"n":"ЙЦУКЕН Многоязычна","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
return Object.freeze({"n":"ЙЦУКЕН Многоязычна","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
||||||
"t":states.keylayouts,
|
"t":states.keylayouts,
|
||||||
"l":"ruRU",
|
"l":"ruRU",
|
||||||
// return: [displayed output, composed output]
|
// return: [delete count, composed output]
|
||||||
"accept":(headkey,shiftin,altgrin)=>{
|
"accept":(headkey,shiftin,altgrin)=>{
|
||||||
let layer = 1*shiftin + 2*altgrin
|
let layer = 1*shiftin + 2*altgrin
|
||||||
|
|
||||||
let s = states.keylayouts[headkey][layer]
|
let s = (states.keylayouts[headkey][layer] || states.keylayouts[headkey][1*shiftin]) || states.keylayouts[headkey][0]
|
||||||
|
|
||||||
// typing seq for diacritics: diacritics THEN a character
|
// typing seq for diacritics: diacritics THEN a character
|
||||||
if (isDiacritics(s)) {
|
if (isDiacritics(s)) {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ let states = {"keylayouts":[[""],[undefined],
|
|||||||
[undefined],
|
[undefined],
|
||||||
[undefined],
|
[undefined],
|
||||||
["ф","Ф","ƒ","ƒ"],
|
["ф","Ф","ƒ","ƒ"],
|
||||||
["и","И"],
|
["и","И","и","И"],
|
||||||
["с","С","≠","≠"],
|
["с","С","≠","≠"],
|
||||||
["в","В","ћ","Ћ"],
|
["в","В","ћ","Ћ"],
|
||||||
["у","У","ќ","Ќ"],
|
["у","У","ќ","Ќ"],
|
||||||
@@ -69,10 +69,10 @@ let states = {"keylayouts":[[""],[undefined],
|
|||||||
["-","_","—","–"],
|
["-","_","—","–"],
|
||||||
["=","+","»","«"],
|
["=","+","»","«"],
|
||||||
["х","Х","“","“"],
|
["х","Х","“","“"],
|
||||||
["ъ","Ъ"],
|
["ъ","Ъ","ъ","Ъ"],
|
||||||
["ё","Ё"],
|
["ё","Ё","ё","Ё"],
|
||||||
["ж","Ж","…","…"],
|
["ж","Ж","…","…"],
|
||||||
["э",'Э'],
|
["э",'Э',"э",'Э'],
|
||||||
["/","?","„","„"],
|
["/","?","„","„"],
|
||||||
[undefined],
|
[undefined],
|
||||||
[undefined],
|
[undefined],
|
||||||
@@ -263,12 +263,12 @@ let isDiacritics = (s) => s !== undefined && inRange(s.charCodeAt(0), 0x0300, 0x
|
|||||||
return Object.freeze({"n":"ЙЦУКЕН (Рус. Apple)","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
return Object.freeze({"n":"ЙЦУКЕН (Рус. Apple)","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
||||||
"t":states.keylayouts,
|
"t":states.keylayouts,
|
||||||
"l":"ruRU",
|
"l":"ruRU",
|
||||||
// return: [displayed output, composed output]
|
// return: [delete count, composed output]
|
||||||
"accept":(headkey,shiftin,altgrin)=>{
|
"accept":(headkey,shiftin,altgrin)=>{
|
||||||
let layer = 1*shiftin + 2*altgrin
|
let layer = 1*shiftin + 2*altgrin
|
||||||
states.code = 1
|
states.code = 1
|
||||||
|
|
||||||
let s = states.keylayouts[headkey][layer]
|
let s = (states.keylayouts[headkey][layer] || states.keylayouts[headkey][1*shiftin]) || states.keylayouts[headkey][0]
|
||||||
|
|
||||||
if (isDiacritics(s)) {
|
if (isDiacritics(s)) {
|
||||||
return ['1', '']
|
return ['1', '']
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ let isDiacritics = (s) => s !== undefined && inRange(s.charCodeAt(0), 0x0300, 0x
|
|||||||
return Object.freeze({"n":"Рус. Фонетическая","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
return Object.freeze({"n":"Рус. Фонетическая","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
||||||
"tf":states.layouttable,
|
"tf":states.layouttable,
|
||||||
"l":"ruRU",
|
"l":"ruRU",
|
||||||
// return: [displayed output, composed output]
|
// return: [delete count, composed output]
|
||||||
"accept":(headkey,shiftin,altgrin,lowlayerkey)=>{
|
"accept":(headkey,shiftin,altgrin,lowlayerkey)=>{
|
||||||
let layer = 1*shiftin// + 2*altgrin
|
let layer = 1*shiftin// + 2*altgrin
|
||||||
states.code = 1
|
states.code = 1
|
||||||
|
|||||||
290
assets/keylayout/ta_in_tamil99.ime
Normal file
290
assets/keylayout/ta_in_tamil99.ime
Normal file
@@ -0,0 +1,290 @@
|
|||||||
|
let states = {"keylayouts":[[""],[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
["0",")"],
|
||||||
|
["1","!"],
|
||||||
|
["2","@"],
|
||||||
|
["3","#"],
|
||||||
|
["4","$"],
|
||||||
|
["5","%"],
|
||||||
|
["6","^"],
|
||||||
|
["7","&"],
|
||||||
|
["8","*"],
|
||||||
|
["9","("],
|
||||||
|
["*"],
|
||||||
|
["#"],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
["\u0B85","\u0BF9"],
|
||||||
|
["\u0B99","\u0BF7"],
|
||||||
|
["\u0B92","\u0BF5","\u0BCA"],
|
||||||
|
["\u0B89","\u0BF8","\u0BC1"],
|
||||||
|
["\u0B8A","\u0B9C","\u0BC2"],
|
||||||
|
["\u0BCD","\u0B83"],
|
||||||
|
["\u0B8E","\u0B8E","\u0BC6"],
|
||||||
|
["\u0B95","\u0B95"],
|
||||||
|
["\u0BA9","\u0BA9"],
|
||||||
|
["\u0BAA","\u0BAA"],
|
||||||
|
["\u0BAE",'"'],
|
||||||
|
["\u0BA4",":"],
|
||||||
|
["\u0BB0","/"],
|
||||||
|
["\u0BB2","\u0BB2"],
|
||||||
|
["\u0B9F","["],
|
||||||
|
["\u0BA3","]"],
|
||||||
|
["\u0B86","\u0BB8","\u0BBE"],
|
||||||
|
["\u0B90","\u0BB9","\u0BC8"],
|
||||||
|
["\u0B87","\u0BFA","\u0BBF"],
|
||||||
|
["\u0B8F","\u0B95\u0BCD\u0BB7","\u0BC7"],
|
||||||
|
["\u0BB1","\u0BB1"],
|
||||||
|
["\u0BB5","\u0BF6"],
|
||||||
|
["\u0B88","\u0BB7","\u0BC0"],
|
||||||
|
["\u0B93","\u0BF4","\u0BCB"],
|
||||||
|
["\u0BB3","\u0BB8\u0BCD\u0BB0\u0BC0"],
|
||||||
|
["\u0B94","\u0BF3","\u0BCC"],
|
||||||
|
[",","<"],
|
||||||
|
[".",">"],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[" "],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
["\n"],
|
||||||
|
["\x08"],
|
||||||
|
["`","~"],
|
||||||
|
["-","_"],
|
||||||
|
["=","+"],
|
||||||
|
["\u0B9A","{"],
|
||||||
|
["\u0B9E","}"],
|
||||||
|
["\\","|"],
|
||||||
|
["\u0BA8",";"],
|
||||||
|
["\u0BAF","'"],
|
||||||
|
["\u0BB4","?"],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
["0"],
|
||||||
|
["1"],
|
||||||
|
["2"],
|
||||||
|
["3"],
|
||||||
|
["4"],
|
||||||
|
["5"],
|
||||||
|
["6"],
|
||||||
|
["7"],
|
||||||
|
["8"],
|
||||||
|
["9"],
|
||||||
|
["/"],
|
||||||
|
["*"],
|
||||||
|
["-"],
|
||||||
|
["+"],
|
||||||
|
["."],
|
||||||
|
["."],
|
||||||
|
["\n"],
|
||||||
|
["="],
|
||||||
|
["("],
|
||||||
|
[")"],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined],
|
||||||
|
[undefined]
|
||||||
|
],
|
||||||
|
"code":""} // the last character typed
|
||||||
|
let reset = () => {
|
||||||
|
states.code = ""
|
||||||
|
}
|
||||||
|
let inRange = (s,a,b) => (a <= s && s <= b)
|
||||||
|
let isConsonant = (s) => s !== undefined && (inRange(s, 0x0B95, 0x0BB9) || s == 0x0BD0 || inRange(s, 0x0BE6, 0x0BFA)) // determines the behaviour of the vowel key
|
||||||
|
return Object.freeze({"n":"தமிழ் 99","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
||||||
|
"t":states.keylayouts,
|
||||||
|
"l":"taIN",
|
||||||
|
// return: [delete count, composed output]
|
||||||
|
"accept":(headkey,shiftin,altgrin)=>{
|
||||||
|
let layer = 1*shiftin
|
||||||
|
|
||||||
|
let s = states.keylayouts[headkey][layer] || states.keylayouts[headkey][0]
|
||||||
|
|
||||||
|
if (layer == 0 && states.code != "" && isConsonant(states.code.charCodeAt(states.code.length - 1))) {
|
||||||
|
s = states.keylayouts[headkey][2] || states.keylayouts[headkey][0]
|
||||||
|
}
|
||||||
|
|
||||||
|
states.code = s
|
||||||
|
|
||||||
|
return ['0', s]
|
||||||
|
},
|
||||||
|
"backspace":()=>{
|
||||||
|
reset()
|
||||||
|
return ''
|
||||||
|
},
|
||||||
|
"end":()=>{
|
||||||
|
reset()
|
||||||
|
return ''
|
||||||
|
},
|
||||||
|
"reset":()=>{ reset() },
|
||||||
|
"composing":()=>(states.code!='')
|
||||||
|
})
|
||||||
@@ -269,12 +269,12 @@ let isDiacritics = (s) => s !== undefined && inRange(s.charCodeAt(0), 0x0300, 0x
|
|||||||
return Object.freeze({"n":"แป้นพิมพ์เกษมณี","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
return Object.freeze({"n":"แป้นพิมพ์เกษมณี","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
||||||
"t":states.keylayouts,
|
"t":states.keylayouts,
|
||||||
"l":"thTH",
|
"l":"thTH",
|
||||||
// return: [displayed output, composed output]
|
// return: [delete count, composed output]
|
||||||
"accept":(headkey,shiftin,altgrin)=>{
|
"accept":(headkey,shiftin,altgrin)=>{
|
||||||
let layer = 1*shiftin + 2*altgrin // use AltGr to type conventional numbers
|
let layer = 1*shiftin + 2*altgrin // use AltGr to type conventional numbers
|
||||||
states.code = 0
|
states.code = 0
|
||||||
|
|
||||||
let s = states.keylayouts[headkey][layer]
|
let s = (states.keylayouts[headkey][layer] || states.keylayouts[headkey][1*shiftin]) || states.keylayouts[headkey][0]
|
||||||
return ['0', s]
|
return ['0', s]
|
||||||
},
|
},
|
||||||
"backspace":()=>{
|
"backspace":()=>{
|
||||||
|
|||||||
@@ -269,12 +269,12 @@ let isDiacritics = (s) => s !== undefined && (inRange(s.charCodeAt(0), 0x0E31, 0
|
|||||||
return Object.freeze({"n":"แป้นพิมพ์ปัตตะโชติ","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
return Object.freeze({"n":"แป้นพิมพ์ปัตตะโชติ","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
||||||
"t":states.keylayouts,
|
"t":states.keylayouts,
|
||||||
"l":"thTH",
|
"l":"thTH",
|
||||||
// return: [displayed output, composed output]
|
// return: [delete count, composed output]
|
||||||
"accept":(headkey,shiftin,altgrin)=>{
|
"accept":(headkey,shiftin,altgrin)=>{
|
||||||
let layer = 1*shiftin + 2*altgrin // use AltGr to type conventional numbers
|
let layer = 1*shiftin + 2*altgrin // use AltGr to type conventional numbers
|
||||||
states.code = 0
|
states.code = 0
|
||||||
|
|
||||||
let s = states.keylayouts[headkey][layer]
|
let s = (states.keylayouts[headkey][layer] || states.keylayouts[headkey][1*shiftin]) || states.keylayouts[headkey][0]
|
||||||
return ['0', s]
|
return ['0', s]
|
||||||
},
|
},
|
||||||
"backspace":()=>{
|
"backspace":()=>{
|
||||||
|
|||||||
@@ -276,7 +276,7 @@ return Object.freeze({"n":"五仓简体 Qwerty","v":"many","c":"CuriousTo\uA75Bv
|
|||||||
"accept":(headkey,shiftin,altgrin)=>{
|
"accept":(headkey,shiftin,altgrin)=>{
|
||||||
let layer = 1*shiftin// + 2*altgrin
|
let layer = 1*shiftin// + 2*altgrin
|
||||||
|
|
||||||
let cjkey = states.keylayouts[headkey][layer]
|
let cjkey = states.keylayouts[headkey][layer] || states.keylayouts[headkey][0]
|
||||||
let cjkeyAsc = cjkey.codePointAt(0)
|
let cjkeyAsc = cjkey.codePointAt(0)
|
||||||
|
|
||||||
if (states.code == 1 && 48 <= cjkeyAsc && cjkeyAsc <= 57) {
|
if (states.code == 1 && 48 <= cjkeyAsc && cjkeyAsc <= 57) {
|
||||||
|
|||||||
@@ -276,7 +276,7 @@ return Object.freeze({"n":"五倉正體 Qwerty","v":"many","c":"CuriousTo\uA75Bv
|
|||||||
"accept":(headkey,shiftin,altgrin)=>{
|
"accept":(headkey,shiftin,altgrin)=>{
|
||||||
let layer = 1*shiftin// + 2*altgrin
|
let layer = 1*shiftin// + 2*altgrin
|
||||||
|
|
||||||
let cjkey = states.keylayouts[headkey][layer]
|
let cjkey = states.keylayouts[headkey][layer] || states.keylayouts[headkey][0]
|
||||||
let cjkeyAsc = cjkey.codePointAt(0)
|
let cjkeyAsc = cjkey.codePointAt(0)
|
||||||
|
|
||||||
if (states.code == 1 && 48 <= cjkeyAsc && cjkeyAsc <= 57) {
|
if (states.code == 1 && 48 <= cjkeyAsc && cjkeyAsc <= 57) {
|
||||||
|
|||||||
4
assets/locales/de/input.json
Normal file
4
assets/locales/de/input.json
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"INPUT_KEYBOARD_DEFAULT_LAYOUT": "en_intl_qwertz",
|
||||||
|
"INPUT_KEYBOARD_DEFAULT_IME": "none"
|
||||||
|
}
|
||||||
@@ -1,30 +1,40 @@
|
|||||||
{
|
{
|
||||||
|
"APP_WARNING_HEALTH_AND_SAFETY": "WARNING-HEALTH AND SAFETY",
|
||||||
"CONTEXT_CHARACTER": "Character",
|
"CONTEXT_CHARACTER": "Character",
|
||||||
"MENU_LABEL_COPYRIGHT": "Copyright",
|
"CONTEXT_TIME_MINUTE_PLURAL": "Minutes",
|
||||||
|
"CONTEXT_TIME_SECOND_PLURAL": "Seconds",
|
||||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "All rights reserved",
|
"COPYRIGHT_ALL_RIGHTS_RESERVED": "All rights reserved",
|
||||||
"COPYRIGHT_GNU_GPL_3": "Distributed under GNU GPL 3",
|
"COPYRIGHT_GNU_GPL_3": "Distributed under GNU GPL 3",
|
||||||
"APP_WARNING_HEALTH_AND_SAFETY": "WARNING-HEALTH AND SAFETY",
|
|
||||||
"MENU_LABEL_PRESS_START_SYMBOL": "Press >",
|
|
||||||
"MENU_MODULES" : "Modules",
|
|
||||||
"MENU_CREDIT_GPL_DNT" : "GPL",
|
|
||||||
"GAME_ACTION_MOVE_VERB" : "Move",
|
"GAME_ACTION_MOVE_VERB" : "Move",
|
||||||
"GAME_ACTION_ZOOM" : "Zoom",
|
"GAME_ACTION_ZOOM" : "Zoom",
|
||||||
"MENU_LABEL_RESET" : "Reset",
|
"MENU_IO_AUTOSAVE": "Autosave",
|
||||||
"GAME_32BIT_WARNING1": "It looks like you’re running a 32-Bit version of Java.",
|
|
||||||
"GAME_32BIT_WARNING2": "Please download and install the latest 64-Bit Java at:",
|
|
||||||
"GAME_32BIT_WARNING3": "https://www.java.com/en/download/",
|
|
||||||
"MENU_OPTION_STREAMERS_LAYOUT": "Chat Overlay",
|
|
||||||
"MENU_LABEL_RESTART_REQUIRED": "Restart Required",
|
|
||||||
"MENU_LABEL_KEYBOARD_LAYOUT": "Keyboard Layout",
|
|
||||||
"MENU_LABEL_IME": "IME",
|
|
||||||
"MENU_OPTIONS_DITHER": "Dithering",
|
|
||||||
"MENU_OPTIONS_BLUR": "Blur",
|
|
||||||
"MENU_OPTIONS_PARTICLES": "Particles",
|
|
||||||
"MENU_IO_IMPORT": "Import",
|
"MENU_IO_IMPORT": "Import",
|
||||||
"APP_NOMODULE_1": "No Module is currently loaded.",
|
"MENU_IO_MANUAL_SAVE": "Manual Save",
|
||||||
"APP_NOMODULE_2": "Please configure your Load Order and restart:",
|
"MENU_LABEL_COPYRIGHT": "Copyright",
|
||||||
"MENU_LABEL_KEYCONFIG_HELP1": "Click On the Keycap to Assign Actions",
|
"MENU_LABEL_DELETE": "Delete",
|
||||||
|
"MENU_LABEL_EXTRA_JVM_ARGUMENTS": "Extra Arguments",
|
||||||
|
"MENU_LABEL_IME": "IME",
|
||||||
"MENU_LABEL_IME_TOGGLE": "Toggle IME",
|
"MENU_LABEL_IME_TOGGLE": "Toggle IME",
|
||||||
"MENU_LABEL_PASTE_FROM_CLIPBOARD": "Paste from Cliboard",
|
"MENU_LABEL_KEYBOARD_LAYOUT": "Keyboard Layout",
|
||||||
"MENU_OPTIONS_PERFORMANCE": "Performance"
|
"MENU_LABEL_PASTE_FROM_CLIPBOARD": "Paste from Clipboard",
|
||||||
|
"MENU_LABEL_PRESS_START_SYMBOL": "Press >",
|
||||||
|
"MENU_LABEL_RESET" : "Reset",
|
||||||
|
"MENU_LABEL_RESTART_REQUIRED": "Restart Required",
|
||||||
|
"MENU_LABEL_STREAMING": "Livestreaming",
|
||||||
|
"MENU_LABEL_SYSTEM_INFO": "System Info",
|
||||||
|
"MENU_MODULES" : "Modules",
|
||||||
|
"MENU_OPTIONS_AUTOSAVE": "Autosave",
|
||||||
|
"MENU_OPTIONS_BLUR": "Blur",
|
||||||
|
"MENU_OPTIONS_DEBUG_CONSOLE": "Debug Console",
|
||||||
|
"MENU_OPTIONS_DITHER": "Dithering",
|
||||||
|
"MENU_OPTIONS_JVM_HEAP_MAX": "Max Heap Memory",
|
||||||
|
"MENU_OPTIONS_NOTIFICATION_DISPLAY_DURATION": "Show notification for",
|
||||||
|
"MENU_OPTIONS_PARTICLES": "Particles",
|
||||||
|
"MENU_OPTIONS_PERFORMANCE": "Performance",
|
||||||
|
"MENU_OPTIONS_STREAMERS_LAYOUT": "Chat Overlay",
|
||||||
|
"MENU_OPTIONS_NONE" : "None",
|
||||||
|
|
||||||
|
"MENU_CREDIT_GPL_DNT" : "GPL",
|
||||||
|
"MENU_LABEL_JVM_DNT" : "JVM",
|
||||||
|
"MENU_OPTIONS_FILTERING_HQ2X_DNT" : "Hq2x"
|
||||||
}
|
}
|
||||||
16
assets/locales/en/terrarum_sentences.json
Normal file
16
assets/locales/en/terrarum_sentences.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"GAME_32BIT_WARNING1": "It looks like you’re running a 32-Bit version of Java.",
|
||||||
|
"GAME_32BIT_WARNING2": "Please download and install the latest 64-Bit Java at:",
|
||||||
|
"GAME_32BIT_WARNING3": "https://www.java.com/en/download/",
|
||||||
|
"GAME_APPLE_ROSETTA_WARNING1": "It seems you are using a Mac with Apple Silicon but running the x86 build of the game.",
|
||||||
|
"GAME_APPLE_ROSETTA_WARNING2": "Please use the native build for improved performance and gameplay experiences.",
|
||||||
|
"APP_NOMODULE_1": "No Module is currently loaded.",
|
||||||
|
"APP_NOMODULE_2": "Please configure your Load Order and restart:",
|
||||||
|
"MENU_LABEL_KEYCONFIG_HELP1": "Click On the Keycap to Assign Actions",
|
||||||
|
"GAME_PREV_SAVE_WAS_LOADED1": "The most recently saved game was corrupted.",
|
||||||
|
"GAME_PREV_SAVE_WAS_LOADED2": "The previously saved game was loaded.",
|
||||||
|
"GAME_MORE_RECENT_AUTOSAVE1": "The Autosave is more recent than the manual save.",
|
||||||
|
"GAME_MORE_RECENT_AUTOSAVE2": "Please select the saved game you wish to play:",
|
||||||
|
"MENU_LABEL_SAVE_WILL_BE_DELETED": "The selected save file will be deleted.",
|
||||||
|
"MENU_LABEL_UNSAVED_PROGRESS_WILL_BE_LOST": "Unsaved progress will be lost."
|
||||||
|
}
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
"GAME_ACTION_MOVE_VERB" : "हिलना",
|
"GAME_ACTION_MOVE_VERB" : "हिलना",
|
||||||
"GAME_ACTION_ZOOM" : "ज़ूम",
|
"GAME_ACTION_ZOOM" : "ज़ूम",
|
||||||
"MENU_LABEL_RESET" : "रीसेट",
|
"MENU_LABEL_RESET" : "रीसेट",
|
||||||
"MENU_OPTION_STREAMERS_LAYOUT": "Chat Overlay",
|
"MENU_OPTIONS_STREAMERS_LAYOUT": "Chat Overlay",
|
||||||
"MENU_LABEL_RESTART_REQUIRED": "पुनः शुरआत जरुरी है",
|
"MENU_LABEL_RESTART_REQUIRED": "पुनः शुरआत जरुरी है",
|
||||||
"MENU_LABEL_KEYBOARD_LAYOUT": "कीबोर्ड विन्यास",
|
"MENU_LABEL_KEYBOARD_LAYOUT": "कीबोर्ड विन्यास",
|
||||||
"MENU_LABEL_IME": "इनपुट विधि",
|
"MENU_LABEL_IME": "इनपुट विधि",
|
||||||
|
|||||||
@@ -2335,7 +2335,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "MENU_OPTIONS",
|
"n": "MENU_OPTIONS",
|
||||||
"s": "Stillingar "
|
"s": "Valkostir "
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "MENU_OPTIONS_ADVANCEDGRAPHICS",
|
"n": "MENU_OPTIONS_ADVANCEDGRAPHICS",
|
||||||
@@ -2395,11 +2395,11 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "MENU_OPTIONS_GAMEPLAY",
|
"n": "MENU_OPTIONS_GAMEPLAY",
|
||||||
"s": "Gameplay Options"
|
"s": "Leikvalkostir"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "MENU_OPTIONS_GRAPHICS",
|
"n": "MENU_OPTIONS_GRAPHICS",
|
||||||
"s": "Grafíkstillingar"
|
"s": "Grafíkvalkostir"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "MENU_OPTIONS_HUD",
|
"n": "MENU_OPTIONS_HUD",
|
||||||
|
|||||||
@@ -15,5 +15,15 @@
|
|||||||
"MENU_OPTIONS_DITHER": "Dither",
|
"MENU_OPTIONS_DITHER": "Dither",
|
||||||
"MENU_OPTIONS_BLUR": "Óskýrt",
|
"MENU_OPTIONS_BLUR": "Óskýrt",
|
||||||
"MENU_OPTIONS_PARTICLES": "Eind",
|
"MENU_OPTIONS_PARTICLES": "Eind",
|
||||||
"MENU_IO_IMPORT": "Flytja inn"
|
"MENU_IO_IMPORT": "Flytja inn",
|
||||||
|
"APP_NOMODULE_1": "Engin eining er hlaðin eins og er.",
|
||||||
|
"APP_NOMODULE_2": "Vinsamlega stilltu hleðslupöntunina þína og endurræstu:",
|
||||||
|
"MENU_LABEL_KEYCONFIG_HELP1": "Smelltu á lyklalokið til að úthluta aðgerðum",
|
||||||
|
"MENU_LABEL_IME_TOGGLE": "Breyttu IME",
|
||||||
|
"MENU_LABEL_PASTE_FROM_CLIPBOARD": "Límdu frá klemmuspjald",
|
||||||
|
"MENU_OPTIONS_PERFORMANCE": "Afköst",
|
||||||
|
"MENU_LABEL_DELETE": "Eyða",
|
||||||
|
"MENU_OPTIONS_JVM_HEAP_MAX": "Hámarks hrúguminni",
|
||||||
|
"MENU_OPTIONS_AUTOSAVE": "Sjálfvirk vistun",
|
||||||
|
"CONTEXT_TIME_MINUTE_PLURAL": "Mínútur"
|
||||||
}
|
}
|
||||||
@@ -1,29 +1,36 @@
|
|||||||
{
|
{
|
||||||
|
"APP_WARNING_HEALTH_AND_SAFETY": "경고—건강과 안전을 위하여",
|
||||||
"CONTEXT_CHARACTER": "캐릭터",
|
"CONTEXT_CHARACTER": "캐릭터",
|
||||||
"MENU_LABEL_COPYRIGHT": "저작권",
|
"CONTEXT_TIME_MINUTE_PLURAL": "분",
|
||||||
|
"CONTEXT_TIME_SECOND_PLURAL": "초",
|
||||||
"COPYRIGHT_ALL_RIGHTS_RESERVED": "모든 권리 보유",
|
"COPYRIGHT_ALL_RIGHTS_RESERVED": "모든 권리 보유",
|
||||||
"COPYRIGHT_GNU_GPL_3": "GNU GPL 3에 따라 배포됨",
|
"COPYRIGHT_GNU_GPL_3": "GNU GPL 3에 따라 배포됨",
|
||||||
"APP_WARNING_HEALTH_AND_SAFETY": "경고—건강과 안전을 위하여",
|
|
||||||
"MENU_LABEL_PRESS_START_SYMBOL": ">을 누르세요",
|
|
||||||
"MENU_MODULES" : "모듈",
|
|
||||||
"GAME_ACTION_MOVE_VERB" : "이동하기",
|
"GAME_ACTION_MOVE_VERB" : "이동하기",
|
||||||
"GAME_ACTION_ZOOM" : "확대·축소",
|
"GAME_ACTION_ZOOM" : "확대·축소",
|
||||||
"MENU_LABEL_RESET" : "재설정",
|
"MENU_IO_AUTOSAVE": "자동 저장",
|
||||||
"GAME_32BIT_WARNING1": "32비트 버전의 Java를 사용중인 것 같습니다.",
|
|
||||||
"GAME_32BIT_WARNING2": "아래 링크에서 최신 64비트 Java를 내려받아 설치해주세요.",
|
|
||||||
"GAME_32BIT_WARNING3": "https://www.java.com/ko/download/",
|
|
||||||
"MENU_OPTION_STREAMERS_LAYOUT": "채팅창 오버레이",
|
|
||||||
"MENU_LABEL_RESTART_REQUIRED": "재시작 필요",
|
|
||||||
"MENU_LABEL_KEYBOARD_LAYOUT": "자판 배열",
|
|
||||||
"MENU_LABEL_IME": "입력기",
|
|
||||||
"MENU_OPTIONS_DITHER": "디더링",
|
|
||||||
"MENU_OPTIONS_BLUR": "흐림",
|
|
||||||
"MENU_OPTIONS_PARTICLES": "입자 수",
|
|
||||||
"MENU_IO_IMPORT": "가져오기",
|
"MENU_IO_IMPORT": "가져오기",
|
||||||
"APP_NOMODULE_1": "현재 불러와진 모듈이 없습니다.",
|
"MENU_IO_MANUAL_SAVE": "수동 저장",
|
||||||
"APP_NOMODULE_2": "다음의 파일에서 불러오기 순서를 설정하고 게임을 재시작하십시오.",
|
"MENU_LABEL_COPYRIGHT": "저작권",
|
||||||
"MENU_LABEL_KEYCONFIG_HELP1": "키캡을 클릭해 컨트롤을 배정하십시오",
|
"MENU_LABEL_DELETE": "삭제",
|
||||||
|
"MENU_LABEL_EXTRA_JVM_ARGUMENTS": "추가 명령 인수",
|
||||||
|
"MENU_LABEL_IME": "입력기",
|
||||||
"MENU_LABEL_IME_TOGGLE": "입력기 켜고 끄기",
|
"MENU_LABEL_IME_TOGGLE": "입력기 켜고 끄기",
|
||||||
|
"MENU_LABEL_KEYBOARD_LAYOUT": "자판 배열",
|
||||||
"MENU_LABEL_PASTE_FROM_CLIPBOARD": "복사한 텍스트 붙여넣기",
|
"MENU_LABEL_PASTE_FROM_CLIPBOARD": "복사한 텍스트 붙여넣기",
|
||||||
"MENU_OPTIONS_PERFORMANCE": "성능"
|
"MENU_LABEL_PRESS_START_SYMBOL": ">을 누르세요",
|
||||||
|
"MENU_LABEL_RESET" : "재설정",
|
||||||
|
"MENU_LABEL_RESTART_REQUIRED": "재시작 필요",
|
||||||
|
"MENU_LABEL_STREAMING": "실시간 방송",
|
||||||
|
"MENU_LABEL_SYSTEM_INFO": "시스템 정보",
|
||||||
|
"MENU_MODULES" : "모듈",
|
||||||
|
"MENU_OPTIONS_AUTOSAVE": "자동 저장",
|
||||||
|
"MENU_OPTIONS_BLUR": "흐림",
|
||||||
|
"MENU_OPTIONS_DEBUG_CONSOLE": "디버그 콘솔",
|
||||||
|
"MENU_OPTIONS_DITHER": "디더링",
|
||||||
|
"MENU_OPTIONS_JVM_HEAP_MAX": "최대 힙 메모리",
|
||||||
|
"MENU_OPTIONS_NOTIFICATION_DISPLAY_DURATION": "알림 표시 시간",
|
||||||
|
"MENU_OPTIONS_PARTICLES": "입자 수",
|
||||||
|
"MENU_OPTIONS_PERFORMANCE": "성능",
|
||||||
|
"MENU_OPTIONS_STREAMERS_LAYOUT": "채팅창 오버레이",
|
||||||
|
"MENU_OPTIONS_NONE" : "없음"
|
||||||
}
|
}
|
||||||
|
|||||||
16
assets/locales/koKR/terrarum_sentences.json
Normal file
16
assets/locales/koKR/terrarum_sentences.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"GAME_32BIT_WARNING1": "32비트 버전의 Java를 사용중인 것 같습니다.",
|
||||||
|
"GAME_32BIT_WARNING2": "아래 링크에서 최신 64비트 Java를 내려받아 설치해주세요.",
|
||||||
|
"GAME_32BIT_WARNING3": "https://www.java.com/ko/download/",
|
||||||
|
"GAME_APPLE_ROSETTA_WARNING1": "Apple Silicon이 탑재된 Mac을 사용 중이지만 x86 빌드의 게임을 실행 중입니다.",
|
||||||
|
"GAME_APPLE_ROSETTA_WARNING2": "최적의 성능과 게임 경험을 위해 Apple Silicon용 빌드의 게임을 이용해 주십시오.",
|
||||||
|
"APP_NOMODULE_1": "현재 불러와진 모듈이 없습니다.",
|
||||||
|
"APP_NOMODULE_2": "다음의 파일에서 불러오기 순서를 설정하고 게임을 재시작하십시오.",
|
||||||
|
"MENU_LABEL_KEYCONFIG_HELP1": "키캡을 클릭해 컨트롤을 배정하십시오",
|
||||||
|
"GAME_PREV_SAVE_WAS_LOADED1": "가장 최근에 저장된 게임이 손상되었습니다.",
|
||||||
|
"GAME_PREV_SAVE_WAS_LOADED2": "이전에 저장된 게임을 불러왔습니다.",
|
||||||
|
"GAME_MORE_RECENT_AUTOSAVE1": "자동 저장된 게임이 수동으로 저장한 게임보다 더 최신입니다.",
|
||||||
|
"GAME_MORE_RECENT_AUTOSAVE2": "불러올 게임을 선택해 주십시오.",
|
||||||
|
"MENU_LABEL_SAVE_WILL_BE_DELETED": "선택된 세이브가 삭제됩니다.",
|
||||||
|
"MENU_LABEL_UNSAVED_PROGRESS_WILL_BE_LOST": "저장하지 않은 진행 상황을 잃게 됩니다."
|
||||||
|
}
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
"GAME_32BIT_WARNING1": "看起来您正在运行32位版本的Java。",
|
"GAME_32BIT_WARNING1": "看起来您正在运行32位版本的Java。",
|
||||||
"GAME_32BIT_WARNING2": "请下载并安装最新的64位Java :",
|
"GAME_32BIT_WARNING2": "请下载并安装最新的64位Java :",
|
||||||
"GAME_32BIT_WARNING3": "https://www.java.com/en/download/",
|
"GAME_32BIT_WARNING3": "https://www.java.com/en/download/",
|
||||||
"MENU_OPTION_STREAMERS_LAYOUT": "聊天叠加",
|
"MENU_OPTIONS_STREAMERS_LAYOUT": "聊天叠加",
|
||||||
"MENU_LABEL_RESTART_REQUIRED": "需要重新启动",
|
"MENU_LABEL_RESTART_REQUIRED": "需要重新启动",
|
||||||
"MENU_LABEL_KEYBOARD_LAYOUT": "键盘布局",
|
"MENU_LABEL_KEYBOARD_LAYOUT": "键盘布局",
|
||||||
"MENU_LABEL_IME": "输入法",
|
"MENU_LABEL_IME": "输入法",
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
"GAME_32BIT_WARNING1": "看起來您正在運行32位版本的Java。",
|
"GAME_32BIT_WARNING1": "看起來您正在運行32位版本的Java。",
|
||||||
"GAME_32BIT_WARNING2": "請下載並安裝最新的64位Java :",
|
"GAME_32BIT_WARNING2": "請下載並安裝最新的64位Java :",
|
||||||
"GAME_32BIT_WARNING3": "https://www.java.com/en/download/",
|
"GAME_32BIT_WARNING3": "https://www.java.com/en/download/",
|
||||||
"MENU_OPTION_STREAMERS_LAYOUT": "聊天疊加",
|
"MENU_OPTIONS_STREAMERS_LAYOUT": "聊天疊加",
|
||||||
"MENU_LABEL_RESTART_REQUIRED": "需要重新啟動",
|
"MENU_LABEL_RESTART_REQUIRED": "需要重新啟動",
|
||||||
"MENU_LABEL_KEYBOARD_LAYOUT": "鍵盤配置",
|
"MENU_LABEL_KEYBOARD_LAYOUT": "鍵盤配置",
|
||||||
"MENU_LABEL_IME": "輸入法",
|
"MENU_LABEL_IME": "輸入法",
|
||||||
|
|||||||
@@ -23,12 +23,12 @@
|
|||||||
"65";"65";"65";"BLOCK_TRUNK_EBONY";"0.0312";"0.0312";"0.0312";"0.0312";"19";"1200";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,NATURAL"
|
"65";"65";"65";"BLOCK_TRUNK_EBONY";"0.0312";"0.0312";"0.0312";"0.0312";"19";"1200";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,NATURAL"
|
||||||
"66";"66";"66";"BLOCK_TRUNK_BIRCH";"0.0312";"0.0312";"0.0312";"0.0312";"15";"670";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,NATURAL"
|
"66";"66";"66";"BLOCK_TRUNK_BIRCH";"0.0312";"0.0312";"0.0312";"0.0312";"15";"670";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,NATURAL"
|
||||||
"67";"67";"67";"BLOCK_TRUNK_BLOODROSE";"0.0312";"0.0312";"0.0312";"0.0312";"17";"900";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,NATURAL"
|
"67";"67";"67";"BLOCK_TRUNK_BLOODROSE";"0.0312";"0.0312";"0.0312";"0.0312";"17";"900";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,NATURAL"
|
||||||
"80";"80";"80";"BLOCK_SAND";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.06";"SAND,NATURAL"
|
"80";"80";"80";"BLOCK_SAND";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.06";"SAND,NATURAL,WARM"
|
||||||
"81";"81";"81";"BLOCK_SAND_WHITE";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.06";"SAND,NATURAL"
|
"81";"81";"81";"BLOCK_SAND_WHITE";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.06";"SAND,NATURAL,WARM"
|
||||||
"82";"82";"82";"BLOCK_SAND_RED";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.06";"SAND,NATURAL"
|
"82";"82";"82";"BLOCK_SAND_RED";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.06";"SAND,NATURAL,WARM"
|
||||||
"83";"83";"83";"BLOCK_SAND_DESERT";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.06";"SAND,NATURAL"
|
"83";"83";"83";"BLOCK_SAND_DESERT";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.06";"SAND,NATURAL,WARM"
|
||||||
"84";"84";"84";"BLOCK_SAND_BLACK";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.06";"SAND,NATURAL"
|
"84";"84";"84";"BLOCK_SAND_BLACK";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.06";"SAND,NATURAL,WARM"
|
||||||
"85";"85";"85";"BLOCK_SAND_GREEN";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.06";"SAND,NATURAL"
|
"85";"85";"85";"BLOCK_SAND_GREEN";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.06";"SAND,NATURAL,WARM"
|
||||||
"96";"96";"96";"BLOCK_GRAVEL";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"GRVL";"1";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"GRAVEL,NATURAL"
|
"96";"96";"96";"BLOCK_GRAVEL";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"GRVL";"1";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"GRAVEL,NATURAL"
|
||||||
"97";"97";"97";"BLOCK_GRAVEL_GREY";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"GRVL";"1";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"GRAVEL,NATURAL"
|
"97";"97";"97";"BLOCK_GRAVEL_GREY";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"GRVL";"1";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"GRAVEL,NATURAL"
|
||||||
"112";"112";"112";"BLOCK_ORE_MALACHITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OORE";"1";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"ORE,NATURAL"
|
"112";"112";"112";"BLOCK_ORE_MALACHITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OORE";"1";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"ORE,NATURAL"
|
||||||
@@ -44,10 +44,10 @@
|
|||||||
"132";"132";"132";"BLOCK_GEM_DIAMOND";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OGEM";"1";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"GEM,NATURAL"
|
"132";"132";"132";"BLOCK_GEM_DIAMOND";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OGEM";"1";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"GEM,NATURAL"
|
||||||
"133";"133";"133";"BLOCK_GEM_AMETHYST";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OGEM";"1";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"GEM,NATURAL"
|
"133";"133";"133";"BLOCK_GEM_AMETHYST";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OGEM";"1";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"GEM,NATURAL"
|
||||||
"134";"134";"134";"BLOCK_GEM_QUARTZ";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OGEM";"1";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"GEM,NATURAL"
|
"134";"134";"134";"BLOCK_GEM_QUARTZ";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OGEM";"1";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"GEM,NATURAL"
|
||||||
"144";"144";"144";"BLOCK_SNOW";"0.1252";"0.1252";"0.1252";"0.1252";"24";"500";"SNOW";"1";"1";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"SNOW,NATURAL"
|
"144";"144";"144";"BLOCK_SNOW";"0.1252";"0.1252";"0.1252";"0.1252";"24";"500";"SNOW";"1";"1";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"SNOW,NATURAL,COLD"
|
||||||
"145";"N/A";"N/A";"BLOCK_ICE_FRAGILE";"0.0508";"0.0508";"0.0508";"0.0508";"5";"930";"ICEI";"1";"0";"N/A";"0";"0";"4";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"ICE,NATURAL,FRAGIEL"
|
"145";"N/A";"N/A";"BLOCK_ICE_FRAGILE";"0.0508";"0.0508";"0.0508";"0.0508";"5";"930";"ICEI";"1";"0";"N/A";"0";"0";"4";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"ICE,NATURAL,FRAGILE,COLD"
|
||||||
"146";"146";"146";"BLOCK_ICE_NATURAL";"0.1016";"0.1016";"0.1016";"0.1016";"35";"930";"ICEI";"1";"1";"N/A";"0";"0";"4";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"ICE,NATURAL"
|
"146";"146";"146";"BLOCK_ICE_NATURAL";"0.1016";"0.1016";"0.1016";"0.1016";"35";"930";"ICEI";"1";"1";"N/A";"0";"0";"4";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"ICE,NATURAL,COLD"
|
||||||
"147";"147";"147";"BLOCK_ICE_CLEAR_MAGICAL";"0.1252";"0.1252";"0.1252";"0.1252";"48";"3720";"ICEX";"1";"1";"N/A";"0";"0";"4";"0.0744";"0.1252";"0.2268";"0.0000";"N/A";"N/A";"0.0";"ICE"
|
"147";"147";"147";"BLOCK_ICE_CLEAR_MAGICAL";"0.1252";"0.1252";"0.1252";"0.1252";"48";"3720";"ICEX";"1";"1";"N/A";"0";"0";"4";"0.0744";"0.1252";"0.2268";"0.0000";"N/A";"N/A";"0.0";"ICE,COLD"
|
||||||
"148";"148";"148";"BLOCK_GLASS_CRUDE";"0.0876";"0.0424";"0.0876";"0.1252";"5";"2500";"GLAS";"1";"1";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"GLASS"
|
"148";"148";"148";"BLOCK_GLASS_CRUDE";"0.0876";"0.0424";"0.0876";"0.1252";"5";"2500";"GLAS";"1";"1";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"GLASS"
|
||||||
"149";"149";"149";"BLOCK_GLASS_CLEAN";"0.0424";"0.0424";"0.0424";"0.0636";"5";"2203";"GLAS";"1";"1";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"GLASS"
|
"149";"149";"149";"BLOCK_GLASS_CLEAN";"0.0424";"0.0424";"0.0424";"0.0636";"5";"2203";"GLAS";"1";"1";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"GLASS"
|
||||||
"160";"160";"160";"BLOCK_PLATFORM_STONE";"0.0312";"0.0312";"0.0312";"0.0312";"5";"2400";"ROCK";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"PLATFORM"
|
"160";"160";"160";"BLOCK_PLATFORM_STONE";"0.0312";"0.0312";"0.0312";"0.0312";"5";"2400";"ROCK";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"PLATFORM"
|
||||||
|
|||||||
|
@@ -22,6 +22,8 @@ Seed
|
|||||||
SetAV
|
SetAV
|
||||||
SetBulletin
|
SetBulletin
|
||||||
SetScale
|
SetScale
|
||||||
|
SetSol
|
||||||
|
SetTurb
|
||||||
SetTime
|
SetTime
|
||||||
SetTimeDelta
|
SetTimeDelta
|
||||||
SpawnPhysTestBall
|
SpawnPhysTestBall
|
||||||
|
|||||||
|
BIN
assets/mods/basegame/gui/backdrop01.tga
LFS
Normal file
BIN
assets/mods/basegame/gui/backdrop01.tga
LFS
Normal file
Binary file not shown.
Binary file not shown.
@@ -14,4 +14,6 @@ id;classname
|
|||||||
258;net.torvald.terrarum.modulebasegame.gameitems.ItemSwingingDoorBirch
|
258;net.torvald.terrarum.modulebasegame.gameitems.ItemSwingingDoorBirch
|
||||||
259;net.torvald.terrarum.modulebasegame.gameitems.ItemSwingingDoorRosewood
|
259;net.torvald.terrarum.modulebasegame.gameitems.ItemSwingingDoorRosewood
|
||||||
|
|
||||||
|
320;net.torvald.terrarum.modulebasegame.gameitems.ItemWorldPortal
|
||||||
|
|
||||||
999999;net.torvald.terrarum.modulebasegame.gameitems.ItemTapestry
|
999999;net.torvald.terrarum.modulebasegame.gameitems.ItemTapestry
|
||||||
|
|||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -16,5 +16,8 @@
|
|||||||
"GAME_ACTION_QUICKSEL": "Quick Select",
|
"GAME_ACTION_QUICKSEL": "Quick Select",
|
||||||
"GAME_ACTION_CRAFT": "Craft",
|
"GAME_ACTION_CRAFT": "Craft",
|
||||||
"GAME_CRAFTING": "Crafting",
|
"GAME_CRAFTING": "Crafting",
|
||||||
"GAME_CRAFTABLE_ITEMS": "Craftable Items"
|
"GAME_CRAFTABLE_ITEMS": "Craftable Items",
|
||||||
|
"MENU_LABEL_RENAME": "Rename",
|
||||||
|
"GAME_ACTION_TELEPORT": "Teleport",
|
||||||
|
"CONTEXT_PLACE_COORDINATE": "Coordinate"
|
||||||
}
|
}
|
||||||
3
assets/mods/basegame/locales/en/sentences.json
Normal file
3
assets/mods/basegame/locales/en/sentences.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"CONTEXT_THIS_IS_A_WORLD_CURRENTLY_PLAYING": "This is a world currently playing."
|
||||||
|
}
|
||||||
@@ -17,5 +17,8 @@
|
|||||||
"GAME_ACTION_QUICKSEL": "빠른 선택",
|
"GAME_ACTION_QUICKSEL": "빠른 선택",
|
||||||
"GAME_ACTION_CRAFT": "제작하기",
|
"GAME_ACTION_CRAFT": "제작하기",
|
||||||
"GAME_CRAFTING": "제작",
|
"GAME_CRAFTING": "제작",
|
||||||
"GAME_CRAFTABLE_ITEMS": "제작 가능한 아이템"
|
"GAME_CRAFTABLE_ITEMS": "제작 가능한 아이템",
|
||||||
|
"MENU_LABEL_RENAME": "이름 바꾸기",
|
||||||
|
"GAME_ACTION_TELEPORT": "텔레포트하기",
|
||||||
|
"CONTEXT_PLACE_COORDINATE": "좌표"
|
||||||
}
|
}
|
||||||
3
assets/mods/basegame/locales/koKR/sentences.json
Normal file
3
assets/mods/basegame/locales/koKR/sentences.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"CONTEXT_THIS_IS_A_WORLD_CURRENTLY_PLAYING": "현재 플레이 중인 월드입니다."
|
||||||
|
}
|
||||||
BIN
assets/mods/basegame/sprites/fixtures/portal_device.tga
LFS
Normal file
BIN
assets/mods/basegame/sprites/fixtures/portal_device.tga
LFS
Normal file
Binary file not shown.
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"skyboxGradColourMap": "generic_skybox.tga",
|
"skyboxGradColourMap": "generic_skybox.tga",
|
||||||
|
"daylightClut": "clut_daylight.tga",
|
||||||
"classification": "generic",
|
"classification": "generic",
|
||||||
"extraImages": [
|
"extraImages": [
|
||||||
|
|
||||||
|
|||||||
BIN
assets/mods/basegame/weathers/clut_daylight.tga
LFS
Normal file
BIN
assets/mods/basegame/weathers/clut_daylight.tga
LFS
Normal file
Binary file not shown.
@@ -1,11 +1,11 @@
|
|||||||
id;drop;name;renderclass;accept;inputcount;inputtype;outputtype;javaclass;inventoryimg;branching
|
id;drop;name;renderclass;accept;inputcount;inputtype;outputtype;javaclass;inventoryimg;branching
|
||||||
8192;8192;WIRE_RED;signal;digital_bit;3;N/A;N/A;net.torvald.terrarum.modulebasegame.gameitems.WirePieceSignalWire;basegame.items16,1,9;1
|
8192;8192;WIRE_RED;signal;digital_bit;3;N/A;N/A;net.torvald.terrarum.modulebasegame.gameitems.WirePieceSignalWire;basegame.items,0,4;1
|
||||||
8193;8193;WIRE_GREEN;signal;digital_bit;3;N/A;N/A;net.torvald.terrarum.modulebasegame.gameitems.WirePieceSignalWire;basegame.items16,1,10;1
|
8193;8193;WIRE_GREEN;signal;digital_bit;3;N/A;N/A;net.torvald.terrarum.modulebasegame.gameitems.WirePieceSignalWire;basegame.items,1,4;1
|
||||||
8194;8194;WIRE_BLUE;signal;digital_bit;3;N/A;N/A;net.torvald.terrarum.modulebasegame.gameitems.WirePieceSignalWire;basegame.items16,1,11;1
|
8194;8194;WIRE_BLUE;signal;digital_bit;3;N/A;N/A;net.torvald.terrarum.modulebasegame.gameitems.WirePieceSignalWire;basegame.items,2,4;1
|
||||||
#8195;8195;WIRE_BUNDLE;signal;digital_3bits;3;N/A;N/A;net.torvald.terrarum.modulebasegame.gameitems.WirePieceSignalWire;basegame.items16,1,2;1
|
#8195;8195;WIRE_BUNDLE;signal;digital_3bits;3;N/A;N/A;net.torvald.terrarum.modulebasegame.gameitems.WirePieceSignalWire;basegame.items,0,0;1
|
||||||
8196;8196;WIRE_POWER_LOW;power;power_low;3;N/A;N/A;net.torvald.terrarum.modulebasegame.gameitems.WirePieceSignalWire;basegame.items16,2,9;1
|
8196;8196;WIRE_POWER_LOW;power;power_low;3;N/A;N/A;net.torvald.terrarum.modulebasegame.gameitems.WirePieceSignalWire;basegame.items,3,4;1
|
||||||
8197;8197;WIRE_POWER_HIGH;power;power_high;3;N/A;N/A;net.torvald.terrarum.modulebasegame.gameitems.WirePieceSignalWire;basegame.items16,3,9;1
|
8197;8197;WIRE_POWER_HIGH;power;power_high;3;N/A;N/A;net.torvald.terrarum.modulebasegame.gameitems.WirePieceSignalWire;basegame.items,4,4;1
|
||||||
8198;8198;WIRE_ETHERNET;network;10base2;3;N/A;N/A;net.torvald.terrarum.modulebasegame.gameitems.WirePieceSignalWire;basegame.items16,4,9;1
|
8198;8198;WIRE_ETHERNET;network;10base2;3;N/A;N/A;net.torvald.terrarum.modulebasegame.gameitems.WirePieceSignalWire;basegame.items,5,4;1
|
||||||
|
|
||||||
|
|
||||||
# accept: which wiretype (defined elsewhere) the wires acceps. Use comma to separate multiple. N/A for electronic components (aka not wires)
|
# accept: which wiretype (defined elsewhere) the wires acceps. Use comma to separate multiple. N/A for electronic components (aka not wires)
|
||||||
|
|||||||
|
BIN
assets/mods/dwarventech/items/items.tga
LFS
Normal file
BIN
assets/mods/dwarventech/items/items.tga
LFS
Normal file
Binary file not shown.
@@ -23,12 +23,14 @@ cp $SRCFILES/AppRun $DESTDIR/AppRun
|
|||||||
chmod +x $DESTDIR/AppRun
|
chmod +x $DESTDIR/AppRun
|
||||||
|
|
||||||
# Copy over a Java runtime
|
# Copy over a Java runtime
|
||||||
cp -r "../out/$RUNTIME" $DESTDIR/
|
mkdir $DESTDIR/out
|
||||||
|
cp -r "../out/$RUNTIME" $DESTDIR/out/
|
||||||
|
mv $DESTDIR/out/$RUNTIME/bin/java $DESTDIR/out/$RUNTIME/bin/Terrarum
|
||||||
|
|
||||||
# Copy over all the assets and a jarfile
|
# Copy over all the assets and a jarfile
|
||||||
cp -r "../assets_release" $DESTDIR/
|
cp -r "../assets_release" $DESTDIR/
|
||||||
mv $DESTDIR/assets_release $DESTDIR/assets
|
mv $DESTDIR/assets_release $DESTDIR/assets
|
||||||
cp -r "../out/TerrarumBuild.jar" $DESTDIR/assets/
|
cp "../out/TerrarumBuild.jar" $DESTDIR/out/
|
||||||
|
|
||||||
# Pack everything to AppImage
|
# Pack everything to AppImage
|
||||||
ARCH=arm_aarch64 "./$APPIMAGETOOL" $DESTDIR "out/$DESTDIR.AppImage" || { echo 'Building AppImage failed' >&2; exit 1; }
|
ARCH=arm_aarch64 "./$APPIMAGETOOL" $DESTDIR "out/$DESTDIR.AppImage" || { echo 'Building AppImage failed' >&2; exit 1; }
|
||||||
|
|||||||
@@ -23,12 +23,14 @@ cp $SRCFILES/AppRun $DESTDIR/AppRun
|
|||||||
chmod +x $DESTDIR/AppRun
|
chmod +x $DESTDIR/AppRun
|
||||||
|
|
||||||
# Copy over a Java runtime
|
# Copy over a Java runtime
|
||||||
cp -r "../out/$RUNTIME" $DESTDIR/
|
mkdir $DESTDIR/out
|
||||||
|
cp -r "../out/$RUNTIME" $DESTDIR/out/
|
||||||
|
mv $DESTDIR/out/$RUNTIME/bin/java $DESTDIR/out/$RUNTIME/bin/Terrarum
|
||||||
|
|
||||||
# Copy over all the assets and a jarfile
|
# Copy over all the assets and a jarfile
|
||||||
cp -r "../assets_release" $DESTDIR/
|
cp -r "../assets_release" $DESTDIR/
|
||||||
mv $DESTDIR/assets_release $DESTDIR/assets
|
mv $DESTDIR/assets_release $DESTDIR/assets
|
||||||
cp -r "../out/TerrarumBuild.jar" $DESTDIR/assets/
|
cp "../out/TerrarumBuild.jar" $DESTDIR/out/
|
||||||
|
|
||||||
# Pack everything to AppImage
|
# Pack everything to AppImage
|
||||||
"./$APPIMAGETOOL" $DESTDIR "out/$DESTDIR.AppImage" || { echo 'Building AppImage failed' >&2; exit 1; }
|
"./$APPIMAGETOOL" $DESTDIR "out/$DESTDIR.AppImage" || { echo 'Building AppImage failed' >&2; exit 1; }
|
||||||
|
|||||||
@@ -25,11 +25,13 @@ cp $SRCFILES/Terrarum.sh $DESTDIR/Contents/MacOS/
|
|||||||
chmod +x $DESTDIR/Contents/MacOS/Terrarum.sh
|
chmod +x $DESTDIR/Contents/MacOS/Terrarum.sh
|
||||||
|
|
||||||
# Copy over a Java runtime
|
# Copy over a Java runtime
|
||||||
cp -r "../out/$RUNTIME" $DESTDIR/Contents/MacOS/
|
mkdir $DESTDIR/Contents/MacOS/out
|
||||||
|
cp -r "../out/$RUNTIME" $DESTDIR/Contents/MacOS/out/
|
||||||
|
mv $DESTDIR/Contents/MacOS/out/$RUNTIME/bin/java $DESTDIR/Contents/MacOS/out/$RUNTIME/bin/Terrarum
|
||||||
|
|
||||||
# Copy over all the assets and a jarfile
|
# Copy over all the assets and a jarfile
|
||||||
cp -r "../assets_release" $DESTDIR/Contents/MacOS/
|
cp -r "../assets_release" $DESTDIR/Contents/MacOS/
|
||||||
mv $DESTDIR/Contents/MacOS/assets_release $DESTDIR/Contents/MacOS/assets
|
mv $DESTDIR/Contents/MacOS/assets_release $DESTDIR/Contents/MacOS/assets
|
||||||
cp -r "../out/TerrarumBuild.jar" $DESTDIR/Contents/MacOS/assets/
|
cp "../out/TerrarumBuild.jar" $DESTDIR/Contents/MacOS/out/
|
||||||
|
|
||||||
echo "Build successful: $DESTDIR"
|
echo "Build successful: $DESTDIR"
|
||||||
|
|||||||
@@ -25,11 +25,13 @@ cp $SRCFILES/Terrarum.sh $DESTDIR/Contents/MacOS/
|
|||||||
chmod +x $DESTDIR/Contents/MacOS/Terrarum.sh
|
chmod +x $DESTDIR/Contents/MacOS/Terrarum.sh
|
||||||
|
|
||||||
# Copy over a Java runtime
|
# Copy over a Java runtime
|
||||||
cp -r "../out/$RUNTIME" $DESTDIR/Contents/MacOS/
|
mkdir $DESTDIR/Contents/MacOS/out
|
||||||
|
cp -r "../out/$RUNTIME" $DESTDIR/Contents/MacOS/out/
|
||||||
|
mv $DESTDIR/Contents/MacOS/out/$RUNTIME/bin/java $DESTDIR/Contents/MacOS/out/$RUNTIME/bin/Terrarum
|
||||||
|
|
||||||
# Copy over all the assets and a jarfile
|
# Copy over all the assets and a jarfile
|
||||||
cp -r "../assets_release" $DESTDIR/Contents/MacOS/
|
cp -r "../assets_release" $DESTDIR/Contents/MacOS/
|
||||||
mv $DESTDIR/Contents/MacOS/assets_release $DESTDIR/Contents/MacOS/assets
|
mv $DESTDIR/Contents/MacOS/assets_release $DESTDIR/Contents/MacOS/assets
|
||||||
cp -r "../out/TerrarumBuild.jar" $DESTDIR/Contents/MacOS/assets/
|
cp "../out/TerrarumBuild.jar" $DESTDIR/Contents/MacOS/out/
|
||||||
|
|
||||||
echo "Build successful: $DESTDIR"
|
echo "Build successful: $DESTDIR"
|
||||||
|
|||||||
@@ -16,15 +16,23 @@ rm -rf $DESTDIR || true
|
|||||||
mkdir $DESTDIR
|
mkdir $DESTDIR
|
||||||
|
|
||||||
# Prepare an application
|
# Prepare an application
|
||||||
cp $SRCFILES/Terrarum.bat $DESTDIR/
|
if ! command -v x86_64-w64-mingw32-gcc &> /dev/null
|
||||||
|
then
|
||||||
|
echo 'Mingw32 not found; please install mingw64-cross-gcc (or similar) to your system' >&2; exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
x86_64-w64-mingw32-gcc -Os -s -o $DESTDIR/Terrarum.exe $SRCFILES/Terrarum.c || { echo 'Building EXE failed' >&2; exit 1; }
|
||||||
|
# TODO add icon to the exe (use x86_64-w64-mingw32-windres?)
|
||||||
|
|
||||||
# Copy over a Java runtime
|
# Copy over a Java runtime
|
||||||
cp -r "../out/$RUNTIME" $DESTDIR/
|
mkdir $DESTDIR/out
|
||||||
|
cp -r "../out/$RUNTIME" $DESTDIR/out/
|
||||||
|
mv $DESTDIR/out/$RUNTIME/bin/java.exe $DESTDIR/out/$RUNTIME/bin/Terrarum.exe
|
||||||
|
|
||||||
# Copy over all the assets and a jarfile
|
# Copy over all the assets and a jarfile
|
||||||
cp -r "../assets_release" $DESTDIR/
|
cp -r "../assets_release" $DESTDIR/
|
||||||
mv $DESTDIR/assets_release $DESTDIR/assets
|
mv $DESTDIR/assets_release $DESTDIR/assets
|
||||||
cp -r "../out/TerrarumBuild.jar" $DESTDIR/assets/
|
cp "../out/TerrarumBuild.jar" $DESTDIR/out/
|
||||||
|
|
||||||
# Temporary solution: zip everything
|
# Temporary solution: zip everything
|
||||||
zip -r -9 -l "out/TerrarumWindows.x86.zip" $DESTDIR
|
zip -r -9 -l "out/TerrarumWindows.x86.zip" $DESTDIR
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
cd "${0%/*}"
|
cd "${0%/*}"
|
||||||
./runtime-linux-arm/bin/java -Xms1G -Xmx6G -Dswing.aatext=true -Dawt.useSystemAAFontSettings=lcd -jar ./assets/TerrarumBuild.jar
|
./out/runtime-linux-arm/bin/Terrarum -Dswing.aatext=true -Dawt.useSystemAAFontSettings=lcd -jar ./out/TerrarumBuild.jar
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
cd "${0%/*}"
|
cd "${0%/*}"
|
||||||
./runtime-linux-x86/bin/java -Xms1G -Xmx6G -Dswing.aatext=true -Dawt.useSystemAAFontSettings=lcd -jar ./assets/TerrarumBuild.jar
|
./out/runtime-linux-x86/bin/Terrarum -Dswing.aatext=true -Dawt.useSystemAAFontSettings=lcd -jar ./out/TerrarumBuild.jar
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
cd "${0%/*}"
|
cd "${0%/*}"
|
||||||
./runtime-osx-arm/bin/java -XstartOnFirstThread -Xms1G -Xmx6G -jar ./assets/TerrarumBuild.jar
|
./out/runtime-osx-arm/bin/Terrarum -jar ./out/TerrarumBuild.jar
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
cd "${0%/*}"
|
cd "${0%/*}"
|
||||||
./runtime-osx-x86/bin/java -XstartOnFirstThread -Xms1G -Xmx6G -jar ./assets/TerrarumBuild.jar
|
./out/runtime-osx-x86/bin/Terrarum -jar ./out/TerrarumBuild.jar
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
cd /D "%~dp0"
|
|
||||||
.\runtime-windows-x86\bin\java -Xms1G -Xmx6G -jar .\assets\TerrarumBuild.jar
|
|
||||||
6
buildapp/terrarumwindows_x86/Terrarum.c
Normal file
6
buildapp/terrarumwindows_x86/Terrarum.c
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
return system(".\\out\\runtime-windows-x86\\bin\\Terrarum.exe -jar .\\out\\TerrarumBuild.jar");
|
||||||
|
}
|
||||||
Binary file not shown.
BIN
lib/android-lint/common-31.0.1.jar
LFS
Normal file
BIN
lib/android-lint/common-31.0.1.jar
LFS
Normal file
Binary file not shown.
BIN
lib/android-lint/guava-31.0.1-jre.jar
LFS
Normal file
BIN
lib/android-lint/guava-31.0.1-jre.jar
LFS
Normal file
Binary file not shown.
BIN
lib/android-lint/intellij-core-31.0.1.jar
LFS
Normal file
BIN
lib/android-lint/intellij-core-31.0.1.jar
LFS
Normal file
Binary file not shown.
BIN
lib/android-lint/kotlin-compiler-31.0.1.jar
LFS
Normal file
BIN
lib/android-lint/kotlin-compiler-31.0.1.jar
LFS
Normal file
Binary file not shown.
BIN
lib/android-lint/kxml2-2.3.0.jar
LFS
Normal file
BIN
lib/android-lint/kxml2-2.3.0.jar
LFS
Normal file
Binary file not shown.
BIN
lib/android-lint/layoutlib-api-31.0.1.jar
LFS
Normal file
BIN
lib/android-lint/layoutlib-api-31.0.1.jar
LFS
Normal file
Binary file not shown.
127
lib/android-lint/lint-31.0.1.pom
Normal file
127
lib/android-lint/lint-31.0.1.pom
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>com.android.tools.lint</groupId>
|
||||||
|
<artifactId>lint</artifactId>
|
||||||
|
<version>31.0.1</version>
|
||||||
|
<name>com.android.tools.lint.lint</name>
|
||||||
|
<description>Lint tools. Both a Command line tool and a library to add lint features to other tools</description>
|
||||||
|
<url>http://tools.android.com/</url>
|
||||||
|
<licenses>
|
||||||
|
<license>
|
||||||
|
<name>The Apache Software License, Version 2.0</name>
|
||||||
|
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||||
|
<distribution>repo</distribution>
|
||||||
|
</license>
|
||||||
|
</licenses>
|
||||||
|
<developers>
|
||||||
|
<developer>
|
||||||
|
<name>The Android Open Source Project</name>
|
||||||
|
</developer>
|
||||||
|
</developers>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.android.tools.lint</groupId>
|
||||||
|
<artifactId>lint-api</artifactId>
|
||||||
|
<version>31.0.1</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.android.tools.lint</groupId>
|
||||||
|
<artifactId>lint-checks</artifactId>
|
||||||
|
<version>31.0.1</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.android.tools.external.com-intellij</groupId>
|
||||||
|
<artifactId>intellij-core</artifactId>
|
||||||
|
<version>31.0.1</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.android.tools.external.com-intellij</groupId>
|
||||||
|
<artifactId>kotlin-compiler</artifactId>
|
||||||
|
<version>31.0.1</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.android.tools.external.org-jetbrains</groupId>
|
||||||
|
<artifactId>uast</artifactId>
|
||||||
|
<version>31.0.1</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.android.tools.analytics-library</groupId>
|
||||||
|
<artifactId>protos</artifactId>
|
||||||
|
<version>31.0.1</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.android.tools.analytics-library</groupId>
|
||||||
|
<artifactId>shared</artifactId>
|
||||||
|
<version>31.0.1</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.android.tools.analytics-library</groupId>
|
||||||
|
<artifactId>tracker</artifactId>
|
||||||
|
<version>31.0.1</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.android.tools.build</groupId>
|
||||||
|
<artifactId>manifest-merger</artifactId>
|
||||||
|
<version>31.0.1</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.android.tools</groupId>
|
||||||
|
<artifactId>common</artifactId>
|
||||||
|
<version>31.0.1</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.android.tools.layoutlib</groupId>
|
||||||
|
<artifactId>layoutlib-api</artifactId>
|
||||||
|
<version>31.0.1</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.android.tools</groupId>
|
||||||
|
<artifactId>sdk-common</artifactId>
|
||||||
|
<version>31.0.1</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.android.tools</groupId>
|
||||||
|
<artifactId>sdklib</artifactId>
|
||||||
|
<version>31.0.1</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.guava</groupId>
|
||||||
|
<artifactId>guava</artifactId>
|
||||||
|
<version>31.0.1-jre</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>net.sf.kxml</groupId>
|
||||||
|
<artifactId>kxml2</artifactId>
|
||||||
|
<version>2.3.0</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.jetbrains.kotlin</groupId>
|
||||||
|
<artifactId>kotlin-reflect</artifactId>
|
||||||
|
<version>1.7.10</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.jetbrains.kotlin</groupId>
|
||||||
|
<artifactId>kotlin-stdlib-jdk8</artifactId>
|
||||||
|
<version>1.7.10</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
||||||
BIN
lib/android-lint/lint-api-31.0.1.jar
LFS
Normal file
BIN
lib/android-lint/lint-api-31.0.1.jar
LFS
Normal file
Binary file not shown.
BIN
lib/android-lint/lint-checks-31.0.1.jar
LFS
Normal file
BIN
lib/android-lint/lint-checks-31.0.1.jar
LFS
Normal file
Binary file not shown.
BIN
lib/android-lint/manifest-merger-31.0.1.jar
LFS
Normal file
BIN
lib/android-lint/manifest-merger-31.0.1.jar
LFS
Normal file
Binary file not shown.
BIN
lib/android-lint/protos-31.0.1.jar
LFS
Normal file
BIN
lib/android-lint/protos-31.0.1.jar
LFS
Normal file
Binary file not shown.
BIN
lib/android-lint/sdk-common-31.0.1.jar
LFS
Normal file
BIN
lib/android-lint/sdk-common-31.0.1.jar
LFS
Normal file
Binary file not shown.
BIN
lib/android-lint/sdklib-31.0.1.jar
LFS
Normal file
BIN
lib/android-lint/sdklib-31.0.1.jar
LFS
Normal file
Binary file not shown.
BIN
lib/android-lint/shared-31.0.1.jar
LFS
Normal file
BIN
lib/android-lint/shared-31.0.1.jar
LFS
Normal file
Binary file not shown.
BIN
lib/android-lint/tracker-31.0.1.jar
LFS
Normal file
BIN
lib/android-lint/tracker-31.0.1.jar
LFS
Normal file
Binary file not shown.
BIN
lib/android-lint/uast-31.0.1.jar
LFS
Normal file
BIN
lib/android-lint/uast-31.0.1.jar
LFS
Normal file
Binary file not shown.
BIN
lib/classgraph-4.8.157-javadoc.jar
LFS
Normal file
BIN
lib/classgraph-4.8.157-javadoc.jar
LFS
Normal file
Binary file not shown.
BIN
lib/classgraph-4.8.157-sources.jar
LFS
Normal file
BIN
lib/classgraph-4.8.157-sources.jar
LFS
Normal file
Binary file not shown.
BIN
lib/classgraph-4.8.157.jar
LFS
Normal file
BIN
lib/classgraph-4.8.157.jar
LFS
Normal file
Binary file not shown.
@@ -1,3 +1,3 @@
|
|||||||
Manifest-Version: 1.0
|
Manifest-Version: 1.0
|
||||||
Main-Class: net.torvald.terrarum.App
|
Main-Class: net.torvald.terrarum.Principii
|
||||||
|
|
||||||
|
|||||||
@@ -166,6 +166,19 @@ final public class FastMath {
|
|||||||
return ((1f - scale) * startValue) + (scale * endValue);
|
return ((1f - scale) * startValue) + (scale * endValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static double interpolateLinear(double scale, double startValue, double endValue) {
|
||||||
|
if (startValue == endValue) {
|
||||||
|
return startValue;
|
||||||
|
}
|
||||||
|
if (scale <= 0.0) {
|
||||||
|
return startValue;
|
||||||
|
}
|
||||||
|
if (scale >= 1.0) {
|
||||||
|
return endValue;
|
||||||
|
}
|
||||||
|
return ((1.0 - scale) * startValue) + (scale * endValue);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Linear interpolation from startValue to endValue by the given percent.
|
* Linear interpolation from startValue to endValue by the given percent.
|
||||||
* Basically: ((1 - percent) * startValue) + (percent * endValue)
|
* Basically: ((1 - percent) * startValue) + (percent * endValue)
|
||||||
@@ -231,6 +244,10 @@ final public class FastMath {
|
|||||||
return (float) (((c4 * u + c3) * u + c2) * u + c1);
|
return (float) (((c4 * u + c3) * u + c2) * u + c1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static float interpolateCatmullRom(float u, float p0, float p1, float p2, float p3) {
|
||||||
|
return interpolateCatmullRom(u, 0.5f, p0, p1, p2, p3);
|
||||||
|
}
|
||||||
|
|
||||||
/**Interpolate a spline between at least 4 control points following the Catmull-Rom equation.
|
/**Interpolate a spline between at least 4 control points following the Catmull-Rom equation.
|
||||||
* here is the interpolation matrix
|
* here is the interpolation matrix
|
||||||
* m = [ 0.0 1.0 0.0 0.0 ]
|
* m = [ 0.0 1.0 0.0 0.0 ]
|
||||||
@@ -316,24 +333,25 @@ final public class FastMath {
|
|||||||
|
|
||||||
|
|
||||||
public static float interpolateHermite(float scale, float p0, float p1, float p2, float p3) {
|
public static float interpolateHermite(float scale, float p0, float p1, float p2, float p3) {
|
||||||
return interpolateHermite(scale, p0, p1, p2, p3, 1f, 0f);
|
// return interpolateHermite(scale, p0, p1, p2, p3, 0f, 0f);
|
||||||
}
|
|
||||||
public static float interpolateHermite(float scale, float p0, float p1, float p2, float p3, float tension, float bias) {
|
|
||||||
float mu2 = scale * scale;
|
float mu2 = scale * scale;
|
||||||
float mu3 = mu2 * scale;
|
float mu3 = mu2 * scale;
|
||||||
|
float biasTensionTerms = 0.5f;//(1f + bias) * (1f - tension) / 2f;
|
||||||
|
|
||||||
float m0 = (p1 - p0) * (1f + bias) * (1f - tension) / 2f;
|
float m0 = (p1 - p0) * biasTensionTerms;
|
||||||
m0 += (p2 - p1) * (1f + bias) * (1f - tension) / 2f;
|
float mTemp = (p2 - p1) * biasTensionTerms;
|
||||||
float m1 = (p2 - p1) * (1f + bias) * (1f - tension) / 2f;
|
m0 += mTemp;
|
||||||
m1 += (p3 - p2) * (1f + bias) * (1f - tension) / 2f;
|
float m1 = mTemp;
|
||||||
|
m1 += (p3 - p2) * biasTensionTerms;
|
||||||
|
|
||||||
float a0 = 2 * mu3 - 3 * mu2 + 1;
|
float a0 = 2*mu3 - 3*mu2 + 1;
|
||||||
float a1 = mu3 - 2 * mu2 + scale;
|
float a1 = 1*mu3 - 2*mu2 + scale;
|
||||||
float a2 = mu3 - mu2;
|
float a2 = 1*mu3 - 1*mu2 + 0;
|
||||||
float a3 = -2 * mu3 + 3 * mu2;
|
float a3 = -2*mu3 + 3*mu2 + 0;
|
||||||
|
|
||||||
return a0 * p1 + a1 * m0 + a2 * m1 + a3 * p2;
|
return a0*p1 + a1*m0 + a2*m1 + a3*p2;
|
||||||
}
|
}
|
||||||
|
//public static float interpolateHermite(float scale, float p0, float p1, float p2, float p3, float tension, float bias) {}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -795,28 +813,6 @@ final public class FastMath {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Take a float input and clamp it between min and max.
|
|
||||||
*
|
|
||||||
* @param input
|
|
||||||
* @param min
|
|
||||||
* @param max
|
|
||||||
* @return clamped input
|
|
||||||
*/
|
|
||||||
public static float clamp(float input, float min, float max) {
|
|
||||||
return (input < min) ? min : (input > max) ? max : input;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Clamps the given float to be between 0 and 1.
|
|
||||||
*
|
|
||||||
* @param input
|
|
||||||
* @return input clamped between 0 and 1.
|
|
||||||
*/
|
|
||||||
public static float saturate(float input) {
|
|
||||||
return clamp(input, 0f, 1f);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts a single precision (32 bit) floating point value
|
* Converts a single precision (32 bit) floating point value
|
||||||
* into half precision (16 bit).
|
* into half precision (16 bit).
|
||||||
@@ -871,31 +867,6 @@ final public class FastMath {
|
|||||||
| ((((f & 0x7f800000) - 0x38000000) >> 13) & 0x7c00)
|
| ((((f & 0x7f800000) - 0x38000000) >> 13) & 0x7c00)
|
||||||
| ((f >> 13) & 0x03ff));
|
| ((f >> 13) & 0x03ff));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static float min(float... f) {
|
|
||||||
float min = f[0];
|
|
||||||
for (int i = 1; i < f.length; i++) min = (f[i] < min) ? f[i] : min;
|
|
||||||
return min;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static float max(float... f) {
|
|
||||||
float max = f[0];
|
|
||||||
for (int i = 1; i < f.length; i++) max = (f[i] > max) ? f[i] : max;
|
|
||||||
return max;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int min(int... f) {
|
|
||||||
int min = f[0];
|
|
||||||
for (int i = 1; i < f.length; i++) min = (f[i] < min) ? f[i] : min;
|
|
||||||
return min;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int max(int... f) {
|
|
||||||
int max = f[0];
|
|
||||||
for (int i = 1; i < f.length; i++) max = (f[i] > max) ? f[i] : max;
|
|
||||||
return max;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getGCD(int a, int b) {
|
public static int getGCD(int a, int b) {
|
||||||
while (a != b) {
|
while (a != b) {
|
||||||
if (a > b) a = a-b;
|
if (a > b) a = a-b;
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ fun Color.toXYZ(): CIEXYZ = RGB(this).toXYZ()
|
|||||||
}
|
}
|
||||||
val step = value.clampOne() * 255f // 0.0 .. 255.0
|
val step = value.clampOne() * 255f // 0.0 .. 255.0
|
||||||
val intStep = step.toInt() // 0 .. 255
|
val intStep = step.toInt() // 0 .. 255
|
||||||
val NeXTSTEP = minOf(intStep + 1, 255) // 1 .. 255
|
val NeXTSTEP = min(intStep + 1, 255) // 1 .. 255
|
||||||
|
|
||||||
out[i] = interpolateLinear(step - intStep, rgbLinLUT[intStep], rgbLinLUT[NeXTSTEP])
|
out[i] = interpolateLinear(step - intStep, rgbLinLUT[intStep], rgbLinLUT[NeXTSTEP])
|
||||||
}
|
}
|
||||||
@@ -123,7 +123,7 @@ fun RGB.linearise(): RGB {
|
|||||||
}
|
}
|
||||||
val step = value.clampOne() * 255f // 0.0 .. 255.0
|
val step = value.clampOne() * 255f // 0.0 .. 255.0
|
||||||
val intStep = step.toInt() // 0 .. 255
|
val intStep = step.toInt() // 0 .. 255
|
||||||
val NeXTSTEP = minOf(intStep + 1, 255) // 1 .. 255
|
val NeXTSTEP = min(intStep + 1, 255) // 1 .. 255
|
||||||
|
|
||||||
out[i] = interpolateLinear(step - intStep, rgbUnLinLUT[intStep], rgbUnLinLUT[NeXTSTEP])
|
out[i] = interpolateLinear(step - intStep, rgbUnLinLUT[intStep], rgbUnLinLUT[NeXTSTEP])
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package net.torvald.colourutil
|
|||||||
|
|
||||||
import com.jme3.math.FastMath
|
import com.jme3.math.FastMath
|
||||||
import com.badlogic.gdx.graphics.Color
|
import com.badlogic.gdx.graphics.Color
|
||||||
|
import kotlin.math.max
|
||||||
|
import kotlin.math.min
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* OBSOLETE; use CIELchUtil for natural-looking colour
|
* OBSOLETE; use CIELchUtil for natural-looking colour
|
||||||
@@ -75,8 +77,8 @@ object HSVUtil {
|
|||||||
val g = color.g
|
val g = color.g
|
||||||
val b = color.b
|
val b = color.b
|
||||||
|
|
||||||
val rgbMin = FastMath.min(r, g, b)
|
val rgbMin = min(min(r, g), b)
|
||||||
val rgbMax = FastMath.max(r, g, b)
|
val rgbMax = max(max(r, g), b)
|
||||||
|
|
||||||
var h: Float
|
var h: Float
|
||||||
val s: Float
|
val s: Float
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ public class HUSLColorConverter {
|
|||||||
float x = intersectLineLine(line, new float[]{-1 / m1, 0});
|
float x = intersectLineLine(line, new float[]{-1 / m1, 0});
|
||||||
float length = distanceFromPole(new float[]{x, b1 + x * m1});
|
float length = distanceFromPole(new float[]{x, b1 + x * m1});
|
||||||
|
|
||||||
min = FastMath.min(min, length);
|
min = Math.min(min, length);
|
||||||
}
|
}
|
||||||
|
|
||||||
return min;
|
return min;
|
||||||
@@ -125,7 +125,7 @@ public class HUSLColorConverter {
|
|||||||
for (float[] bound : bounds) {
|
for (float[] bound : bounds) {
|
||||||
Length length = lengthOfRayUntilIntersect(hrad, bound);
|
Length length = lengthOfRayUntilIntersect(hrad, bound);
|
||||||
if (length.greaterEqualZero) {
|
if (length.greaterEqualZero) {
|
||||||
min = FastMath.min(min, length.length);
|
min = Math.min(min, length.length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -55,6 +55,13 @@ class Cvec {
|
|||||||
this.a = color.a
|
this.a = color.a
|
||||||
}
|
}
|
||||||
|
|
||||||
|
constructor(rgb: Color, alpha: Float) {
|
||||||
|
this.r = rgb.r
|
||||||
|
this.g = rgb.g
|
||||||
|
this.b = rgb.b
|
||||||
|
this.a = alpha
|
||||||
|
}
|
||||||
|
|
||||||
/** Constructor, sets the components of the color
|
/** Constructor, sets the components of the color
|
||||||
*
|
*
|
||||||
* @param r the red component
|
* @param r the red component
|
||||||
|
|||||||
@@ -104,10 +104,10 @@ internal class UnsafeCvecArray(val width: Int, val height: Int) {
|
|||||||
// operators
|
// operators
|
||||||
fun max(x: Int, y: Int, other: Cvec) {
|
fun max(x: Int, y: Int, other: Cvec) {
|
||||||
val a = toAddr(x, y)
|
val a = toAddr(x, y)
|
||||||
array.setFloat(a + 0, maxOf(array.getFloat(a + 0), other.r))
|
array.setFloat(a + 0, kotlin.math.max(array.getFloat(a + 0), other.r))
|
||||||
array.setFloat(a + 1, maxOf(array.getFloat(a + 1), other.g))
|
array.setFloat(a + 1, kotlin.math.max(array.getFloat(a + 1), other.g))
|
||||||
array.setFloat(a + 2, maxOf(array.getFloat(a + 2), other.b))
|
array.setFloat(a + 2, kotlin.math.max(array.getFloat(a + 2), other.b))
|
||||||
array.setFloat(a + 3, maxOf(array.getFloat(a + 3), other.a))
|
array.setFloat(a + 3, kotlin.math.max(array.getFloat(a + 3), other.a))
|
||||||
}
|
}
|
||||||
fun mul(x: Int, y: Int, scalar: Float) {
|
fun mul(x: Int, y: Int, scalar: Float) {
|
||||||
val a = toAddr(x, y)
|
val a = toAddr(x, y)
|
||||||
@@ -202,10 +202,10 @@ internal class TestCvecArr(val width: Int, val height: Int) {
|
|||||||
|
|
||||||
// operators
|
// operators
|
||||||
inline fun max(x: Int, y: Int, other: Cvec) {
|
inline fun max(x: Int, y: Int, other: Cvec) {
|
||||||
setR(x, y, maxOf(getR(x, y), other.r))
|
setR(x, y, kotlin.math.max(getR(x, y), other.r))
|
||||||
setG(x, y, maxOf(getG(x, y), other.g))
|
setG(x, y, kotlin.math.max(getG(x, y), other.g))
|
||||||
setB(x, y, maxOf(getB(x, y), other.b))
|
setB(x, y, kotlin.math.max(getB(x, y), other.b))
|
||||||
setA(x, y, maxOf(getA(x, y), other.a))
|
setA(x, y, kotlin.math.max(getA(x, y), other.a))
|
||||||
}
|
}
|
||||||
inline fun mul(x: Int, y: Int, scalar: Float) {
|
inline fun mul(x: Int, y: Int, scalar: Float) {
|
||||||
setR(x, y, getR(x, y) * scalar)
|
setR(x, y, getR(x, y) * scalar)
|
||||||
|
|||||||
@@ -14,22 +14,36 @@ import net.torvald.colourutil.*
|
|||||||
import net.torvald.parametricsky.datasets.DatasetCIEXYZ
|
import net.torvald.parametricsky.datasets.DatasetCIEXYZ
|
||||||
import net.torvald.parametricsky.datasets.DatasetRGB
|
import net.torvald.parametricsky.datasets.DatasetRGB
|
||||||
import net.torvald.parametricsky.datasets.DatasetSpectral
|
import net.torvald.parametricsky.datasets.DatasetSpectral
|
||||||
|
import net.torvald.terrarum.abs
|
||||||
import net.torvald.terrarum.inUse
|
import net.torvald.terrarum.inUse
|
||||||
import net.torvald.terrarum.modulebasegame.worldgenerator.HALF_PI
|
import net.torvald.terrarum.modulebasegame.worldgenerator.HALF_PI
|
||||||
import net.torvald.terrarum.modulebasegame.worldgenerator.TWO_PI
|
import net.torvald.terrarum.modulebasegame.worldgenerator.TWO_PI
|
||||||
|
import java.awt.BorderLayout
|
||||||
import java.awt.Dimension
|
import java.awt.Dimension
|
||||||
|
import java.awt.FlowLayout
|
||||||
|
import java.awt.GridLayout
|
||||||
|
import java.lang.Math.pow
|
||||||
import javax.swing.*
|
import javax.swing.*
|
||||||
import kotlin.math.PI
|
import kotlin.math.*
|
||||||
import kotlin.math.pow
|
|
||||||
|
|
||||||
|
|
||||||
const val WIDTH = 1200
|
val INITIAL_TURBIDITY = 4.0
|
||||||
const val HEIGHT = 600
|
val INITIAL_ALBEDO = 0.1
|
||||||
|
val INITIAL_ELEV = 0.0
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by minjaesong on 2018-08-01.
|
* Created by minjaesong on 2018-08-01.
|
||||||
*/
|
*/
|
||||||
class Application : Game() {
|
class Application(val WIDTH: Int, val HEIGHT: Int) : Game() {
|
||||||
|
|
||||||
|
private val HW = WIDTH / 2
|
||||||
|
private val HH = HEIGHT / 2
|
||||||
|
|
||||||
|
private val wf = WIDTH.toFloat()
|
||||||
|
private val hf = HEIGHT.toFloat()
|
||||||
|
private val hwf = HW.toFloat()
|
||||||
|
// private val hhf = HH.toFloat()
|
||||||
|
|
||||||
/* Variables:
|
/* Variables:
|
||||||
* 1. Canvas Y (theta)
|
* 1. Canvas Y (theta)
|
||||||
@@ -53,12 +67,12 @@ class Application : Game() {
|
|||||||
private lateinit var oneScreen: Pixmap
|
private lateinit var oneScreen: Pixmap
|
||||||
private lateinit var batch: SpriteBatch
|
private lateinit var batch: SpriteBatch
|
||||||
|
|
||||||
private lateinit var testTex: Texture
|
var turbidity = INITIAL_TURBIDITY
|
||||||
|
var albedo = INITIAL_ALBEDO
|
||||||
|
var elevation = Math.toRadians(INITIAL_ELEV)
|
||||||
|
|
||||||
var turbidity = 5.0
|
var solarBearing = Math.toRadians(90.0)
|
||||||
var albedo = 0.1
|
var cameraHeading = Math.toRadians(90.0)
|
||||||
var elevation = 0.0
|
|
||||||
var scalefactor = 1f
|
|
||||||
|
|
||||||
override fun getScreen(): Screen {
|
override fun getScreen(): Screen {
|
||||||
return super.getScreen()
|
return super.getScreen()
|
||||||
@@ -68,20 +82,29 @@ class Application : Game() {
|
|||||||
super.setScreen(screen)
|
super.setScreen(screen)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var model = ArHosekSkyModel.arhosek_xyz_skymodelstate_alloc_init(turbidity, albedo, elevation.abs())
|
||||||
|
|
||||||
|
fun regenerateModel() {
|
||||||
|
model = ArHosekSkyModel.arhosek_xyz_skymodelstate_alloc_init(turbidity, albedo, elevation.abs())
|
||||||
|
}
|
||||||
|
|
||||||
override fun render() {
|
override fun render() {
|
||||||
Gdx.graphics.setTitle("Daylight Model $EMDASH F: ${Gdx.graphics.framesPerSecond}")
|
Gdx.graphics.setTitle("Daylight Model $EMDASH F: ${Gdx.graphics.framesPerSecond}")
|
||||||
|
|
||||||
if (turbidity <= 0) throw IllegalStateException()
|
if (turbidity <= 0) throw IllegalStateException()
|
||||||
|
|
||||||
// we need to use different modelstate to accomodate different albedo for each spectral band but oh well...
|
// we need to use different model-state to accommodate different albedo for each spectral band but oh well...
|
||||||
genTexLoop(ArHosekSkyModel.arhosek_xyz_skymodelstate_alloc_init(turbidity, albedo, elevation))
|
genTexLoop(model)
|
||||||
|
|
||||||
|
|
||||||
val tex = Texture(oneScreen)
|
val tex = Texture(oneScreen)
|
||||||
tex.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest)
|
tex.setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear)
|
||||||
|
|
||||||
batch.inUse {
|
batch.inUse {
|
||||||
batch.draw(tex, 0f, 0f, WIDTH.toFloat(), HEIGHT.toFloat())
|
// batch.draw(tex, hwf, 0f, hwf, hf)
|
||||||
|
// batch.draw(tex, hwf, 0f, -hwf, hf)
|
||||||
|
|
||||||
|
batch.draw(tex, 0f, 0f, wf, hf)
|
||||||
}
|
}
|
||||||
|
|
||||||
tex.dispose()
|
tex.dispose()
|
||||||
@@ -103,9 +126,37 @@ class Application : Game() {
|
|||||||
oneScreen.dispose()
|
oneScreen.dispose()
|
||||||
}
|
}
|
||||||
|
|
||||||
val outTexWidth = 256
|
val outTexWidth = 1
|
||||||
val outTexHeight = 256
|
val outTexHeight = 256
|
||||||
|
|
||||||
|
private fun Float.scaleFun() =
|
||||||
|
(1f - 1f / 2f.pow(this/6f)) * 0.97f
|
||||||
|
|
||||||
|
private fun CIEXYZ.scaleToFit(elevation: Double): CIEXYZ {
|
||||||
|
return if (elevation >= 0) {
|
||||||
|
CIEXYZ(
|
||||||
|
this.X.scaleFun(),
|
||||||
|
this.Y.scaleFun(),
|
||||||
|
this.Z.scaleFun(),
|
||||||
|
this.alpha
|
||||||
|
)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
val elevation1 = -Math.toDegrees(elevation)
|
||||||
|
val elevation2 = -Math.toDegrees(elevation) / 28.5
|
||||||
|
val scale = (1f - (1f - 1f / 1.8.pow(elevation1)) * 0.97f).toFloat()
|
||||||
|
val scale2 = (1.0 - (elevation2.pow(E) / E.pow(elevation2))*0.8).toFloat()
|
||||||
|
CIEXYZ(
|
||||||
|
this.X.scaleFun() * scale * scale2,
|
||||||
|
this.Y.scaleFun() * scale * scale2,
|
||||||
|
this.Z.scaleFun() * scale * scale2,
|
||||||
|
this.alpha
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun Double.mapCircle() = sin(HALF_PI * this)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generated texture is as if you took the panorama picture of sky: up 70deg to horizon, east-south-west;
|
* Generated texture is as if you took the panorama picture of sky: up 70deg to horizon, east-south-west;
|
||||||
* with sun not moving (sun is at exact south, sun's height is adjustable)
|
* with sun not moving (sun is at exact south, sun's height is adjustable)
|
||||||
@@ -120,20 +171,46 @@ class Application : Game() {
|
|||||||
return v.toFloat()
|
return v.toFloat()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val ys = ArrayList<Float>()
|
||||||
|
val ys2 = ArrayList<Float>()
|
||||||
|
|
||||||
|
val halfHeight = oneScreen.height * 0.5
|
||||||
|
|
||||||
|
for (x in 0 until oneScreen.width) {
|
||||||
|
for (y in 0 until oneScreen.height) {
|
||||||
|
|
||||||
|
// sky-sphere mapping
|
||||||
|
/*val xf = ((x + 0.5) / oneScreen.width) * 2.0 - 1.0
|
||||||
|
val yf = ((y + 0.5) / oneScreen.height) * 2.0 - 1.0
|
||||||
|
val gamma = atan2(yf, xf) + PI
|
||||||
|
val theta = sqrt(xf*xf + yf*yf) * HALF_PI*/
|
||||||
|
|
||||||
|
// AM-PM mapping (use with WIDTH=1)
|
||||||
|
var yf = (y * 2.0 / oneScreen.height) % 1.0
|
||||||
|
if (elevation < 0) yf *= 1.0 - pow(-elevation / HALF_PI, 0.333)
|
||||||
|
val gamma = if (y < halfHeight) HALF_PI else 3 * HALF_PI
|
||||||
|
val theta = yf.mapCircle() * HALF_PI
|
||||||
|
|
||||||
|
|
||||||
for (y in 0 until oneScreen.height) {
|
|
||||||
for (x in 0 until oneScreen.width) {
|
|
||||||
val gamma = (x / oneScreen.width.toDouble()) * TWO_PI // 0deg..360deg
|
|
||||||
val theta = (1.0 - (y / oneScreen.height.toDouble())) * HALF_PI // 90deg..0deg
|
|
||||||
|
|
||||||
val xyz = CIEXYZ(
|
val xyz = CIEXYZ(
|
||||||
ArHosekSkyModel.arhosek_tristim_skymodel_radiance(state, theta, gamma, 0).toFloat().times(scalefactor / 10f),
|
ArHosekSkyModel.arhosek_tristim_skymodel_radiance(state, theta, gamma, 0).toFloat(),
|
||||||
ArHosekSkyModel.arhosek_tristim_skymodel_radiance(state, theta, gamma, 1).toFloat().times(scalefactor / 10f),
|
ArHosekSkyModel.arhosek_tristim_skymodel_radiance(state, theta, gamma, 1).toFloat(),
|
||||||
ArHosekSkyModel.arhosek_tristim_skymodel_radiance(state, theta, gamma, 2).toFloat().times(scalefactor / 10f)
|
ArHosekSkyModel.arhosek_tristim_skymodel_radiance(state, theta, gamma, 2).toFloat()
|
||||||
)
|
)
|
||||||
val rgb = xyz.toRGB().toColor()
|
val xyz2 = xyz.scaleToFit(elevation)
|
||||||
|
ys.add(xyz.Y)
|
||||||
|
ys2.add(xyz2.Y)
|
||||||
|
val rgb = xyz2.toRGB().toColor()
|
||||||
rgb.a = 1f
|
rgb.a = 1f
|
||||||
|
|
||||||
|
val rgb2 = Color(
|
||||||
|
((rgb.r * 255f).roundToInt() xor 0xAA) / 255f,
|
||||||
|
((rgb.g * 255f).roundToInt() xor 0xAA) / 255f,
|
||||||
|
((rgb.b * 255f).roundToInt() xor 0xAA) / 255f,
|
||||||
|
rgb.a
|
||||||
|
)
|
||||||
|
|
||||||
oneScreen.setColor(rgb)
|
oneScreen.setColor(rgb)
|
||||||
oneScreen.drawPixel(x, y)
|
oneScreen.drawPixel(x, y)
|
||||||
|
|
||||||
@@ -142,140 +219,148 @@ class Application : Game() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ymaxDisp.text = "${ys.max()}"
|
||||||
|
ymaxDisp2.text = "${ys2.max()}"
|
||||||
|
|
||||||
//System.exit(0)
|
//System.exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Generated texture is as if you took the panorama picture of sky: up 70deg to horizon, east-south-west;
|
|
||||||
* with sun not moving (sun is at exact south, sun's height is adjustable)
|
|
||||||
*/
|
|
||||||
/*private fun genTexLoop2(T: Double, theta_s: Double) {
|
|
||||||
|
|
||||||
fun hazeFun(T: Double): Double {
|
|
||||||
val T = T - 1
|
|
||||||
if (T >= 10) return 1.0
|
|
||||||
else return 2.0.pow(T).div(1024.0)
|
|
||||||
}
|
|
||||||
|
|
||||||
// loop thru gamma and theta
|
|
||||||
for (y in 0..outTexDim) { // theta
|
|
||||||
for (x in 0..outTexDim) { // gamma
|
|
||||||
val theta = Math.toRadians(y * (90.0 / outTexDim.toDouble())) // of observer
|
|
||||||
val gamma = Math.toRadians(x * (90.0 / outTexDim.toDouble())) // of observer
|
|
||||||
|
|
||||||
val Y_z = Model.getAbsoluteZenithLuminance(T, theta_s)
|
|
||||||
val x_z = Model.getZenithChromaX(T, theta_s)
|
|
||||||
val y_z = Model.getZenithChromaY(T, theta_s)
|
|
||||||
|
|
||||||
val Y_p = Y_z * Model.getFforLuma(theta, gamma, T) / Model.getFforLuma(0.0, theta_s, T)
|
|
||||||
val Y_oc = Y_z * (1.0 + 2.0 * Math.cos(theta)) / 3.0
|
|
||||||
val x_p = (x_z * Model.getFforChromaX(theta, gamma, T) / Model.getFforChromaX(0.0, theta_s, T)).coerceIn(0.0, 1.0)
|
|
||||||
val y_p = (y_z * Model.getFforChromaY(theta, gamma, T) / Model.getFforChromaY(0.0, theta_s, T)).coerceIn(0.0, 1.0)
|
|
||||||
|
|
||||||
val normalisedY = Y_p.toFloat().pow(0.5f).div(10f)
|
|
||||||
val normalisedY_oc = Y_oc.toFloat().pow(0.5f).div(10f)
|
|
||||||
|
|
||||||
//println("$Y_p -> $normalisedY, $x_p, $y_p")
|
|
||||||
|
|
||||||
if (T < 11) {
|
|
||||||
val rgbColour = CIEYXY(normalisedY, x_p.toFloat(), y_p.toFloat()).toXYZ().toColorRaw()
|
|
||||||
val hazeColour = CIEYXY(normalisedY_oc, 0.3128f, 0.3290f).toXYZ().toColorRaw()
|
|
||||||
|
|
||||||
val hazeAmount = hazeFun(T).toFloat()
|
|
||||||
val newColour = Color(
|
|
||||||
FastMath.interpolateLinear(hazeAmount, rgbColour.r, hazeColour.r),
|
|
||||||
FastMath.interpolateLinear(hazeAmount, rgbColour.g, hazeColour.g),
|
|
||||||
FastMath.interpolateLinear(hazeAmount, rgbColour.b, hazeColour.b),
|
|
||||||
1f
|
|
||||||
)
|
|
||||||
|
|
||||||
oneScreen.setColor(newColour)
|
|
||||||
oneScreen.drawPixel(x, y)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
val hazeColour = CIEYXY(normalisedY_oc, 0.3128f, 0.3290f).toXYZ().toColorRaw()
|
|
||||||
oneScreen.setColor(hazeColour)
|
|
||||||
oneScreen.drawPixel(x, y)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// end loop
|
|
||||||
}*/
|
|
||||||
|
|
||||||
override fun create() {
|
override fun create() {
|
||||||
batch = SpriteBatch()
|
batch = SpriteBatch()
|
||||||
testTex = Texture(Gdx.files.internal("assets/test_texture.tga"))
|
|
||||||
|
|
||||||
oneScreen = Pixmap(outTexWidth * 2, outTexHeight, Pixmap.Format.RGBA8888)
|
oneScreen = Pixmap(outTexWidth, outTexHeight, Pixmap.Format.RGBA8888)
|
||||||
|
|
||||||
DatasetSpectral
|
// DatasetSpectral
|
||||||
DatasetCIEXYZ
|
DatasetCIEXYZ
|
||||||
DatasetRGB
|
// DatasetRGB
|
||||||
|
|
||||||
ApplicationController(this)
|
ApplicationController(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val ymaxDisp = JTextField().also {
|
||||||
|
it.preferredSize = Dimension(64, 20)
|
||||||
|
}
|
||||||
|
val ymaxDisp2 = JTextField().also {
|
||||||
|
it.preferredSize = Dimension(64, 20)
|
||||||
|
}
|
||||||
|
|
||||||
|
class ApplicationController(val app: Application) : JFrame() {
|
||||||
|
|
||||||
class ApplicationController(app: Application) : JFrame() {
|
val dialSize = Dimension(45, 20)
|
||||||
|
|
||||||
val mainPanel = JPanel()
|
val turbidityControl = JSpinner(SpinnerNumberModel(INITIAL_TURBIDITY, 1.0, 10.0, 0.1)).also {
|
||||||
|
it.preferredSize = dialSize
|
||||||
val turbidityControl = JSpinner(SpinnerNumberModel(5.0, 1.0, 10.0, 0.1))
|
it.addChangeListener { _ ->
|
||||||
val albedoControl = JSpinner(SpinnerNumberModel(0.1, 0.0, 1.0, 0.05))
|
app.turbidity = it.value as Double
|
||||||
val elevationControl = JSpinner(SpinnerNumberModel(0.0, 0.0, 90.0, 0.5))
|
app.regenerateModel()
|
||||||
val scalefactorControl = JSpinner(SpinnerNumberModel(1.0, 0.0, 2.0, 0.01))
|
}
|
||||||
|
}
|
||||||
|
val albedoControl = JSpinner(SpinnerNumberModel(INITIAL_ALBEDO, 0.0, 1.0, 0.05)).also {
|
||||||
|
it.preferredSize = dialSize
|
||||||
|
it.addChangeListener { _ ->
|
||||||
|
app.albedo = it.value as Double
|
||||||
|
app.regenerateModel()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val elevationControl = JSpinner(SpinnerNumberModel(INITIAL_ELEV, -75.0, 75.0, 0.5)).also {
|
||||||
|
it.preferredSize = dialSize
|
||||||
|
it.addChangeListener { _ ->
|
||||||
|
app.elevation = Math.toRadians(it.value as Double)
|
||||||
|
app.regenerateModel()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val solarBearing = JSpinner(SpinnerNumberModel(90.0, 0.0, 180.0, 1.0)).also {
|
||||||
|
it.preferredSize = dialSize
|
||||||
|
it.addChangeListener { _ ->
|
||||||
|
app.solarBearing = (it.value as Double)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val cameraHeading = JSpinner(SpinnerNumberModel(90.0, 0.0, 180.0, 1.0)).also {
|
||||||
|
it.preferredSize = dialSize
|
||||||
|
it.addChangeListener { _ ->
|
||||||
|
app.cameraHeading = (it.value as Double)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
val turbidityPanel = JPanel()
|
val atmosPanel = JPanel()
|
||||||
val albedoPanel = JPanel()
|
val turbidityPanel = JPanel().also {
|
||||||
val elevationPanel = JPanel()
|
it.add(JLabel("Turbidity (log_2)"))
|
||||||
val scalefactorPanel = JPanel()
|
it.add(turbidityControl)
|
||||||
|
atmosPanel.add(it)
|
||||||
|
}
|
||||||
|
val albedoPanel = JPanel().also {
|
||||||
|
it.add(JLabel("Albedo"))
|
||||||
|
it.add(albedoControl)
|
||||||
|
atmosPanel.add(it)
|
||||||
|
}
|
||||||
|
|
||||||
turbidityControl.preferredSize = Dimension(45, 18)
|
val sunPanel = JPanel()
|
||||||
albedoControl.preferredSize = Dimension(45, 18)
|
val elevationPanel = JPanel().also {
|
||||||
elevationControl.preferredSize = Dimension(45, 18)
|
it.add(JLabel("Elevation"))
|
||||||
scalefactorControl.preferredSize = Dimension(45, 18)
|
it.add(elevationControl)
|
||||||
|
sunPanel.add(it)
|
||||||
|
}
|
||||||
|
val scalefactorPanel = JPanel().also {
|
||||||
|
it.add(JLabel("Bearing"))
|
||||||
|
it.add(solarBearing)
|
||||||
|
sunPanel.add(it)
|
||||||
|
}
|
||||||
|
|
||||||
turbidityPanel.add(JLabel("Turbidity"))
|
val cameraPanel = JPanel()
|
||||||
turbidityPanel.add(turbidityControl)
|
val headingPanel = JPanel().also {
|
||||||
|
it.add(JLabel("Heading"))
|
||||||
|
it.add(cameraHeading)
|
||||||
|
cameraPanel.add(it)
|
||||||
|
}
|
||||||
|
|
||||||
albedoPanel.add(JLabel("Albedo"))
|
val statsPanel = JPanel()
|
||||||
albedoPanel.add(albedoControl)
|
val ymaxPanel = JPanel().also {
|
||||||
|
it.add(JLabel("Ymax (CIEXYZ)"))
|
||||||
|
it.add(app.ymaxDisp)
|
||||||
|
statsPanel.add(it)
|
||||||
|
}
|
||||||
|
val ymaxPanel2 = JPanel().also {
|
||||||
|
it.add(JLabel("Ymax (scaled)"))
|
||||||
|
it.add(app.ymaxDisp2)
|
||||||
|
statsPanel.add(it)
|
||||||
|
}
|
||||||
|
|
||||||
elevationPanel.add(JLabel("Elevation"))
|
val mainPanel = JPanel()
|
||||||
elevationPanel.add(elevationControl)
|
|
||||||
|
|
||||||
scalefactorPanel.add(JLabel("Scaling Factor"))
|
mainPanel.layout = BoxLayout(mainPanel, BoxLayout.Y_AXIS)
|
||||||
scalefactorPanel.add(scalefactorControl)
|
JPanel().also {
|
||||||
|
it.layout = BorderLayout()
|
||||||
mainPanel.add(turbidityPanel)
|
it.add(JPanel().also { it.add(JLabel("Atmosphere")) }, BorderLayout.NORTH)
|
||||||
mainPanel.add(albedoPanel)
|
it.add(atmosPanel, BorderLayout.CENTER)
|
||||||
mainPanel.add(elevationPanel)
|
it.add(JSeparator(), BorderLayout.SOUTH)
|
||||||
mainPanel.add(scalefactorPanel)
|
mainPanel.add(it)
|
||||||
|
}
|
||||||
|
JPanel().also {
|
||||||
|
it.layout = BorderLayout()
|
||||||
|
it.add(JPanel().also { it.add(JLabel("Sun")) }, BorderLayout.NORTH)
|
||||||
|
it.add(sunPanel, BorderLayout.CENTER)
|
||||||
|
it.add(JSeparator(), BorderLayout.SOUTH)
|
||||||
|
mainPanel.add(it)
|
||||||
|
}
|
||||||
|
JPanel().also {
|
||||||
|
it.layout = BorderLayout()
|
||||||
|
it.add(JPanel().also { it.add(JLabel("Camera")) }, BorderLayout.NORTH)
|
||||||
|
it.add(cameraPanel, BorderLayout.CENTER)
|
||||||
|
it.add(JSeparator(), BorderLayout.SOUTH)
|
||||||
|
mainPanel.add(it)
|
||||||
|
}
|
||||||
|
JPanel().also {
|
||||||
|
it.layout = BorderLayout()
|
||||||
|
it.add(JPanel().also { it.add(JLabel("Statistics")) }, BorderLayout.NORTH)
|
||||||
|
it.add(statsPanel, BorderLayout.CENTER)
|
||||||
|
mainPanel.add(it)
|
||||||
|
}
|
||||||
|
|
||||||
this.isVisible = true
|
this.isVisible = true
|
||||||
this.defaultCloseOperation = WindowConstants.EXIT_ON_CLOSE
|
this.defaultCloseOperation = WindowConstants.EXIT_ON_CLOSE
|
||||||
this.size = Dimension(300, 400)
|
this.size = Dimension(300, 600)
|
||||||
|
this.add(mainPanel, BorderLayout.CENTER)
|
||||||
this.add(mainPanel)
|
|
||||||
|
|
||||||
|
|
||||||
turbidityControl.addChangeListener {
|
|
||||||
app.turbidity = turbidityControl.value as Double
|
|
||||||
}
|
|
||||||
|
|
||||||
albedoControl.addChangeListener {
|
|
||||||
app.albedo = albedoControl.value as Double
|
|
||||||
}
|
|
||||||
|
|
||||||
elevationControl.addChangeListener {
|
|
||||||
app.elevation = Math.toRadians(elevationControl.value as Double)
|
|
||||||
}
|
|
||||||
|
|
||||||
scalefactorControl.addChangeListener {
|
|
||||||
app.scalefactor = (scalefactorControl.value as Double).toFloat()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -285,7 +370,10 @@ class Application : Game() {
|
|||||||
|
|
||||||
fun main(args: Array<String>) {
|
fun main(args: Array<String>) {
|
||||||
val config = Lwjgl3ApplicationConfiguration()
|
val config = Lwjgl3ApplicationConfiguration()
|
||||||
config.setWindowedMode(WIDTH, HEIGHT)
|
|
||||||
|
|
||||||
Lwjgl3Application(Application(), config)
|
val WIDTH = 2048
|
||||||
|
val HEIGHT = 2048
|
||||||
|
|
||||||
|
config.setWindowedMode(WIDTH, HEIGHT)
|
||||||
|
Lwjgl3Application(Application(WIDTH, HEIGHT), config)
|
||||||
}
|
}
|
||||||
@@ -11,8 +11,8 @@ object DatasetOp {
|
|||||||
val entrysize = file.length().toInt() / 8
|
val entrysize = file.length().toInt() / 8
|
||||||
val fis = FileInputStream(file)
|
val fis = FileInputStream(file)
|
||||||
|
|
||||||
|
val inputbuf = ByteArray(8)
|
||||||
val ret = DoubleArray(entrysize) {
|
val ret = DoubleArray(entrysize) {
|
||||||
val inputbuf = ByteArray(8)
|
|
||||||
fis.read(inputbuf)
|
fis.read(inputbuf)
|
||||||
val rawnum = inputbuf.toLittleInt64()
|
val rawnum = inputbuf.toLittleInt64()
|
||||||
Double.fromBits(rawnum)
|
Double.fromBits(rawnum)
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user