TargetedMod

3 个目标模组(GTNHLib Mixins 框架)

基本信息

属性 值
路径 com.gtnewhorizons.navigator.mixins.TargetedMod
行数 26
类型 enum implements ITargetMod
实现接口 com.gtnewhorizon.gtnhmixins.builders.ITargetMod

3 个常量(:10-12)

常量 coremod 类 modid
JOURNEYMAP null journeymap
XAEROMINIMAP xaero.common.core.XaeroMinimapPlugin XaeroMinimap
XAEROWORLDMAP xaero.map.core.XaeroWorldMapPlugin XaeroWorldMap

⚠️ 两个 Xaero 的 modid 首字母大写(XaeroMinimap / XaeroWorldMap), 而 JourneyMap 是小写 journeymap。

⚠️ 这与 Util 里的 modid 不一致 —— Util 的探测方法叫 isXaerosWorldMapInstalled() / isXaerosMinimapInstalled(), 其 Loader.isModLoaded 的实参需与本表一致(XaeroWorldMap / XaeroMinimap)。

⚠️ 本枚举没有 VOXELMAP —— 与 SupportedMods 一致,VoxelMap 未接入。

⚠️ JOURNEYMAP 的 coremod 类是 null —— JM5 / JM6 都不是 coremod(JM6 是通过新插件 API 接入), 所以只按 modid 判定。

⚠️ 两个 Xaero 给出了 coremod 类 —— Xaero 的地图模组是 coremod 形态,需要按类判定加载。 (注意 modid 与类名不是一回事:类在 xaero.common.core / xaero.map.core。)

构造器(:16-19)

TargetedMod(String coreModClass, String modId) {
    this.builder = new TargetModBuilder().setCoreModClass(coreModClass).setModId(modId);
}

⚠️ coreModClass 是 String 不是 Class —— 不传 Class 对象是为了避免目标模组缺失时的类加载错误。

getBuilder(:21-25)

@NotNull @Override public TargetModBuilder getBuilder() { return builder; }

private final TargetModBuilder builder(:14)。

与 Mixins 的关系

Mixins 的 addRequiredMod(TargetedMod.XAEROMINIMAP) 等调用 用本枚举。一个 TargetedMod 可被多个构建器引用 (如 XAEROMINIMAP 被 ENABLE_STENCIL、 XAEROS_MINIMAP_WAYPOINT、XAEROS_MINIMAP_RENDERER 三处引用)。

相关

  • Mixins - 唯一调用方(addRequiredMod)
  • Util - 另一套 modid 判定
  • SupportedMods - 另一套地图枚举(按配置而非 mixin)