ModTiCTooltips
模组主类:FML 依赖串、客户端事件注册、三个软依赖探测
基本信息
| 属性 | 值 |
|---|---|
| 路径 | squeek.tictooltips.ModTiCTooltips |
| 行数 | 62 |
| 注解 | @Mod(modid=ModInfo.MODID, ...) + acceptableRemoteVersions = "*" |
FML 依赖串(ModTiCTooltips.java:26)
dependencies = "required-after:TConstruct@[1.7.10-1.8,);after:ExtraTiC;after:TSteelworks;after:Mariculture"
- 唯一硬依赖
TConstruct,且带版本区间[1.7.10-1.8,)。 详见分类页与 tinkersconstruct。 after:三项(ExtraTiC / TSteelworks / Mariculture)均为软依赖, 只影响加载顺序,不影响是否加载本 mod。- ⚠️
after:TSteelworks没有任何对应实现代码,见 ProxyExtraTiC 一节的缺陷说明。
生命周期
| 事件 | 处理器 | 说明 |
|---|---|---|
FMLInitializationEvent |
init(:35) |
唯一注册动作:MinecraftForge.EVENT_BUS.register(new TooltipHandler()) |
FMLPostInitializationEvent |
postInit(:41) |
探测软依赖 + 计算材料极值 + 上报版本 |
两个方法都带 @SideOnly(Side.CLIENT) —— 本 mod 纯客户端,服务端不注册任何东西。
postInit 的探测顺序(:42-51)
if (Loader.isModLoaded("ExtraTiC")) ProxyExtraTiC.init();
if (Loader.isModLoaded("Mariculture")) ProxyMariculture.init();
if (Loader.isModLoaded("IguanaTweaksTConstruct")) {
hasIguanaTweaks = true; // 这个静态标志会影响另外两处分支
ProxyIguanaTweaks.init();
}
ToolHelper.init(); // 空方法
ToolPartHelper.determineMinAndMaxValues(); // 扫描全材料表算出着色区间
注意 IguanaTweaksTConstruct 不在 FML 依赖串里,只靠 Loader.isModLoaded 探测。
它设置的静态字段 hasIguanaTweaks(:30)被
TooltipHandler 读了两次:
:65—— 图纸 tooltip 被整个禁用(有 IguanaTweaks 时交给它自己显示):171—— 工具 tooltip 前额外插一个空行
版本检查上报(:56-60)
FMLInterModComms 向 VersionChecker 发 addVersionCheck,
URL http://www.ryanliptak.com/minecraft/versionchecker/squeek502/TiC-Tooltips。
这是 squeek 早年的通用版本检查服务,不是 1.7.10 插件扫描器。
静态成员
| 成员 | 类型 | 用途 |
|---|---|---|
hasIguanaTweaks |
boolean |
IguanaTweaksTConstruct 是否在场的缓存标志 |
Log |
Logger |
LogManager.getLogger(ModInfo.MODID),供三个 Proxy 打错误日志 |
相关
- ModInfo - 三个常量
- TooltipHandler - 唯一业务逻辑
- ToolPartHelper -
determineMinAndMaxValues的实现