Skip to content
On this page
通用

KattonClientRenderApi

top.katton.apicommon/src/main/kotlin/top/katton/api/KattonClientRenderApi.kt
屏幕空间渲染回调上下文。

HudRenderContext

HudRenderContext通用数据类
kotlin
data class HudRenderContext( val graphics: GuiGraphicsExtractor, val tickDelta: Float )

屏幕空间渲染回调上下文。

包含 HUD 渲染所需的图形上下文和时间信息。

属性

属性说明
graphicsMinecraft 在运行时提供的 GUI 图形对象(GuiGraphics)。
tickDelta用于平滑动画的局部 tick 时间。

WorldRenderContext

WorldRenderContext通用数据类
kotlin
data class WorldRenderContext( val camera: CameraRenderState?, val tickDelta: Float )

世界空间渲染回调上下文。

包含 3D 世界渲染所需的矩阵和相机信息。

属性

属性说明
camera当前相机实例,可能为 null。
tickDelta用于平滑动画的局部 tick 时间。

HudRenderLayer

HudRenderLayer通用枚举类
kotlin
enum class HudRenderLayer

HUD 渲染回调的排序分组。

渲染器按 BACKGROUND -> NORMAL -> FOREGROUND 的顺序处理。

WorldRenderLayer

WorldRenderLayer通用枚举类
kotlin
enum class WorldRenderLayer

世界渲染回调的排序分组。

渲染器按 EARLY -> NORMAL -> LATE 的顺序处理。

registerHudRenderer

registerHudRenderer通用函数
kotlin
fun registerHudRenderer(id: String, render: (HudRenderContext) -> Unit)

通过 [id] 注册或替换一个 HUD 渲染器。

该渲染器会在每帧 HUD 渲染期间调用。 默认使用 NORMAL 图层和优先级 0。

参数

参数说明
id此渲染器的唯一标识符。
render接收 HudRenderContext 的渲染回调。

registerHudRenderer

registerHudRenderer通用函数
kotlin
fun registerHudRenderer(id: String, layer: HudRenderLayer, priority: Int = 0, render: (HudRenderContext) -> Unit)

通过 [id] 注册或替换一个 HUD 渲染器,并指定 [layer] 和 [priority]。

同一图层内,优先级数值越低越早渲染。 图层按 BACKGROUND -> NORMAL -> FOREGROUND 的顺序渲染。

参数

参数说明
id此渲染器的唯一标识符。
layer决定绘制顺序的渲染图层。
priority图层内优先级,数值越低越早渲染。
render接收 HudRenderContext 的渲染回调。

unregisterHudRenderer

unregisterHudRenderer通用函数
kotlin
fun unregisterHudRenderer(id: String): Boolean

按 [id] 移除一个 HUD 渲染器。

参数

参数说明
id要移除的渲染器标识符。

返回值

如果找到并移除了渲染器则返回 true,否则返回 false。

registerWorldRenderer

registerWorldRenderer通用函数
kotlin
fun registerWorldRenderer(id: String, render: (WorldRenderContext) -> Unit)

通过 [id] 注册或替换一个世界空间渲染器。

该渲染器会在每帧世界渲染期间调用。 默认使用 NORMAL 图层和优先级 0。

参数

参数说明
id此渲染器的唯一标识符。
render接收 WorldRenderContext 的渲染回调。

registerWorldRenderer

registerWorldRenderer通用函数
kotlin
fun registerWorldRenderer(id: String, layer: WorldRenderLayer, priority: Int = 0, render: (WorldRenderContext) -> Unit)

通过 [id] 注册或替换一个世界渲染器,并指定 [layer] 和 [priority]。

同一图层内,优先级数值越低越早渲染。 图层按 EARLY -> NORMAL -> LATE 的顺序渲染。

参数

参数说明
id此渲染器的唯一标识符。
layer决定绘制顺序的渲染图层。
priority图层内优先级,数值越低越早渲染。
render接收 WorldRenderContext 的渲染回调。

unregisterWorldRenderer

unregisterWorldRenderer通用函数
kotlin
fun unregisterWorldRenderer(id: String): Boolean

按 [id] 移除一个世界空间渲染器。

参数

参数说明
id要移除的渲染器标识符。

