Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private fun correctFontRegions(atlasImageFileNameNoExtension: String) {
- val sb = StringBuilder()
- val x = "x=".intern()
- val y = "y=".intern()
- val nl = "\n".intern()
- val space = ' '
- val fontsList = files?.filter { it.extension == "fnt" } ?: return
- fontsList.forEach files@{ f ->
- val lines = lazy { f.readLines() }.value
- if (lines.any { it.contains(f.nameWithoutExtension) }) {
- val newLines = StringBuilder()
- val fontRegion = atlas.findRegion(f.nameWithoutExtension)
- val regionX = fontRegion.regionX
- val regionY = fontRegion.regionY
- lines.forEach fileLines@{ line ->
- if (line.contains(x)) {
- sb.clear()
- val strX = line.indexOf(x) + x.length
- var strXEnd = strX
- while (line[strXEnd] != space) strXEnd++
- strXEnd--
- val fontCharX = line.slice(strX..strXEnd).toInt()
- val newX = fontCharX + regionX
- sb.append(line.replaceRange(strX, strXEnd + 1, newX.toString()))
- val strY = sb.indexOf(y) + y.length
- var strYEnd = strY
- while (sb[strYEnd] != space) strYEnd++
- strYEnd--
- val fontCharY = sb.slice(strY..strYEnd).toString().toInt()
- val newY = fontCharY + regionY
- sb.replaceRange(strY, strYEnd + 1, newY.toString()).also { newLines.append(it.toString() + nl) }
- } else {
- if (line.contains(f.nameWithoutExtension)) {
- line.replace(f.nameWithoutExtension, atlasImageFileNameNoExtension).also { newLines.append(it + nl) }
- } else {
- newLines.append(line + nl)
- }
- }
- }
- f.writeText(newLines.toString())
- Gdx.app.log(f.name, "has been fixed")
- } else {
- Gdx.app.log(f.name, "has already been corrected earlier.")
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement