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 两种封包。

相关条目