返回值

如果找到并移除了渲染器则返回 true,否则返回 false。

clearClientRenderers

clearClientRenderers通用函数
kotlin
fun clearClientRenderers()

清除所有客户端渲染回调,包括 HUD 和世界渲染器。

可用于脚本重载期间的清理,或重置渲染状态。

dispatchHudRender

dispatchHudRender通用函数
kotlin
@JvmName("dispatchHudRender")
@JvmName("dispatchHudRender") fun dispatchHudRender(graphics: GuiGraphicsExtractor, tickDelta: Float)

内部分发器:由平台渲染钩子调用,用于执行所有 HUD 渲染器。

参数

参数说明
graphicsGUI 图形上下文。
tickDelta局部 tick 时间。

dispatchWorldRender

dispatchWorldRender通用函数
kotlin
@JvmName("dispatchWorldRender")
@JvmName("dispatchWorldRender") fun dispatchWorldRender(camera: CameraRenderState?, tickDelta: Float)

内部分发器:由平台渲染钩子调用,用于执行所有世界渲染器。

参数

参数说明
camera相机实例。
tickDelta局部 tick 时间。

drawHudText

drawHudText通用函数
kotlin
fun drawHudText(ctx: HudRenderContext, message: Any?, x: Int, y: Int, color: Int = 0xFFFFFF, shadow: Boolean = true)

使用当前 [HudRenderContext] 在 HUD 上绘制文本。

参数

参数说明
ctxHUD 渲染上下文。
message要绘制的文本;如果不是 Component,会自动转换。
x屏幕坐标中的 X 位置。
y屏幕坐标中的 Y 位置。
colorARGB 格式的文本颜色,默认为白色。
shadow是否绘制阴影,默认 true。

返回值

如果绘制成功则返回 true,否则返回 false。

fillHudRect

fillHudRect通用函数
kotlin
fun fillHudRect(ctx: HudRenderContext, x1: Int, y1: Int, x2: Int, y2: Int, color: Int)

使用当前 [HudRenderContext] 在 HUD 上绘制一个实心矩形。

参数

参数说明
ctxHUD 渲染上下文。
x1左边缘 X 坐标。
y1上边缘 Y 坐标。
x2右边缘 X 坐标。
y2下边缘 Y 坐标。
colorARGB 格式的填充颜色。

返回值

如果绘制成功则返回 true,否则返回 false。

drawHudTexture

drawHudTexture通用函数
kotlin
fun drawHudTexture(ctx: HudRenderContext, texture: String, x: Int, y: Int, width: Int, height: Int, u0: Float = 0f, u1: Float = 1f, v0: Float = 0f, v1: Float = 1f): Boolean

使用当前 [HudRenderContext] 在 HUD 上绘制一个纹理区域。

参数

参数说明
ctxHUD 渲染上下文。
texture纹理标识符字符串。
x屏幕上的 X 位置。
y屏幕上的 Y 位置。
width绘制宽度。
height绘制高度。
u0纹理区域的 U 起始坐标,默认 0。
u1纹理区域的 U 结束坐标,默认 1。
v0纹理区域的 V 起始坐标,默认 0。
v1纹理区域的 V 结束坐标,默认 1。

返回值

如果绘制成功则返回 true;如果纹理 ID 无效则返回 false。

drawLine3D

drawLine3D通用函数
kotlin
fun drawLine3D(ctx: WorldRenderContext, x1: Double, y1: Double, z1: Double, x2: Double, y2: Double, z2: Double, argbColor: Int, lineWidth: Float = 1.0f): Boolean

使用世界坐标和 ARGB 颜色绘制一条 3D 线段。

通过 VertexConsumer 和 RenderType 进行实际 GPU 网格渲染。

参数

参数说明
ctx世界渲染上下文。
x1世界空间中的起点 X 坐标。
y1世界空间中的起点 Y 坐标。
z1世界空间中的起点 Z 坐标。
x2世界空间中的终点 X 坐标。
y2世界空间中的终点 Y 坐标。
z2世界空间中的终点 Z 坐标。
argbColorARGB 格式的线条颜色。
lineWidth线条宽度,默认 1.0。

返回值

如果绘制成功则返回 true,否则返回 false。