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.java
  • src/main/resources/mixins.supernova.json
  • src/main/resources/mixins.supernova.early.json