AppleCore
基本信息
| 属性 | 值 |
|---|---|
| 类名 | squeek.applecore.AppleCore |
| modid | AppleCore |
| 注解 | @Mod(modid=ModInfo.MODID, name=ModInfo.MODID, guiFactory=ModInfo.GUI_FACTORY_CLASS, acceptedMinecraftVersions="[1.7.10]") |
| 生命周期 | preInit / init / onServerStarting / onConfigChanged |
| 启用版本 | Minecraft 1.7.10 |
功能
mod 主类。不注册任何游戏内容,只做三件事:初始化配置、强制 API 实现单例、 按加载端挂接客户端/服务端处理器。
| 阶段 | 行为 |
|---|---|
preInit |
ModConfig.init → 触发 3 个 API 实现枚举初始化 → 注册 FML 总线 |
init |
SyncHandler.init;客户端额外初始化 3 个 overlay handler |
onServerStarting |
Commands.init 注册 /hunger |
onConfigChanged |
仅当 event.modID 等于本 modid 时 ModConfig.sync() |
实现要点
acceptedRemoteVersions = "*":允许任意远端版本加入。dependencies未声明(无硬依赖)。acceptableRemoteVersions与acceptedMinecraftVersions同时存在, 两者含义不同,源码未加注释说明。preInit中三行AppleCoreXxxImpl.values()看似无副作用调用, 实际目的是触发类加载使AppleCoreAPI的静态字段被赋值。init中客户端分支注册的TooltipOverlayHandler走 FML 总线 (@Mod.EventBus语义),另两个走init()内部自注册。
相关条目
- ModInfo - 常量来源
- ModConfig - 7 个配置项
- SyncHandler -
init阶段初始化 - CommandHunger - 服务端启动时注册
- AppleCoreAPI - 本类负责初始化的门面