IMCHelper
基本信息
| 属性 | 值 |
|---|---|
| 类名 | betterachievements.api.util.IMCHelper |
| 目标 modid | "BetterAchievements" |
| 源文件 | src/main/java/betterachievements/api/util/IMCHelper.java |
功能
跨 mod 通信(Inter-Mod Communication)辅助类。提供给依赖模组通过 FMLInterModComms.sendMessage("BetterAchievements", pageName, itemStack) 注册 AchievementPage 的页签图标,无需实现 ICustomIcon 接口。
调用顺序在主类 BetterAchievements.imcCallback:
for (FMLInterModComms.IMCMessage message : event.getMessages())
if (message.isItemStackMessage())
AchievementRegistry.instance().registerIcon(message.key, message.getItemStackValue(), false);
注释原文:IMC will most likely register before the
ICustomIcon#getPageIcon()will ever be called. In short this will override whatever is set there, so use only one of both.
公开方法
| 方法 | 说明 |
|---|---|
sendIconForPage(String pageName, ItemStack itemStack) |
按页名发送 |
sendIconForPage(AchievementPage page, ItemStack itemStack) |
按页对象发送(内部调用 page.getName()) |
sendIconForPage(String pageName, Item item) |
包装为 new ItemStack(item) |
sendIconForPage(AchievementPage page, Item item) |
同上 |
sendIconForPage(String pageName, Block block) |
包装为 new ItemStack(block) |
sendIconForPage(AchievementPage page, Block block) |
同上 |
使用示例(来自 Demo mod)
// src/demo/java/betterachievementsdemo/BetterAchievementsDemo.java
@Mod.EventHandler
public void init(FMLInitializationEvent event) {
AchievementRegistry.registerAchievements();
IMCHelper.sendIconForPage("demoPage5", Blocks.gold_block);
}
相关条目
- AchievementRegistry -
registerIcon(key, stack, userSet)处理消息 - ICustomIcon - 同等功能的接口实现方案
- DemoPage - 实现
ICustomIcon的示例