buffer renderer

This commit is contained in:
mewhenthe
2026-04-11 22:44:23 +02:00
parent f5b5a30299
commit 7adaf4d8df
7 changed files with 64474 additions and 8 deletions

View File

@@ -0,0 +1,32 @@
package org.neoflock.neocomputers.utils;
import net.minecraft.client.Minecraft
import net.minecraft.resources.Identifier
import net.minecraft.server.packs.resources.Resource
import net.minecraft.server.packs.resources.ResourceManager
import org.neoflock.neocomputers.NeoComputers
import java.nio.charset.StandardCharsets
object FontProvider {
val map: MutableMap<Char, ArrayList<Byte>> = mutableMapOf();
fun load(loc: Identifier) { // TODO: optimize, this can totally be optimized
var man: ResourceManager = Minecraft.getInstance().resourceManager
var resource: Resource = man.getResourceOrThrow(loc)
var stream = resource.open()
while (stream.available() > 0) {
var key = Integer.parseInt(String(stream.readNBytes(5), StandardCharsets.UTF_8), 16).toChar()
stream.skip(1)
var bytes: ArrayList<Byte> = ArrayList<Byte>();
while (true) { // shut up will you
var b1 = stream.read()
if (b1 == 10) break // 10 is line break
var b2 = stream.read()
var value: Byte = Integer.parseInt(arrayOf(b1.toChar(), b2.toChar()).joinToString(""), 16).toByte()
bytes.add(value)
}
map[key] = bytes
}
NeoComputers.LOGGER.info("[FontProvider] Loaded font!");
}
}