package net.shadowfacts.shadowui.view import net.minecraft.client.MinecraftClient import net.minecraft.client.font.TextRenderer import net.shadowfacts.shadowui.geometry.Size import net.shadowfacts.shadowui.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) } }