From da81de625861abef6c9f94bf3eeb5735e6f55df8 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Tue, 5 Oct 2021 21:56:14 +0900 Subject: [PATCH] 32 bit warning sign --- assets/locales/en/terrarum.json | 5 +++- assets/locales/koKR/terrarum.json | 5 +++- src/net/torvald/terrarum/App.java | 6 ++-- src/net/torvald/terrarum/TitleScreen.kt | 28 ++++++++++++++++++- src/net/torvald/terrarum/langpack/Lang.kt | 14 ++++++---- .../terrarum/modulebasegame/ui/UIRemoCon.kt | 2 +- .../modulebasegame/ui/UITitleLanguage.kt | 4 +-- src/net/torvald/terrarum/ui/Toolkit.kt | 13 +++++++-- 8 files changed, 60 insertions(+), 17 deletions(-) diff --git a/assets/locales/en/terrarum.json b/assets/locales/en/terrarum.json index e5b83e640..901e1970c 100644 --- a/assets/locales/en/terrarum.json +++ b/assets/locales/en/terrarum.json @@ -8,5 +8,8 @@ "MENU_CREDIT_GPL_DNT" : "GPL", "GAME_ACTION_MOVE_VERB" : "Move", "GAME_ACTION_ZOOM" : "Zoom", - "MENU_LABEL_RESET" : "Reset" + "MENU_LABEL_RESET" : "Reset", + "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/" } \ No newline at end of file diff --git a/assets/locales/koKR/terrarum.json b/assets/locales/koKR/terrarum.json index bb93c13b8..c133c2fbd 100644 --- a/assets/locales/koKR/terrarum.json +++ b/assets/locales/koKR/terrarum.json @@ -7,5 +7,8 @@ "MENU_MODULES" : "모듈", "GAME_ACTION_MOVE_VERB" : "이동하기", "GAME_ACTION_ZOOM" : "확대·축소", - "MENU_LABEL_RESET" : "재설정" + "MENU_LABEL_RESET" : "재설정", + "GAME_32BIT_WARNING1": "32비트 버전의 Java를 사용중인 것 같습니다.", + "GAME_32BIT_WARNING2": "아래 링크에서 최신 64비트 Java를 내려받아 설치해주세요.", + "GAME_32BIT_WARNING3": "https://www.java.com/ko/download/" } \ No newline at end of file diff --git a/src/net/torvald/terrarum/App.java b/src/net/torvald/terrarum/App.java index 134207072..5447868b0 100644 --- a/src/net/torvald/terrarum/App.java +++ b/src/net/torvald/terrarum/App.java @@ -591,7 +591,7 @@ public class App implements ApplicationListener { setCameraPosition(0f, 0f); - int safetyTextLen = fontGame.getWidth(Lang.INSTANCE.get("APP_WARNING_HEALTH_AND_SAFETY")); + int safetyTextLen = fontGame.getWidth(Lang.INSTANCE.get("APP_WARNING_HEALTH_AND_SAFETY", true)); int logoPosX = (scr.getWidth() - logo.getRegionWidth() - safetyTextLen) >>> 1; int logoPosY = Math.round(scr.getHeight() / 15f); int textY = logoPosY + logo.getRegionHeight() - 16; @@ -620,7 +620,7 @@ public class App implements ApplicationListener { logoBatch.draw(logo, logoPosX, logoPosY); logoBatch.setColor(new Color(0x282828ff)); - fontGame.draw(logoBatch, Lang.INSTANCE.get("APP_WARNING_HEALTH_AND_SAFETY"), + fontGame.draw(logoBatch, Lang.INSTANCE.get("APP_WARNING_HEALTH_AND_SAFETY", true), logoPosX + logo.getRegionWidth(), textY ); @@ -628,7 +628,7 @@ public class App implements ApplicationListener { // some chinese stuff if (GAME_LOCALE.contentEquals("zhCN")) { for (int i = 1; i <= 4; i++) { - String s = Lang.INSTANCE.get("APP_CHINESE_HEALTHY_GAME_MSG_" + i); + String s = Lang.INSTANCE.get("APP_CHINESE_HEALTHY_GAME_MSG_" + i, true); fontGame.draw(logoBatch, s, (scr.getWidth() - fontGame.getWidth(s)) >>> 1, diff --git a/src/net/torvald/terrarum/TitleScreen.kt b/src/net/torvald/terrarum/TitleScreen.kt index c04927203..2af602b71 100644 --- a/src/net/torvald/terrarum/TitleScreen.kt +++ b/src/net/torvald/terrarum/TitleScreen.kt @@ -7,6 +7,7 @@ import com.badlogic.gdx.graphics.OrthographicCamera import com.badlogic.gdx.graphics.Pixmap import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.SpriteBatch +import com.badlogic.gdx.graphics.g2d.TextureRegion import com.badlogic.gdx.graphics.glutils.FrameBuffer import com.jme3.math.FastMath import net.torvald.random.HQRNG @@ -20,13 +21,16 @@ import net.torvald.terrarum.gameactors.ai.ActorAI import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.gameworld.WorldTime import net.torvald.terrarum.gameworld.fmod +import net.torvald.terrarum.langpack.Lang import net.torvald.terrarum.modulebasegame.IngameRenderer import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.ui.UIRemoCon import net.torvald.terrarum.modulebasegame.ui.UITitleRemoConYaml import net.torvald.terrarum.realestate.LandUtil import net.torvald.terrarum.serialise.ReadWorld +import net.torvald.terrarum.ui.Toolkit import net.torvald.terrarum.ui.UICanvas +import net.torvald.terrarum.ui.UIItemTextButton import net.torvald.terrarum.weather.WeatherMixer import net.torvald.terrarum.worlddrawer.WorldCamera import java.io.IOException @@ -113,11 +117,17 @@ class TitleScreen(batch: SpriteBatch) : IngameInstance(batch) { val uiContainer = UIContainer() - internal lateinit var uiRemoCon: UICanvas + internal lateinit var uiRemoCon: UIRemoCon internal lateinit var uiFakeBlurOverlay: UICanvas private lateinit var worldFBO: FrameBuffer + private val warning32bitJavaIcon = TextureRegion(Texture(Gdx.files.internal("assets/graphics/gui/32_bit_warning.tga"))) + + init { + warning32bitJavaIcon.flip(false, true) + } + private fun loadThingsWhileIntroIsVisible() { printdbg(this, "Intro pre-load") @@ -322,6 +332,21 @@ class TitleScreen(batch: SpriteBatch) : IngameInstance(batch) { App.fontGame.draw(batch, PostProcessor.thisIsDebugStr, 5f, App.scr.height - 24f) + + + batch.color = Color.WHITE + + if (App.is32BitJVM && uiRemoCon.currentRemoConContents.parent == null) { + val linegap = 4 + val imgTxtGap = 10 + val yoff = App.scr.height - App.scr.tvSafeGraphicsHeight - 64 - (3*(20+linegap)) - imgTxtGap - 9 + Toolkit.drawCentered(batch, warning32bitJavaIcon, yoff) + for (i in 0..2) { + val text = Lang.get("GAME_32BIT_WARNING${i+1}", (i != 2)) + if (i == 2) batch.color = UIItemTextButton.defaultHighlightCol + App.fontGame.draw(batch, text, ((App.scr.width - App.fontGame.getWidth(text)) / 2).toFloat(), yoff + imgTxtGap + 64f + linegap + i*(20+linegap)) + } + } } override fun pause() { @@ -356,6 +381,7 @@ class TitleScreen(batch: SpriteBatch) : IngameInstance(batch) { override fun dispose() { uiRemoCon.dispose() demoWorld.dispose() + warning32bitJavaIcon.texture.dispose() } diff --git a/src/net/torvald/terrarum/langpack/Lang.kt b/src/net/torvald/terrarum/langpack/Lang.kt index 619f763c1..4c4ebad88 100644 --- a/src/net/torvald/terrarum/langpack/Lang.kt +++ b/src/net/torvald/terrarum/langpack/Lang.kt @@ -120,19 +120,21 @@ object Lang { } - operator fun get(key: String): String { - return get(key, App.GAME_LOCALE) ?: get(key, FALLBACK_LANG_CODE) ?: "$$key" + operator fun get(key: String, capitalise: Boolean = true): String { + return getByLocale(key, App.GAME_LOCALE, capitalise) ?: getByLocale(key, FALLBACK_LANG_CODE, capitalise) ?: "$$key" } - fun get(key: String, locale: String): String? { + fun getByLocale(key: String, locale: String, capitalise: Boolean): String? { val ret = langpack["${key}_$locale"] ?: return null + fun String.CAP() = if (capitalise) this.capitalize() else this + return if (locale.startsWith("bg")) - "${App.fontGame.charsetOverrideBulgarian}${ret.capitalize()}${App.fontGame.charsetOverrideDefault}" + "${App.fontGame.charsetOverrideBulgarian}${ret.CAP()}${App.fontGame.charsetOverrideDefault}" else if (locale.startsWith("sr")) - "${App.fontGame.charsetOverrideSerbian}${ret.capitalize()}${App.fontGame.charsetOverrideDefault}" + "${App.fontGame.charsetOverrideSerbian}${ret.CAP()}${App.fontGame.charsetOverrideDefault}" else - ret.capitalize() + ret.CAP() } private fun String.getEndTag() = this.split("_").last() diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIRemoCon.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIRemoCon.kt index fb1ea2917..12ed6245a 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIRemoCon.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIRemoCon.kt @@ -24,7 +24,7 @@ open class UIRemoCon(val parent: TitleScreen, treeRepresentation: QNDTreeNode