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.MixinBlock vs notfine.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 星星、太阳与月亮开关

相关条目