API 参考 / 打击特效样式(render 包)
渲染扩展点速查
三类渲染扩展点都通过 ModContext#registries() 返回的 ModRegistries 注册,统一使用 Registry#register(RegistryKey, 内容实例)(同一 location 重复注册立刻失败;注册表冻结后继续注册抛 RegistryFrozenException)。
| 扩展点 | 注册入口 | 执行顺序 | 返回 null 的语义 |
|---|---|---|---|
| 渲染滤镜 | ctx.registries().renderFilters() | 按 zOrder() 升序,层号相同按注册顺序;固定在 FULLSCREEN 层(游玩内容之上) | 不适用(apply 无返回值) |
| 背景渲染器 | ctx.registries().backgroundRenderers() | 按 zOrder() 升序,层号相同按注册顺序;固定在 BACKGROUND 层(游玩内容之下) | 不适用(render 无返回值) |
| 打击特效样式 | ctx.registries().hitEffectStyles() | 按注册顺序遍历全部 provider,所有非 null 样式同时生效并依次绘制 | 表示该 provider 不参与本次打击;全部为 null 时用默认文字特效 |
补充:
zOrder()只决定同一类回调内部的相对叠放,不改变所在层;取值可为任意整数(不受RenderLayer枚举 0-6 约束)。FilterFrame#zOrder()会把当次回调所属滤镜/背景渲染器声明的层号透传给回调内部,便于自绘内容按同一口径排序。