blob: 327afdd1fb351a9d07428efdc39cfb7e74af9da7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
package com.dulkirfabric.util
import com.dulkirfabric.DulkirModFabric.mc
import com.dulkirfabric.events.HudRenderEvent
import meteordevelopment.orbit.EventHandler
import net.minecraft.client.gui.DrawContext
import net.minecraft.text.Text
import java.time.Duration
object HudRenderUtil {
private var curTitle: Text? = null
private var clearTime: Long = -1
private fun drawTitle(context: DrawContext, content: Text) {
val matrices = context.matrices
val tr = mc.textRenderer
val w = tr.getWidth(content)
val sf: Float = mc.window.scaledWidth / w.toFloat() / 3
matrices.push()
matrices.translate(mc.window.scaledWidth / 3f, mc.window.scaledHeight / 2f, 0f)
matrices.scale(sf, sf, 1f)
context.drawText(tr, content, 0, -tr.fontHeight / 2, -1, true)
matrices.pop()
}
fun drawTitle(content: Text, duration: Duration) {
curTitle = content
clearTime = System.currentTimeMillis() + duration.toMillis()
}
@EventHandler
fun onHudRender(event: HudRenderEvent) {
val content = curTitle ?: return
if (System.currentTimeMillis() >= clearTime) {
curTitle = null
return
}
drawTitle(event.context, content)
}
}
|