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)。

相关