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)