diff --git a/assets/graphics/fonts/terrarum-sans-bitmap/devanagari_bengali_variable.tga b/assets/graphics/fonts/terrarum-sans-bitmap/devanagari_bengali_variable.tga index cec843b7d..98b89a2c6 100755 --- a/assets/graphics/fonts/terrarum-sans-bitmap/devanagari_bengali_variable.tga +++ b/assets/graphics/fonts/terrarum-sans-bitmap/devanagari_bengali_variable.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b9187348c33112b6a987df1b0896c399a0daaf9602603cef6c865abfa1a12769 +oid sha256:934006f201164a2d44b2e2ab3cc9a0d7f9bf5042e9b1071d6e23756f8767f3cc size 327698 diff --git a/assets/graphics/fonts/terrarum-sans-bitmap/enclosed_alphanumeric_supplement_variable.tga b/assets/graphics/fonts/terrarum-sans-bitmap/enclosed_alphanumeric_supplement_variable.tga new file mode 100644 index 000000000..75d4f9ac5 --- /dev/null +++ b/assets/graphics/fonts/terrarum-sans-bitmap/enclosed_alphanumeric_supplement_variable.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:582d42ae7f1872d65161756fef488433305d6b240235fb2fcfd96ab30f1b2ca8 +size 327698 diff --git a/assets/graphics/fonts/terrarum-sans-bitmap/latinExtA_variable.tga b/assets/graphics/fonts/terrarum-sans-bitmap/latinExtA_variable.tga index fc54ad8b8..1a6eaee49 100755 --- a/assets/graphics/fonts/terrarum-sans-bitmap/latinExtA_variable.tga +++ b/assets/graphics/fonts/terrarum-sans-bitmap/latinExtA_variable.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7d8457b67ae813c4a77a173023927f2aeb923afb0cf74d2c5a83a282c86217c2 +oid sha256:278c6cf9e08d896653db77bbd78dcfb2cc132a13637f882548ddca148aee64f3 size 163858 diff --git a/assets/graphics/fonts/terrarum-sans-bitmap/latinExtB_variable.tga b/assets/graphics/fonts/terrarum-sans-bitmap/latinExtB_variable.tga index 015b61423..3de01b05e 100755 --- a/assets/graphics/fonts/terrarum-sans-bitmap/latinExtB_variable.tga +++ b/assets/graphics/fonts/terrarum-sans-bitmap/latinExtB_variable.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7f433c74fe7cacdf01df12c4bd18991bfef4128b7b882c34f864b2464d3c705a +oid sha256:587aa0491704f6bffb0cf741d4fd18aad8c1929d3b559a7bd738de5b65f541f9 size 266258 diff --git a/assets/graphics/fonts/terrarum-sans-bitmap/letterlike_symbols_variable.tga b/assets/graphics/fonts/terrarum-sans-bitmap/letterlike_symbols_variable.tga new file mode 100644 index 000000000..88f4862f4 --- /dev/null +++ b/assets/graphics/fonts/terrarum-sans-bitmap/letterlike_symbols_variable.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5ed0220afe8e416205c4b860f84517d3a551c1c10a65af419e2ee36f087e4bc +size 102418 diff --git a/assets/graphics/fonts/terrarum-sans-bitmap/thai_variable.tga b/assets/graphics/fonts/terrarum-sans-bitmap/thai_variable.tga index 1c4c5be26..065fbc9ad 100755 --- a/assets/graphics/fonts/terrarum-sans-bitmap/thai_variable.tga +++ b/assets/graphics/fonts/terrarum-sans-bitmap/thai_variable.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6fb73d354ee1bdd3b541d7512aeb6f13241373ede26319def3d37b93e1148a52 +oid sha256:a4794221096551311bdddd5b11167c52401dec48ea1f629300ad39f40eccbc82 size 122898 diff --git a/lib/TerrarumSansBitmap.jar b/lib/TerrarumSansBitmap.jar index 014fc492e..5c7f32e67 100644 Binary files a/lib/TerrarumSansBitmap.jar and b/lib/TerrarumSansBitmap.jar differ diff --git a/src/net/torvald/terrarum/App.java b/src/net/torvald/terrarum/App.java index 53820b169..70374ecf7 100644 --- a/src/net/torvald/terrarum/App.java +++ b/src/net/torvald/terrarum/App.java @@ -895,6 +895,11 @@ public class App implements ApplicationListener { CommonResourcePool.INSTANCE.loadAll(); + // check if selected IME is accessible; if not, set selected IME to none + String selectedIME = getConfigString("inputmethod"); + if (!selectedIME.equals("none") && !IME.INSTANCE.getAllHighLayers().contains(selectedIME)) { + setConfig("inputmethod", "none"); + } if (ModMgr.INSTANCE.getModuleInfo().isEmpty()) { @@ -910,21 +915,21 @@ public class App implements ApplicationListener { // test print System.out.println("[App] Test printing every registered item"); - Terrarum.INSTANCE.getItemCodex().getItemCodex().values().stream().map(GameItem::getOriginalID).forEach((String s) -> System.out.print(s+" ")); + Terrarum.INSTANCE.getItemCodex().getItemCodex().values().stream().map(GameItem::getOriginalID).forEach( + (String s) -> System.out.print(s + " ")); System.out.println(); - // create tile atlas - printdbg(this, "Making terrain textures..."); - tileMaker = new CreateTileAtlas(); - tileMaker.invoke(false); - - - // check if selected IME is accessible; if not, set selected IME to none - String selectedIME = getConfigString("inputmethod"); - if (!selectedIME.equals("none") && !IME.INSTANCE.getAllHighLayers().contains(selectedIME)) { - setConfig("inputmethod", "none"); + try { + // create tile atlas + printdbg(this, "Making terrain textures..."); + tileMaker = new CreateTileAtlas(); + tileMaker.invoke(false); } + catch (NullPointerException e) { + throw new Error("TileMaker failed to load", e); + } + Terrarum.initialise(); diff --git a/src/net/torvald/terrarum/NoModuleDefaultTitlescreen.kt b/src/net/torvald/terrarum/NoModuleDefaultTitlescreen.kt index 424c7adfc..4bcd8f507 100644 --- a/src/net/torvald/terrarum/NoModuleDefaultTitlescreen.kt +++ b/src/net/torvald/terrarum/NoModuleDefaultTitlescreen.kt @@ -11,13 +11,39 @@ import net.torvald.terrarum.ui.Toolkit */ class NoModuleDefaultTitlescreen(batch: SpriteBatch) : IngameInstance(batch) { - private val wot = listOf( - "No Module is currently loaded.", - "Please review your Load Order on", - "assets/mods/LoadOrder.csv" - ) + private val wot = """No Module is currently loaded. +Please reconfigure your Load Order on: - private val maxtw = wot.maxOf { App.fontGame.getWidth(it) } +Derzeit ist kein Modul geladen. +Bitte konfigurieren Sie Ihren Ladeauftrag neu auf: + +Actualmente no hay ningún módulo cargado. +Vuelva a configurar su orden de carga en: + +Moduulia ei ole ladattu tällä hetkellä. +Määritä lataustilauksesi uudelleen: + +Aucun module n’est actuellement chargé. +Veuillez reconfigurer votre ordre de chargement sur : + +現在ロードされたモジュールがありません。 +次のパスでロードオーダーを再設定してください。 + +현재 불러와진 모듈이 없습니다. +다음의 경로에서 불러오기 순서를 재설정하십시오. + +В настоящее время модуль не загружен. +Измените конфигурацию вашего порядка загрузки на: + +ไม่มีการโหลดโมดูลในขณะนี้ +โปรดกำหนดค่าคำสั่งซื้อการโหลดของคุณใหม่เมื่อ: + +当前未加载任何模块。请重新配置您的加载顺序: +當前未加載任何模塊。請重新配置您的加載順序: + +\c\a assets/mods/LoadOrder.csv""".split('\n') + + private val maxtw = wot.maxOf { App.fontGameFBO.getWidth(it) } private val fbo = FrameBuffer(Pixmap.Format.RGBA8888, App.scr.width, App.scr.height, true) @@ -27,21 +53,50 @@ class NoModuleDefaultTitlescreen(batch: SpriteBatch) : IngameInstance(batch) { gdxClearAndSetBlend(0f, 0f, 0f, 0f) if (!init) { - val lh = 36f + val lh = 20f + val pbreak = 8f val th = lh * wot.size + val heights = FloatArray(wot.size) + + // build y-pos map for strings + wot.tail().forEachIndexed { index, s -> + heights[index + 1] = heights[index] + (if (s.isBlank()) pbreak else lh) + } + + // vertically centre the above + val centering = (App.scr.hf - heights.last() - App.fontGameFBO.lineHeight) / 2f + fbo.inAction(null, null) { gdxClearAndSetBlend(.094f, .094f, .094f, 1f) batch.inUse { batch.color = Color.WHITE wot.forEachIndexed { index, s -> - App.fontGame.draw(batch, s, (Toolkit.drawWidth - maxtw) / 2f, (App.scr.height - th) / 2f + lh * index) + if (s.startsWith('\\')) { + val tagsSplit = s.indexOfFirst { it == ' ' } + val tagsBulk = s.substring(0, tagsSplit) + + val tags = tagsBulk.split('\\').filter { it.isNotBlank() } + val text = s.substring(tagsSplit + 1) + + if (tags.contains("a")) batch.color = Toolkit.Theme.COL_HIGHLIGHT else batch.color = Color.WHITE + + if (tags.contains("c")) + App.fontGameFBO.draw(batch, text, (Toolkit.drawWidth - App.fontGameFBO.getWidth(text)) / 2f, heights[index] + centering) + else + App.fontGameFBO.draw(batch, text, (Toolkit.drawWidth - maxtw) / 2f, heights[index] + centering) + } + else { + batch.color = Color.WHITE + App.fontGameFBO.draw(batch, s, (Toolkit.drawWidth - maxtw) / 2f, heights[index] + centering) + } } } } } batch.inUse { + batch.color = Color.WHITE batch.draw(fbo.colorBufferTexture, 0f, 0f) } }