ASMMixinCompiler
[!INFO] Git Commit:
7808254| Updated: 2026-10-02
| 属性 | 值 |
|---|---|
| 类名 | codechicken.multipart.asm.ASMMixinCompiler |
| 类型 | object + ClassInfo / MethodInfo + ReflectionClassInfo / ScalaClassInfo,873 行,全仓最大文件 |
| 启用版本 | Minecraft 1.7.10 |
| 字节码编译器:读取「已被 trait 增强的类」,把其中的字段与方法反向合成为 | |
一个可动态生成的父类。这是 ForgeMultipart 能在运行时给 TileMultipart |
|
| 挂上任意 Forge 接口的底层。 |
关键点
ClassInfo是核心抽象;ReflectionClassInfo从java.lang.reflect读,ScalaClassInfo从 Scala 签名读(Scala trait 编译后不带反射信息)。MethodInfo把方法签名标准化,便于去重与排序。convertMethod/define/internalDefine是生成路径。allParents/heirachy:沿父类链收集待合并内容。DebugPrinter对象用于排查生成失败(受debug_asm配置控制)。- 依赖 ASM 的
ClassNode/MethodNode/TypeInsnNode/MethodInsnNode。
相关条目
- ASMMixinFactory - 调用本编译器的工厂
- ScalaSignature - Scala 侧签名解析
- StackAnalyser - 生成前的方法体分析