ASMR/src/main/kotlin/net/shadowfacts/cacao/view/Label.kt

42 lines
886 B
Kotlin

package net.shadowfacts.cacao.view
import net.minecraft.client.MinecraftClient
import net.minecraft.client.font.TextRenderer
import net.shadowfacts.cacao.geometry.Size
import net.shadowfacts.cacao.util.Color
/**
* @author shadowfacts
*/
class Label(text: String): View() {
companion object {
val textRenderer: TextRenderer
get() = MinecraftClient.getInstance().textRenderer
}
var text: String = text
set(value) {
field = value
updateIntrinsicContentSize()
}
var textColor = Color(0x404040)
override fun wasAdded() {
super.wasAdded()
updateIntrinsicContentSize()
}
private fun updateIntrinsicContentSize() {
val width = textRenderer.getStringWidth(text)
val height = textRenderer.fontHeight
intrinsicContentSize = Size(width.toDouble(), height.toDouble())
}
override fun drawContent() {
textRenderer.draw(text, 0f, 0f, textColor.argb)
}
}