NotFine mixin 分组(45 个)
概览
| 属性 | 值 |
|---|---|
early/notfine |
33 个文件(顶层 0,分布在 11 个子包) |
late/notfine |
12 个文件(顶层 0,分布在 3 个子包) |
| 合计 | 45 个 |
| modid | notfine |
NotFine 是 1.7.10 上经典的「细调视频设置」mod,Angelica 把它的功能与 Mixin 一并吸收。
early/notfine(33)
该目录没有任何顶层类 —— 33 个 mixin 全部位于 11 个子包内。按包列出(包内类名以 , 分隔):
| 子包 | 文件数 | 类 |
|---|---|---|
faceculling |
9 | MixinBlock, MixinBlockCactus, MixinBlockCarpet, MixinBlockEnchantmentTable, MixinBlockFarmland, MixinBlockSlab, MixinBlockSnow, MixinBlockStairs, MixinRenderBlocks |
glint |
5 | MixinEntityLiving_ArmorEnchantCache, MixinItemRenderer, MixinRenderBiped, MixinRenderItem, MixinRenderPlayer |
toggle |
5 | MixinEntityRenderer, MixinEntityRenderer$RenderRainSnow, MixinGuiIngame, MixinRender, MixinRenderItem |
clouds |
4 | MixinEntityRenderer, MixinGameSettings, MixinRenderGlobal, MixinWorldProvider |
particles |
3 | MixinBlockEnchantmentTable, MixinEffectRenderer, MixinWorldClient |
leaves |
2 | MixinBlockLeaves, MixinBlockLeavesBase |
fix |
1 | MixinRenderItem |
gui |
1 | MixinGuiSlot |
interpolatedtexturemap |
1 | MixinTextureMap |
optimization |
1 | MixinRenderItemFrame |
renderer |
1 | MixinRenderGlobal |
| 合计 | 33 |
⚠ 同名不同包:
MixinEntityRenderer、MixinRenderGlobal、MixinRenderItem、MixinBlockEnchantmentTable这 4 个简单类名各自出现在多个子包里(MixinRenderItem更是有fix/glint/toggle三份)。只按类名去重会误合并,注册名必须带子包前缀(notfine.faceculling.MixinBlockvsnotfine.particles.MixinBlockEnchantmentTable)。
⚠ 1 个 dead code:
clouds/MixinRenderGlobal.java文件在磁盘上存在,但它的注册项在Mixins.java:692被注释掉了 ——//"clouds.MixinRenderGlobal",。这是Mixins.java全文件唯一一处被注释掉的注册项,故该类不构成任何能力,实际生效的clouds只有 3 个。
对照 Mixin 注册表 里 NotFineConfig.betterBlockFaceCulling 门控的 Mixins.java:724、:781 两处 setApplyIf —— 正是 faceculling 这批。
late/notfine(12)
同样是 0 顶层类,3 个子包,全部按目标 mod 分子目录:
| 子包 | 文件数 | 目标 mod |
|---|---|---|
leaves |
8 | 树叶:natura 2(MixinBerryBush、MixinNetherBerryBush)、tconstruct 1(MixinOreberryBush)、thaumcraft 1(MixinBlockMagicalLeaves)、twilightforest 3(MixinBlockTFLeaves、MixinBlockTFLeaves3、MixinBlockTFMagicLeaves)、witchery 1(MixinBlockWitchLeaves) |
faceculling/thaumcraft |
3 | MixinBlockStoneDevice、MixinBlockWoodenDevice、MixinBlockTable |
toggle/biomesoplenty |
1 | MixinFogHandler |
| 合计 | 12 |
leaves 子包是典型的「按目标 mod 分目录」结构:Natura、Thaumcraft、Twilight Forest、TConstruct、Witchery 各有自己的树叶实现差异。
门控
| 配置 | 影响 |
|---|---|
AngelicaConfig.enableNotFineFeatures |
NotFine 子系统总开关 |
AngelicaConfig.enableNotFineOptions |
是否用 NotFine 界面替代视频设置界面(默认 false) |
NotFineConfig.betterBlockFaceCulling |
Mixins.java:724、:781 两处 setApplyIf |
NotFineConfig.renderPass |
Mixins.java:860 —— 恒 false,该项永不生效 |
jss.notfine.core.Settings 的 39 个枚举项 |
多数 MODE_* / PARTICLES_* 选项各自门控对应 mixin |
jss/notfine/core/Settings 枚举共 39 项,是这些 mixin 的主要门控来源,但并非一一对应:39 个设置项要对上 45 个 mixin,其中 toggle 整包 5 个类由 AngelicaConfig.enableNotFineFeatures 这类总开关而非单个设置项把控。见 NotFine 的选项表。
AT 依赖
NotFine 的 mixin 需要字段可见性放行,AT 文件是 src/main/resources/META-INF/notfine_at.cfg(17 行),放行的字段包括:
| 字段 | 行 | 用途(AT 文件注释) |
|---|---|---|
Gui.field_110325_k |
:2 |
改 GUI 背景 |
EntityFX.field_70550_a |
:5 |
物品破碎粒子修复 |
RenderGlobal.field_72772_v |
:8 |
重新生成星星渲染列表 |
Tessellator.field_78406_i |
:11 |
星星、太阳与月亮开关 |
相关条目
- NotFine - 39 个 Settings 选项与
renderPass缺陷 - NotFine AsmTransformers - 2 项 ASM 枚举
- Mixin 注册表 -
notfine.*注册名去重后 45 项 - late/client mixin 分组 - 21 个通用第三方 mod 补丁,13 个子包
- MCPatcherForge mixin 分组 - 82 个