
Legacy OptiFabric
OptiFabric 适用于 Legacy Fabric(1.3.1 至 1.13.2)和 Ornithe(b1.7.3 至 1.14.4)
查看大图关于 MCSR:使用 mods.tildejustin.dev
如果你在为 1.14 到 1.15.2 寻找适用于常规 Fabric 而非 Ornithe 的 OptiFabric,请查看 OptiFabric Origins
旧版 OptiFabric
适用于 Legacy Fabric(1.3.1-1.13.2)和 Ornithe(b1.7.3-1.14.4)的 OptiFabric
- Legacy Fabric 安装器和官方 MultiMC 实例:https://legacyfabric.net/downloads.html
- Ornithe 安装器(可生成 MultiMC 实例):https://ornithemc.net
- 适用于 Ornithe 和 Legacy Fabric 的合法速通 MultiMC 实例(原版 LWJGL,无额外库或模组):Minecraft-Java-Edition-Speedrunning/legacy-fabric-instance-generator/releases
基于 RedLime 的 OptiFabric-Pre1.14 的工作成果,该模组是 hYdos 的 OptiFabric 1.8.9 的分支,而后者又是 modmuss 的原版 OptiFabric 的衍生作品
安装
此模组需要将 optifine jar 放在 mods 文件夹中,与 optifabric 一同使用。对于 1.7.2 及以上版本,可以从 OptiFine 官方网站 获取,而更早的版本则可以从 SpeedyCube64 的 Pre-1.9 Optifine 存档 或 OptiFine 历史帖 中获取。
工作原理
此模组使用 Minecraft-Java-Edition-Speedrunning/fabric-asm,这是 Cat Core 的 Fabric-ASM/no-guava 的微小衍生版本,而后者本身是 Chocohead 的 fabric-asm 的更新版本。fabric asm 允许更极端的 asm 修改,所使用的分支 不依赖 guava 或 apache commons,因为这些在较旧的 Minecraft 版本中并未提供。
步骤
- 模组在当前 mods 文件夹中寻找 optifine 安装器或模组 jar 或 zip
- 如果找到安装器 jar,则在其自己的临时类加载器中执行提取任务
- optifine 模组 jar 是一组需要替换 Minecraft 提供的类的类
- optifine 的替换类会更改某些 lambda 方法的名称,因此它会(使用原始 Minecraft jar)对旧名称进行合理猜测
- 将 optifine 重新映射到 intermediary
- 将修补后的类移出,因为它们在类路径上出现两次不会有什么好处
- 将 optifine 添加到类路径
- 为每个需要替换的类注册修补 tweaker
- 用提取的类替换目标类,同时对其进行更多修复,并使其公开(由于访问问题)
- 希望它能正常工作
注意事项
- 此模组在开发环境或命名环境中无法真正正常运行。在 Legacy Fabric 的情况下,某些版本的 yarn 构建已损坏,因此目前无法正常工作,feather 稍好一些但仍然存在问题。
- accessWideners 是基于 tiny remapper 的 checkPackageAccess 选项的输出创建的,但不太可能做到 100% 完整。如果你遇到与无效访问相关的崩溃,请报告,它可能能够被修复。
类排除器
这是一个隐藏功能,偶尔在重新映射 jar 时用于移除文件会很有用。为此,它读取 .minecraft/config/ 中的 optifabric-excluded-classes.json 文件
(如果存在),并期望文件包含版本(字段名称)到可移除类(或纹理或任何其他内容,它只是一个
文件名)数组的映射。
下面提供了一个示例文件内容,用于撤销 1.3.2 版本中 Profiler 的移除。如果你要为其创建排除器条目的 optifine
版本已在你的实例中加载过,请删除 .minecraft 中 .optifine 文件夹里的对应文件夹以强制重新缓存。
{
"OptiFine_1.3.2_L_B2": [
"ik.class"
]
}
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。