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控制。
相关条目
- ModConfig - 4 个相关配置项
- FoodValues - 数值来源
- IAppleCoreAccessor -
isFood与饱和度读取 - TooltipOverlayHandler - 同一功能集的 tooltip 分支
- DebugInfoHandler - 同一功能集的 F3 分支
- ModInfo -
MODID_LOWER的定义处