NavigatorLateMixins
late mixin loader
基本信息
| 属性 | 值 |
|---|---|
| 路径 | com.gtnewhorizons.navigator.NavigatorLateMixins |
| 行数 | 23 |
| 注解 | @LateMixin(:11) |
| 实现 | ILateMixinLoader(2 个方法) |
与 NavigatorCore 的对称结构
| 类 | mixin 配置 | 阶段 |
|---|---|---|
| NavigatorCore | mixins.navigator.early.json |
EARLY |
| 本类 | mixins.navigator.late.json |
LATE |
@Override public String getMixinConfig() { return "mixins.navigator.late.json"; }
@Override public List<String> getMixins(Set<String> loadedMods) {
return IMixins.getLateMixins(Mixins.class, loadedMods);
}
⚠️ 与 NavigatorCore 的唯一差别是
getEarlyMixins → getLateMixins、参数名
loadedCoreMods → loadedMods。
⚠️ 本类没有 IFMLLoadingPlugin ——
它靠 GTNHLib Mixins 框架的 @LateMixin 注解
由 IMixinBootstrap 自动发现,不需要 coremod 加载。
所以即使本 mod 没通过 coremod 加载,late mixin 仍会生效
(但 early mixin 会失效)—— 这是个不对称的失效模式。
两个方法都委托同一个枚举
Mixins 的 6 个 MixinBuilder 里,
4 个 setPhase(Phase.LATE)、2 个 setPhase(Phase.EARLY)。
getLateMixins / getEarlyMixins 按 phase 过滤。
late 配置独有的 injectors 设置
mixins.navigator.late.json 有
"injectors": { "maxShiftBy": 3 },
而 early 与 default 配置没有这个字段。
说明 late mixin 用了较高优先级的注入点(@Inject 的 shift = At.Shift.BEFORE/AFTER)。
相关
- NavigatorCore - EARLY 阶段的对应物
- Mixins - 6 个构建器常量(4 个 LATE)