Mixins
基本信息
com.mitchej123.supernova.core.Mixins —— mixin 注册真源,
用 GTNH 的 gtnhmixins 框架(枚举 + MixinBuilder)声明全部早期注入。
⚠️ 三个 JSON 的 mixins 数组都为空
src/main/resources/mixins.supernova.json、mixins.supernova.early.json、
mixins.supernova.late.json 均无 mixins / client / server 数组:
{ "required": true, "minVersion": "0.8.3-GTNH",
"package": "com.mitchej123.supernova.mixin",
"refmap": "mixins.supernova.refmap.json",
"target": "@env(DEFAULT)", "compatibilityLevel": "JAVA_8" }
数 JSON 会得到 0 个 mixin —— 实际注册全部由
IMixins.getMixins(Mixins.class, ...) 动态生成。
这与 coretweaks 同属「靠框架动态注册」的情形。
3 个 Mixin 分组(EARLY phase)
| 枚举 | 说明 | 注入内容 | 条件 |
|---|---|---|---|
ENGINE |
Supernova 光照引擎 | 5 个 common + 1 个 client | 无条件 |
VANILLA_RENDERING |
原版彩色光照渲染 | early.rendering.MixinRenderBlocks |
!isScalarMode() 且排除 Angelica |
ENTITY_RENDERING |
实体着色渲染 | early.rendering.MixinRenderManager |
!isScalarMode() |
ENGINE 的 5 个 common mixin
| 简名 | 完整位置 |
|---|---|
MixinChunk |
early.engine |
MixinWorld |
early.engine |
MixinWorldServer |
early.engine |
MixinEntityPlayerMP |
early.engine |
MixinExtendedBlockStorage |
early.engine |
客户端专属:MixinChunk_FillChunkClient。
两个渲染组都排除 Angelica
.addExcludedMod(TargetedMod.ANGELICA) —— 用户装了 Angelica 时
不注入原版渲染补丁,改由 Angelica Compat 接管。
SCALAR 模式跳过渲染注入
setApplyIf(() -> !SupernovaConfig.isScalarMode()) ——
SCALAR 模式(等价 Starlight、无颜色)不需要彩色渲染补丁。
见 Supernova Config。
⚠️ 无 @Mod 依赖声明 Angelica
@Mod(dependencies = "after:angelica@[2.1.61,)") —— 软依赖,
因此 Angelica 缺失/版本不符时 mixin 不会被排除,仍会注入原版渲染补丁,
可能与旧版 Angelica 冲突。
相关条目
源码
src/main/java/com/mitchej123/supernova/core/Mixins.javasrc/main/resources/mixins.supernova.jsonsrc/main/resources/mixins.supernova.early.json