diff options
author | Linnea Gräf <nea@nea.moe> | 2025-01-25 00:40:58 +0100 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2025-01-25 00:40:58 +0100 |
commit | af991c28062e405a02c139d3d67c4f86a9043e35 (patch) | |
tree | 29bd1d1568b707be04915f47a1bf558e923cd3fe /src/main/kotlin/util | |
parent | e4f585c173ca0a5d09130ab97c18c48f91fe5ad7 (diff) | |
download | ultra-notifier-af991c28062e405a02c139d3d67c4f86a9043e35.tar.gz ultra-notifier-af991c28062e405a02c139d3d67c4f86a9043e35.tar.bz2 ultra-notifier-af991c28062e405a02c139d3d67c4f86a9043e35.zip |
.
Diffstat (limited to 'src/main/kotlin/util')
-rw-r--r-- | src/main/kotlin/util/minecrat/MC.kt | 11 | ||||
-rw-r--r-- | src/main/kotlin/util/minecrat/TextUtil.kt | 1 | ||||
-rw-r--r-- | src/main/kotlin/util/minecrat/infer.kt | 15 | ||||
-rw-r--r-- | src/main/kotlin/util/render/ScreenRenderUtils.kt | 33 |
4 files changed, 59 insertions, 1 deletions
diff --git a/src/main/kotlin/util/minecrat/MC.kt b/src/main/kotlin/util/minecrat/MC.kt new file mode 100644 index 0000000..d942982 --- /dev/null +++ b/src/main/kotlin/util/minecrat/MC.kt @@ -0,0 +1,11 @@ +package moe.nea.ultranotifier.util.minecrat + +import net.minecraft.client.MinecraftClient + +object MC { + val font get() = instance.textRenderer + val instance get() = MinecraftClient.getInstance() + val inGameHud get() = instance.inGameHud!! + val chatHud get() = inGameHud.chatHud!! + +} diff --git a/src/main/kotlin/util/minecrat/TextUtil.kt b/src/main/kotlin/util/minecrat/TextUtil.kt new file mode 100644 index 0000000..2a09e13 --- /dev/null +++ b/src/main/kotlin/util/minecrat/TextUtil.kt @@ -0,0 +1 @@ +package moe.nea.ultranotifier.util.minecrat diff --git a/src/main/kotlin/util/minecrat/infer.kt b/src/main/kotlin/util/minecrat/infer.kt new file mode 100644 index 0000000..a109bbd --- /dev/null +++ b/src/main/kotlin/util/minecrat/infer.kt @@ -0,0 +1,15 @@ +@file:OptIn(ExperimentalContracts::class) + +package moe.nea.ultranotifier.util.minecrat + +import moe.nea.ultranotifier.mixin.AccessorChatHud +import net.minecraft.client.gui.hud.ChatHud +import kotlin.contracts.ExperimentalContracts +import kotlin.contracts.contract + +fun ChatHud.accessor(): AccessorChatHud { + contract { + returns() implies (this@accessor is AccessorChatHud) + } + return this as AccessorChatHud +} diff --git a/src/main/kotlin/util/render/ScreenRenderUtils.kt b/src/main/kotlin/util/render/ScreenRenderUtils.kt index 224ccb4..af8424a 100644 --- a/src/main/kotlin/util/render/ScreenRenderUtils.kt +++ b/src/main/kotlin/util/render/ScreenRenderUtils.kt @@ -1,13 +1,36 @@ package moe.nea.ultranotifier.util.render +//#if MC > 1.16 import gg.essential.universal.UGraphics import gg.essential.universal.UMatrixStack import juuxel.libninepatch.NinePatch import juuxel.libninepatch.TextureRenderer +import moe.nea.ultranotifier.util.minecrat.MC +import net.minecraft.client.gui.DrawContext +import net.minecraft.client.util.math.MatrixStack import net.minecraft.util.Identifier import java.awt.Color +//#endif + object ScreenRenderUtils { + //#if MC > 1.16 + @JvmStatic + fun umatrix( + matrixStack: MatrixStack + ) = UMatrixStack(matrixStack) + + //#endif + //#if MC >= 1.20 + @JvmStatic + fun umatrix( + context: DrawContext + ) = UMatrixStack(context.matrices) + //#endif + + @JvmStatic + fun umatrix() = UMatrixStack() + fun fillRect( matrixStack: UMatrixStack, left: Double, top: Double, @@ -82,7 +105,7 @@ object ScreenRenderUtils { ) { val x1 = left + x.toDouble() val y1 = top + y.toDouble() - val x2 = x1+ width + val x2 = x1 + width val y2 = y1 + height graphics.pos(matrixStack, x1, y1, 0.0) .tex(u1.toDouble(), v1.toDouble()) @@ -101,4 +124,12 @@ object ScreenRenderUtils { graphics.drawDirect() } + fun getTextWidth(text: String): Int { + return MC.font.getWidth(text) + } + + fun renderText(matrixStack: UMatrixStack, x: Double, y: Double, text: String) { + UGraphics.drawString(matrixStack, text, x.toFloat(), y.toFloat(), -1, false) + } + } |