diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index adea9a3b8..fc26ade2b 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -6,9 +6,6 @@
-
-
-
diff --git a/ModuleComputers/src/net/torvald/terrarum/modulecomputers/gameactors/FixtureHomeComputer.kt b/ModuleComputers/src/net/torvald/terrarum/modulecomputers/gameactors/FixtureHomeComputer.kt
index 56d751da9..ff3470f33 100644
--- a/ModuleComputers/src/net/torvald/terrarum/modulecomputers/gameactors/FixtureHomeComputer.kt
+++ b/ModuleComputers/src/net/torvald/terrarum/modulecomputers/gameactors/FixtureHomeComputer.kt
@@ -174,7 +174,8 @@ internal class UIHomeComputer : UICanvas(
otherBatch.end()
fbo.inAction(camera, batch) {
- Gdx.gl.glClearColor(0f,0f,0f,1f) // to hide the crap might be there
+ Gdx.gl.glClearColor(0f,0f,0f,1f)
+ Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT) // to hide the crap might be there
(vm.peripheralTable[1].peripheral as? GraphicsAdapter)?.let { gpu ->
val clearCol = gpu.getBackgroundColour()
diff --git a/assets/keylayout/ko_kr_2set_ksx5002.ime b/assets/keylayout/ko_kr_2set_ksx5002.ime
index 03d85268a..3d697cfdd 100644
--- a/assets/keylayout/ko_kr_2set_ksx5002.ime
+++ b/assets/keylayout/ko_kr_2set_ksx5002.ime
@@ -343,7 +343,7 @@ let bufAssemble = (isPreview) => {
}
//let bufDebugStringify = (buf) => [0,1,2].map(i => (buf[i] == undefined) ? "·" : `\\u${buf[i].codePointAt(0).toString(16).toUpperCase()}`).join(' ')
let bufDebugStringify = (buf) => [0,1,2].map(i => (buf[i] == undefined) ? "·" : `${buf[i]}`).join(' ')
-return Object.freeze({"n":"두벌식 표준","v":"one","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]]),
"l":"koKR",
// return: [displayed output, composed output]
diff --git a/assets/keylayout/ko_kr_2set_ksx5002_alt.ime b/assets/keylayout/ko_kr_2set_ksx5002_alt.ime
index f470b5fe5..48f3e30f7 100644
--- a/assets/keylayout/ko_kr_2set_ksx5002_alt.ime
+++ b/assets/keylayout/ko_kr_2set_ksx5002_alt.ime
@@ -343,7 +343,7 @@ let bufAssemble = () => {
}
//let bufDebugStringify = (buf) => [0,1,2].map(i => (buf[i] == undefined) ? "·" : `\\u${buf[i].codePointAt(0).toString(16).toUpperCase()}`).join(' ')
let bufDebugStringify = (buf) => [0,1,2].map(i => (buf[i] == undefined) ? "·" : `${buf[i]}`).join(' ')
-return Object.freeze({"n":"두벌식 수정 표준","v":"one","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]]),
"l":"koKR",
// return: [displayed output, composed output]
diff --git a/assets/keylayout/ko_kr_3set_390.ime b/assets/keylayout/ko_kr_3set_390.ime
index fa9679191..8df249318 100644
--- a/assets/keylayout/ko_kr_3set_390.ime
+++ b/assets/keylayout/ko_kr_3set_390.ime
@@ -372,7 +372,7 @@ let bufAssemble = (normalise) => {
let isBufferEmpty = (buf) => buf[0] === undefined && buf[1] === undefined && buf[2] === undefined
let isBufferNotEmpty = (buf) => buf[0] !== undefined || buf[1] !== undefined || buf[2] !== undefined
let bufDebugStringify = (buf) => [0,1,2].map(i => (buf[i] == undefined) ? "·" : `\\u${buf[i].codePointAt(0).toString(16).toUpperCase()}`).join(' ')
-return Object.freeze({"n":"세벌식 3-90","v":"one","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]]),
"l":"koKR",
// return: [displayed output, composed output]
diff --git a/assets/keylayout/ko_kr_3set_391.ime b/assets/keylayout/ko_kr_3set_391.ime
index 82bbcc11d..26d3b66cd 100644
--- a/assets/keylayout/ko_kr_3set_391.ime
+++ b/assets/keylayout/ko_kr_3set_391.ime
@@ -372,7 +372,7 @@ let bufAssemble = (normalise) => {
let isBufferEmpty = (buf) => buf[0] === undefined && buf[1] === undefined && buf[2] === undefined
let isBufferNotEmpty = (buf) => buf[0] !== undefined || buf[1] !== undefined || buf[2] !== undefined
let bufDebugStringify = (buf) => [0,1,2].map(i => (buf[i] == undefined) ? "·" : `\\u${buf[i].codePointAt(0).toString(16).toUpperCase()}`).join(' ')
-return Object.freeze({"n":"세벌식 공자판","v":"one","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]]),
"l":"koKR",
// return: [displayed output, composed output]
diff --git a/assets/keylayout/ko_kr_3set_shin_03.ime b/assets/keylayout/ko_kr_3set_shin_03.ime
index c85dd7277..43d460d20 100644
--- a/assets/keylayout/ko_kr_3set_shin_03.ime
+++ b/assets/keylayout/ko_kr_3set_shin_03.ime
@@ -382,7 +382,7 @@ let bufAssemble = (normalise) => {
let isBufferEmpty = (buf) => buf[0] === undefined && buf[1] === undefined && buf[2] === undefined
let isBufferNotEmpty = (buf) => buf[0] !== undefined || buf[1] !== undefined || buf[2] !== undefined
let bufDebugStringify = (buf) => [0,1,2].map(i => (buf[i] == undefined) ? "·" : `\\u${buf[i].codePointAt(0).toString(16).toUpperCase()}`).join(' ')
-return Object.freeze({"n":"신세벌식 ’03","v":"one","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]]),
"l":"koKR",
// return: [displayed output, composed output]
diff --git a/assets/keylayout/ko_kr_3set_shin_p2.ime b/assets/keylayout/ko_kr_3set_shin_p2.ime
index 51dfb3e48..514d08a97 100644
--- a/assets/keylayout/ko_kr_3set_shin_p2.ime
+++ b/assets/keylayout/ko_kr_3set_shin_p2.ime
@@ -382,7 +382,7 @@ let bufAssemble = (normalise) => {
let isBufferEmpty = (buf) => buf[0] === undefined && buf[1] === undefined && buf[2] === undefined
let isBufferNotEmpty = (buf) => buf[0] !== undefined || buf[1] !== undefined || buf[2] !== undefined
let bufDebugStringify = (buf) => [0,1,2].map(i => (buf[i] == undefined) ? "·" : `\\u${buf[i].codePointAt(0).toString(16).toUpperCase()}`).join(' ')
-return Object.freeze({"n":"신세벌식 P2","v":"one","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]]),
"l":"koKR",
// return: [displayed output, composed output]
diff --git a/assets/keylayout/ko_kr_teletype_changbongson.ime b/assets/keylayout/ko_kr_teletype_changbongson.ime
index 3551715fb..daaca76b2 100644
--- a/assets/keylayout/ko_kr_teletype_changbongson.ime
+++ b/assets/keylayout/ko_kr_teletype_changbongson.ime
@@ -258,7 +258,7 @@ let states = {"keylayouts":[[""],[undefined],
let reset = () => {
states.code = 0
}
-return Object.freeze({"n":"체시ᄂ 자ᄋ보ᄋ서ᄂ","v":"one","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]]),
"l":"koKRabc",
// return: [displayed output, composed output]
diff --git a/assets/keylayout/ko_kr_teletype_ksx.ime b/assets/keylayout/ko_kr_teletype_ksx.ime
index ec9e881f3..028f10023 100644
--- a/assets/keylayout/ko_kr_teletype_ksx.ime
+++ b/assets/keylayout/ko_kr_teletype_ksx.ime
@@ -258,7 +258,7 @@ let states = {"keylayouts":[[""],[undefined],
let reset = () => {
states.code = 0
}
-return Object.freeze({"n":"체시ᄂ 두버ᄅ시ᄀ","v":"one","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]]),
"l":"koKRabc",
// return: [displayed output, composed output]
diff --git a/src/net/torvald/terrarum/worlddrawer/WorldCamera.kt b/src/net/torvald/terrarum/worlddrawer/WorldCamera.kt
index 253dec042..50c992dfa 100644
--- a/src/net/torvald/terrarum/worlddrawer/WorldCamera.kt
+++ b/src/net/torvald/terrarum/worlddrawer/WorldCamera.kt
@@ -2,12 +2,16 @@ package net.torvald.terrarum.worlddrawer
import com.badlogic.gdx.Gdx
import com.jme3.math.FastMath
-import net.torvald.terrarum.*
+import net.torvald.terrarum.App
+import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
+import net.torvald.terrarum.ceilInt
import net.torvald.terrarum.gameactors.ActorWithBody
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.gameworld.fmod
+import net.torvald.terrarum.sqr
import org.dyn4j.geometry.Vector2
+import kotlin.math.roundToInt
/**
* Created by minjaesong on 2016-12-30.
@@ -114,8 +118,8 @@ object WorldCamera {
val camSpeed = (1f - (1f / (2f * fpsRatio))).coerceIn(0.5f, 1f)
- x = FastMath.interpolateLinear(camSpeed, oldX.toFloat(), newX.toFloat()).floorInt() fmod worldWidth
- y = FastMath.interpolateLinear(camSpeed, oldY.toFloat(), newY.toFloat()).floorInt().clampCameraY(world)
+ x = FastMath.interpolateLinear(camSpeed, oldX.toFloat(), newX.toFloat()).roundToInt() fmod worldWidth
+ y = FastMath.interpolateLinear(camSpeed, oldY.toFloat(), newY.toFloat()).roundToInt().clampCameraY(world)
xEnd = x + width
yEnd = y + height