IWailaEntityProvider
基本信息
| 属性 | 值 |
|---|---|
| 接口全名 | mcp.mobius.waila.api.IWailaEntityProvider |
| 源码 | src/main/java/mcp/mobius/waila/api/IWailaEntityProvider.java:19 |
| 作用对象 | 实体(Entity) |
| 抽象方法数 | 5 |
实体侧的 provider 接口,是 IWailaDataProvider 的对偶版本。javadoc 同样声明其方法不应由实现方主动调用(IWailaEntityProvider.java:11-14)。
功能
| 方法 | 签名要点 | 行 | 触发注册方法 |
|---|---|---|---|
getWailaOverride |
(IWailaEntityAccessor, IWailaConfigHandler) → Entity |
30 | registerOverrideEntityProvider |
getWailaHead |
(Entity, List<String>, IWailaEntityAccessor, IWailaConfigHandler) → List<String> |
45 | registerHeadProvider |
getWailaBody |
同上 | 61 | registerBodyProvider |
getWailaTail |
同上 | 77 | registerTailProvider |
getNBTData |
(EntityPlayerMP, Entity, NBTTagCompound, World) → NBTTagCompound |
93 | registerNBTProvider |
与方块侧的差异:
- 首参是
Entity而非ItemStack—— 实体没有 ItemStack 形式。 - 没有
getWailaStack—— 取而代之的是getWailaOverride(IWailaEntityProvider.java:30),返回null表示不覆盖(IWailaEntityProvider.java:28)。 getNBTData少 3 个坐标参数 —— 只有(player, ent, tag, world)(IWailaEntityProvider.java:93),方块版是 7 个参数(IWailaDataProvider.java:126-127)。
currenttip 的处理规则与方块版完全一致:可增删改,必须返回修改后的入参(IWailaEntityProvider.java:42-43、IWailaEntityProvider.java:83-86)。
数值
| 项 | 值 | 来源 |
|---|---|---|
| 抽象回调方法数 | 5 | IWailaEntityProvider.java |
getNBTData 参数个数 |
4 | IWailaEntityProvider.java:93 |
方块版 getNBTData 参数个数 |
7 | IWailaDataProvider.java:126-127 |
| default 回调方法数 | 0 | IWailaEntityProvider.java |
与方块版不同,实体接口没有
hasWailaAdvancedBody/getWailaAdvancedBody这对 default 方法。已核对IWailaEntityProvider.java全文 93 行,无default关键字。
交互
实体 HUD 是否显示由配置项 general.showents 控制(OverlayRenderer.java:35),注册方还需在 ProxyClient.java:49-51 侧确保基础 provider 存在(Waila 自带 HUDHandlerEntities 覆盖 Entity.class 的 Head/Body/Tail)。传入的 IWailaEntityAccessor 字段见 数据访问器。
实体 NBT 同步走 网络协议 中的 EntRequest / EntNBTData 两种封包。
相关条目
- IWailaDataProvider - 方块/TileEntity 侧的对偶接口
- 数据访问器 -
IWailaEntityAccessor与IWailaCommonAccessor字段 - 网络协议 - 实体 NBT 同步使用的封包
- HUD 渲染管线 - 实体区在渲染管线中的判定分支