btexbin -> btxbook; baked shadow for TinyAlphNum

This commit is contained in:
minjaesong
2024-05-14 03:16:06 +09:00
parent ba09633b45
commit 23f4557bf2
7 changed files with 17 additions and 25 deletions

3
.gitattributes vendored
View File

@@ -10,7 +10,8 @@
*.icns filter=lfs diff=lfs merge=lfs -text *.icns filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text *.jar filter=lfs diff=lfs merge=lfs -text
*.bin filter=lfs diff=lfs merge=lfs -text *.bin filter=lfs diff=lfs merge=lfs -text
*.btxbook filter=lfs diff=lfs merge=lfs -text
*.btxform filter=lfs diff=lfs merge=lfs -text
*.tga binary diff=hex *.tga binary diff=hex
*.kra binary diff=hex *.kra binary diff=hex
*.btexbin binary diff=hex

Binary file not shown.

View File

@@ -109,7 +109,7 @@
<li><index id="emph (tag)"/><code>emph</code> — is a special case of the <code>span</code> tag. The resulting text will be <emph>red</emph></li> <li><index id="emph (tag)"/><code>emph</code> — is a special case of the <code>span</code> tag. The resulting text will be <emph>red</emph></li>
<li><index id="itemname (tag)"/><code>itemname</code> — is a special case of the <code>span</code> tag used to highlight the name of the ingame item. The resulting text will be <itemname>blue</itemname></li> <li><index id="itemname (tag)"/><code>itemname</code> — is a special case of the <code>span</code> tag used to highlight the name of the ingame item. The resulting text will be <itemname>blue</itemname></li>
<li><index id="targetname (tag)"/><code>targetname</code> — is a special case of the <code>span</code> tag used to highlight the name of an arbitrary target or goals. The resulting text will be <targetname>green</targetname></li> <li><index id="targetname (tag)"/><code>targetname</code> — is a special case of the <code>span</code> tag used to highlight the name of an arbitrary target or goals. The resulting text will be <targetname>green</targetname></li>
<li><index id="code (tag)"/><code>code</code> — is a special case of the <code>span</code> tag used to highlight the code element in-line. The resulting text will be <code>teal and monospaced</code></li> <li><index id="code (tag)"/><code>code</code> — is a special case of the <code>span</code> tag used to highlight the code element in-line. The resulting text will be <code>maroon and monospaced</code></li>
<li><index id="br (tag)"/><code>br</code> — self-closing tag; inserts an anonymous line break</li> <li><index id="br (tag)"/><code>br</code> — self-closing tag; inserts an anonymous line break</li>
<li><index id="newpage (tag)"/><code>newpage</code> — self-closing tag; inserts an anonymous page break</li> <li><index id="newpage (tag)"/><code>newpage</code> — self-closing tag; inserts an anonymous page break</li>
<li><index id="anonbreak (tag)"/><code>anonbreak</code> — self-closing tag; inserts a paragraph break in the text. The break will be in a form of a long straight line on the centre of the text. Useful for typesetting novels</li> <li><index id="anonbreak (tag)"/><code>anonbreak</code> — self-closing tag; inserts a paragraph break in the text. The break will be in a form of a long straight line on the centre of the text. Useful for typesetting novels</li>

View File

