diff --git a/src/net/torvald/terrarum/Ingame.kt b/src/net/torvald/terrarum/Ingame.kt index 9fdc68143..bb34e1da5 100644 --- a/src/net/torvald/terrarum/Ingame.kt +++ b/src/net/torvald/terrarum/Ingame.kt @@ -394,9 +394,15 @@ class Ingame(val batch: SpriteBatch) : Screen { /////////////// private class ThreadIngameUpdate(val ingame: Ingame): Runnable { override fun run() { + var updateTries = 0 while (ingame.updateDeltaCounter >= ingame.updateRate) { ingame.updateGame(Terrarum.deltaTime) ingame.updateDeltaCounter -= ingame.updateRate + updateTries++ + + if (updateTries >= Terrarum.UPDATE_CATCHUP_MAX_TRIES) { + break + } } } } @@ -451,9 +457,15 @@ class Ingame(val batch: SpriteBatch) : Screen { // else, NOP; } else { + var updateTries = 0 while (updateDeltaCounter >= updateRate) { updateGame(delta) updateDeltaCounter -= updateRate + updateTries++ + + if (updateTries >= Terrarum.UPDATE_CATCHUP_MAX_TRIES) { + break + } } } diff --git a/src/net/torvald/terrarum/Terrarum.kt b/src/net/torvald/terrarum/Terrarum.kt index 1b026e36b..e9a1faa78 100644 --- a/src/net/torvald/terrarum/Terrarum.kt +++ b/src/net/torvald/terrarum/Terrarum.kt @@ -116,6 +116,8 @@ object Terrarum : Screen { */ val TARGET_INTERNAL_FPS: Double = 60.0 + internal val UPDATE_CATCHUP_MAX_TRIES = 10 + diff --git a/src/net/torvald/terrarum/TerrarumAppLoader.java b/src/net/torvald/terrarum/TerrarumAppLoader.java index d7e625ce8..a0048af9a 100644 --- a/src/net/torvald/terrarum/TerrarumAppLoader.java +++ b/src/net/torvald/terrarum/TerrarumAppLoader.java @@ -34,6 +34,7 @@ public class TerrarumAppLoader implements ApplicationListener { public static final String COPYRIGHT_DATE_NAME = "Copyright 2013-2017 Torvald (minjaesong)"; public static final String GAME_LOCALE = System.getProperty("user.language") + System.getProperty("user.country"); + /** * 0xAA_BB_XXXX * AA: Major version diff --git a/src/net/torvald/terrarum/TitleScreen.kt b/src/net/torvald/terrarum/TitleScreen.kt index a2c483b47..5a8b42dc6 100644 --- a/src/net/torvald/terrarum/TitleScreen.kt +++ b/src/net/torvald/terrarum/TitleScreen.kt @@ -190,9 +190,15 @@ class TitleScreen(val batch: SpriteBatch) : Screen { else { // async update updateDeltaCounter += delta + var updateTries = 0 while (updateDeltaCounter >= updateRate) { updateScreen(delta) updateDeltaCounter -= updateRate + updateTries++ + + if (updateTries >= Terrarum.UPDATE_CATCHUP_MAX_TRIES) { + break + } } // render? just do it anyway diff --git a/src/net/torvald/terrarum/ui/UIItemList.kt b/src/net/torvald/terrarum/ui/UIItemList.kt index a17a0ea55..0f3d5f1c4 100644 --- a/src/net/torvald/terrarum/ui/UIItemList.kt +++ b/src/net/torvald/terrarum/ui/UIItemList.kt @@ -31,13 +31,14 @@ class UIItemList( val inactiveCol: Color = Color(0xc0c0c0_ff.toInt()), val backgroundCol: Color = Color(0x242424_80), val backgroundBlendMode: String = BlendMode.NORMAL, - val kinematic: Boolean = false + val kinematic: Boolean = false, + val border: Int = 0 ) : UIItem(parentUI) { init { itemList.forEachIndexed { index, item -> - item.posX = this.posX - item.posY = if (index == 0) this.posY else itemList[index - 1].posY + itemList[index - 1].height + item.posX = this.posX + border + item.posY = if (index == 0) this.posY + border else itemList[index - 1].posY + itemList[index - 1].height } } diff --git a/src/net/torvald/terrarum/ui/UITitleRemoConModules.kt b/src/net/torvald/terrarum/ui/UITitleRemoConModules.kt index ec738d1d2..25fd4b55e 100644 --- a/src/net/torvald/terrarum/ui/UITitleRemoConModules.kt +++ b/src/net/torvald/terrarum/ui/UITitleRemoConModules.kt @@ -40,6 +40,9 @@ class UITitleRemoConModules(val superMenu: UICanvas) : UICanvas() { private val moduleAreaHMargin = 48 + + private val moduleAreaBorder = 8 + private val moduleAreaWidth = (Terrarum.WIDTH * 0.75).toInt() - moduleAreaHMargin private val moduleAreaHeight = Terrarum.HEIGHT - moduleAreaHMargin * 2 @@ -50,7 +53,7 @@ class UITitleRemoConModules(val superMenu: UICanvas) : UICanvas() { moduleInfoCells.add(UIItemModuleInfoCell( this, it.first, - moduleAreaWidth, + moduleAreaWidth - 2 * moduleAreaBorder, 0, 0 // placeholder )) } @@ -62,7 +65,8 @@ class UITitleRemoConModules(val superMenu: UICanvas) : UICanvas() { (Terrarum.WIDTH * 0.25f).toInt(), moduleAreaHMargin, moduleAreaWidth, moduleAreaHeight, - inactiveCol = Color.WHITE + inactiveCol = Color.WHITE, + border = moduleAreaBorder )