diff --git a/src/net/torvald/terrarum/TestTestTest.kt b/src/net/torvald/terrarum/TestTestTest.kt index 34af9b3a1..3a50ea20a 100644 --- a/src/net/torvald/terrarum/TestTestTest.kt +++ b/src/net/torvald/terrarum/TestTestTest.kt @@ -27,6 +27,7 @@ class TestTestTest : ApplicationAdapter() { gameFont = GameFontBase(false) //gameFont = BitmapFont() + } val text = arrayOf( @@ -67,6 +68,8 @@ class TestTestTest : ApplicationAdapter() { Gdx.graphics.setTitle("$GAME_NAME — F: ${Gdx.graphics.framesPerSecond}") + (gameFont as GameFontBase).reload("bg") + batch.inBatch { text.forEachIndexed { index, s -> diff --git a/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt b/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt index d719468f6..fc8837897 100644 --- a/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt +++ b/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt @@ -156,6 +156,8 @@ class GameFontBase(val noShadow: Boolean) : BitmapFont() { "thai_variable.tga", "puae000-e0ff.tga" ) + private val cyrilic_bg = "cyrilic_bulgarian_variable.tga" + private val cyrilic_sr = "cyrilic_serbian_variable.tga" private val codeRange = arrayOf( // MUST BE MATCHING WITH SHEET INDICES!! 0..0xFF, 0xAC00..0xD7A3, @@ -256,6 +258,31 @@ class GameFontBase(val noShadow: Boolean) : BitmapFont() { } + fun reload(locale: String) { + if (locale.startsWith("ru")) { + val pixmap = Pixmap(Gdx.files.internal(fontParentDir + fileList[SHEET_CYRILIC_VARW])) + val texture = Texture(pixmap) + sheets[SHEET_CYRILIC_VARW].dispose() + sheets[SHEET_CYRILIC_VARW] = TextureRegionPack(texture, W_VAR_INIT, H, HGAP_VAR, 0) + pixmap.dispose() + } + else if (locale.startsWith("bg")) { + val pixmap = Pixmap(Gdx.files.internal(fontParentDir + cyrilic_bg)) + val texture = Texture(pixmap) + sheets[SHEET_CYRILIC_VARW].dispose() + sheets[SHEET_CYRILIC_VARW] = TextureRegionPack(texture, W_VAR_INIT, H, HGAP_VAR, 0) + pixmap.dispose() + } + else if (locale.startsWith("sr")) { + val pixmap = Pixmap(Gdx.files.internal(fontParentDir + cyrilic_sr)) + val texture = Texture(pixmap) + sheets[SHEET_CYRILIC_VARW].dispose() + sheets[SHEET_CYRILIC_VARW] = TextureRegionPack(texture, W_VAR_INIT, H, HGAP_VAR, 0) + pixmap.dispose() + } + } + + override fun getLineHeight(): Float = H.toFloat() override fun getXHeight() = lineHeight @@ -320,7 +347,7 @@ class GameFontBase(val noShadow: Boolean) : BitmapFont() { ) } else { // JOHAB (assemble) HANGUL - val hangulSheet = sheets[1] + val hangulSheet = sheets[SHEET_HANGUL] val hIndex = c.toInt() - 0xAC00 val indexCho = getHanChosung(hIndex) diff --git a/src/net/torvald/terrarumsansbitmap/gdx/TextureRegionPack.kt b/src/net/torvald/terrarumsansbitmap/gdx/TextureRegionPack.kt index 5e46bd5fe..0acd15538 100644 --- a/src/net/torvald/terrarumsansbitmap/gdx/TextureRegionPack.kt +++ b/src/net/torvald/terrarumsansbitmap/gdx/TextureRegionPack.kt @@ -22,7 +22,7 @@ class TextureRegionPack( private val verticalCount = (texture.height - 2 * vFrame + vGap) / (tileH + vGap) init { - println("texture: $texture, dim: ${texture.width} x ${texture.height}, grid: $horizontalCount x $verticalCount, cellDim: $tileW x $tileH") + //println("texture: $texture, dim: ${texture.width} x ${texture.height}, grid: $horizontalCount x $verticalCount, cellDim: $tileW x $tileH") regions = Array(horizontalCount * verticalCount, { val region = TextureRegion()