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 控制。

相关条目