-
Notifications
You must be signed in to change notification settings - Fork 19
模组设计详解(Mod Design Details)
Mouse edited this page Jun 10, 2020
·
2 revisions
阶段 | 主要工作 | 对应事件 |
---|---|---|
Construction(构造) | 创建模组主类实例并自动将其注册到引擎和模组的EventBus
|
无 |
AutoListen(自动监听) | 注册@AutoListen 注解的监听器类 |
无 |
Injection(注入) | 注入@Inject 注解的静态字段 |
无 |
PreInitialization(预初始化) | 在此阶段可处理模组需要注入的对象,载入配置文件等 | ModLifecycleEvent.PreInitialization |
RegistryConstruction(注册表构造) | 注册注册表构造器 | ModRegistrationEvent.Construction |
RegistrationStart(注册开始) | 通知注册阶段的开始 | ModRegistrationEvent.Start |
Registration(注册) | 注册对象,注册@AutoRegister 注解的对象 |
ModRegistrationEvent.Register<T> |
RegistrationFinish(注册结束) | 通知注册阶段的结束 | ModRegistrationEvent.Finish |
Initialization(初始化) | 在此阶段初始化模组 | ModLifecycleEvent.Initialization |
PostInitialization(后初始化) | 通知模组已初始化完毕 | ModLifecycleEvent.PostInitialization |
模组在初始化时可依赖注入的对象
名称 | 类型 | 描述 |
---|---|---|
注入器 | com.google.inject.Injector |
当前模组使用的注入器 |
引擎 | engine.Engine |
当前引擎的对象 |
所在侧 | engine.util.Side |
当前引擎所在侧 |
运行环境 | engine.util.RuntimeEnvironment |
当前引擎的运行环境 |
模组容器 | engine.mod.ModContainer |
当前模组的容器对象 |
主类实例 | 主类类型 | 当前模组的主类实例 |
日志 | org.slf4j.Logger |
当前模组的日志对象 |
模组资产 | engine.mod.ModAssets |
当前模组的资产对象 |
示例代码:
@Mod(id = "examplemod")
public class ExampleMod {
@Inject
private static Injector injector;
@Inject
private static ExampleMod instance;
@Inject
private static Logger logger;
}
阶段 | 主要工作 | 对应事件 |
---|---|---|
Unloading(卸载) | 模组卸载 | ModLifecycleEvent.Unloading |
Unloaded(已卸载) | 模组已卸载,ModContainer 实例即将回收 |
ModLifecycleEvent.Unloaded |
Copyright © 2019-2020 UnknownDomainGames