@@ -1614,7 +1614,7 @@ object BTeXParser {
val ccDefault = TerrarumSansBitmap.toColorCode(0,0,0) val ccDefault = TerrarumSansBitmap.toColorCode(0,0,0)
val ccBucks = TerrarumSansBitmap.toColorCode(5,0,0) val ccBucks = TerrarumSansBitmap.toColorCode(5,0,0)
val ccCode = TerrarumSansBitmap.toColorCode(0,4,8) val ccCode = TerrarumSansBitmap.toColorCode(8,0,0)
val ccHref = TerrarumSansBitmap.toColorCode(0,3,11) val ccHref = TerrarumSansBitmap.toColorCode(0,3,11)
val ccEmph = TerrarumSansBitmap.toColorCode(0xfc11) val ccEmph = TerrarumSansBitmap.toColorCode(0xfc11)
val ccItemName = TerrarumSansBitmap.toColorCode(0xf03b) val ccItemName = TerrarumSansBitmap.toColorCode(0xf03b)

View File

@@ -15,7 +15,7 @@ object TinyAlphNum : BitmapFont() {
internal const val W = 7 internal const val W = 7
internal const val H = 13 internal const val H = 13
internal val fontSheet = TextureRegionPack("./assets/graphics/fonts/7x13_Tamzen7x14b.tga", W, H) internal val fontSheet = TextureRegionPack("./assets/graphics/fonts/7x13_Tamzen7x14b.tga", W+1, H+1)
init { init {
@@ -34,12 +34,10 @@ object TinyAlphNum : BitmapFont() {
} }
lateinit var colMain: Color lateinit var colMain: Color
lateinit var colShadow: Color
override fun draw(batch: Batch, text: CharSequence, x: Float, y: Float): GlyphLayout? { override fun draw(batch: Batch, text: CharSequence, x: Float, y: Float): GlyphLayout? {
val originalColour = batch.color.cpy() val originalColour = batch.color.cpy()
colMain = batch.color.cpy() colMain = batch.color.cpy()
colShadow = colMain.cpy().mul(1f, 1f, 1f, 0.5f)
val x = x.roundToFloat() val x = x.roundToFloat()
val y = y.roundToFloat() val y = y.roundToFloat()
@@ -52,15 +50,8 @@ object TinyAlphNum : BitmapFont() {
val colour = getColour(cchigh, cclow) val colour = getColour(cchigh, cclow)
colMain = colour colMain = colour
colShadow = colMain.cpy().mul(0.5f, 0.5f, 0.5f, 1f)
} }
else if (c in 0.toChar()..255.toChar()) { else if (c in 0.toChar()..255.toChar()) {
batch.color = colShadow
batch.draw(fontSheet.get(c.code % 16, c.code / 16), x + charsPrinted * W + 1, y)
batch.draw(fontSheet.get(c.code % 16, c.code / 16), x + charsPrinted * W, y + 1)
batch.draw(fontSheet.get(c.code % 16, c.code / 16), x + charsPrinted * W + 1, y + 1)
batch.color = colMain batch.color = colMain
batch.draw(fontSheet.get(c.code % 16, c.code / 16), x + charsPrinted * W, y) batch.draw(fontSheet.get(c.code % 16, c.code / 16), x + charsPrinted * W, y)

View File

@@ -24,11 +24,11 @@ import kotlin.system.measureTimeMillis
*/ */
class BTeXTest : ApplicationAdapter() { class BTeXTest : ApplicationAdapter() {
// val filePath = "btex.xml" val filePath = "btex.xml"
val filePath = "test.xml" // val filePath = "test.xml"
// val filePath = "literature/en/daniel_defoe_robinson_crusoe.xml" // val filePath = "literature/en/daniel_defoe_robinson_crusoe.btxbook"
// val filePath = "literature/ruRU/anton_chekhov_palata_no_6.xml" // val filePath = "literature/ruRU/anton_chekhov_palata_no_6.xml"
// val filePath = "literature/koKR/yisang_nalgae.xml" // val filePath = "literature/koKR/yisang_nalgae.btxbook"
private lateinit var document: BTeXDocument private lateinit var document: BTeXDocument
@@ -54,7 +54,7 @@ class BTeXTest : ApplicationAdapter() {
bg = TextureRegion(Texture(Gdx.files.internal("test_assets/real_bg_with_guides.png"))) bg = TextureRegion(Texture(Gdx.files.internal("test_assets/real_bg_with_guides.png")))
val isBookFinalised = filePath.endsWith(".btexbin") val isBookFinalised = filePath.endsWith(".btxbook")
if (!isBookFinalised) { if (!isBookFinalised) {
measureTimeMillis { measureTimeMillis {
@@ -65,7 +65,7 @@ class BTeXTest : ApplicationAdapter() {
println("Time spent on typesetting [ms]: $it") println("Time spent on typesetting [ms]: $it")
} }
/*measureTimeMillis { measureTimeMillis {
document.finalise() document.finalise()
documentHandler.dispose() documentHandler.dispose()
}.also { }.also {
@@ -73,10 +73,10 @@ class BTeXTest : ApplicationAdapter() {
} }
measureTimeMillis { measureTimeMillis {
document.serialise(File("./assets/mods/basegame/books/${filePath.replace(".xml", ".btexbin")}")) document.serialise(File("./assets/mods/basegame/books/${filePath.replace(".xml", ".btxbook")}"))
}.also { }.also {
println("Time spent on serialisation [ms]: $it") println("Time spent on serialisation [ms]: $it")
}*/ }
} }
else { else {
measureTimeMillis { measureTimeMillis {