HUDOverlayHandler
基本信息
| 属性 |
值 |
| 类名 |
squeek.applecore.client.HUDOverlayHandler |
| 类型 |
class,18 个方法 |
| 事件 |
RenderGameOverlayEvent.Pre / .Post(priority = LOW)、ClientTickEvent |
| 图标资源 |
applecore:textures/icons.png(域为小写 MODID_LOWER) |
| 启用版本 |
Minecraft 1.7.10(仅客户端) |
功能
在原版饥饿条上叠加可视化信息:消耗进度条(画在底层)、
饱和度条,以及「手里这口食物能回复多少」的数值条。
| 方法 |
作用 |
init() |
静态入口,把实例挂到 Forge 总线 |
onPreRender(RenderGameOverlayEvent.Pre) |
画消耗进度条 |
onRender(RenderGameOverlayEvent.Post) |
画饱和度条与食物数值条 |
drawSaturationOverlay(...) |
饱和度叠加条 |
drawHungerOverlay(...) |
手中食物可回复数值的叠加条 |
drawExhaustionOverlay(...) |
消耗值进度条 |
enableAlpha(float) / disableAlpha(float) |
叠加绘制时的混合开关配对 |
onClientTick(ClientTickEvent) |
客户端 tick 处理 |
实现要点
- 两个绘制事件都注册在
EventPriority.LOW,排在其它 HUD 叠加层之后。
- 消耗进度条画在 Pre 阶段,另两项画在 Post 阶段。
onRender 中:先按 SHOW_SATURATION_OVERLAY 画饱和度条;
再检查 SHOW_FOOD_VALUES_OVERLAY 且 手上拿的是食物
(AppleCoreAPI.accessor.isFood(heldItem))才画数值条。
- 绘制前若
GL11.glIsEnabled(GL11.GL_LIGHTING) 为真则临时关闭,
绘制后按原状态恢复——enableAlpha / disableAlpha 成对使用。
- 3 个绘制开关分别受
SHOW_SATURATION_OVERLAY / SHOW_FOOD_VALUES_OVERLAY /
SHOW_FOOD_EXHAUSTION_UNDERLAY 控制。
相关条目