跳到正文

Flywheel Crash Fix

作者:TheDarkAce

修复 Create 的 Flywheel 渲染引擎在遇到没有注册视觉模型的包裹物品时,因青蛙港口或链式传送带触发 NullPointerException 并导致游戏崩溃的问题。

收藏

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

Flywheel 崩溃修复

Flywheel Crash Fix 是一款轻量级的客户端 Forge 模组,适用于 Minecraft 1.20.1,可修复由机械动力的视觉渲染系统触发的 NullPointerException 崩溃。

问题原因

机械动力模组使用 Flywheel 渲染引擎渲染机器时,FrogportVisual 和 ChainConveyorVisual 类会遍历 Frogport 或 Chain Conveyor 当前处理的所有物品,并尝试为每件物品查找已注册的视觉模型。如果某件物品没有注册模型——例如 Create Mobile Packages 中模型注册失败的包裹物品——Flywheel 就会收到一个值为 null 的局部模型引用,并抛出 NullPointerException,导致游戏客户端立即崩溃。

修复方式

此模组向 Flywheel/机械动力渲染管线注入了三个 Mixin:

Mixin 作用
AbstractBEVisualAccessorMixin 公开 AbstractBlockEntityVisual 中受保护的 level 字段,供下游 Mixin 安全读取。
FrogportVisualMixin 为 FrogportVisual 中的物品渲染循环添加空值检查;如果物品的视觉模型查找结果为 null,则跳过该物品。
ChainConveyorVisualMixin 为 ChainConveyorVisual 的物品渲染循环添加相同的空值检查。

此修复仅起防护作用——如果模型已正确注册,代码执行路径不会改变。它不会影响游戏玩法、物品行为或服务器逻辑。

兼容性

要求 版本
Minecraft 1.20.1
Forge 47.4.16+
Create 6.0.8+
Flywheel 1.0.5

此模组仅适用于客户端,无需安装在专用服务器上。

为什么会发生这种情况?

Create Mobile Packages 会在 Flywheel 模型注册阶段为其包裹物品注册视觉模型。在某些模组加载顺序下,或模型注册过程中断时,注册可能会静默失败,并在模型注册表中留下一个值为 null 的条目。Flywheel 没有对此进行防护,因此 Frogport 或 Chain Conveyor 首次尝试渲染其中一个物品时,JVM 就会抛出异常,导致游戏崩溃。

彻底解决此问题需要 Create Mobile Packages 加固自身的模型注册逻辑。在上游修复发布之前,此模组提供了一个安全的临时解决方案。

作者

TheDarkAce — 为 All Of Create + 整合包专门制作的修复模组。

常见问题

Flywheel Crash Fix 支持哪些 Minecraft 版本?

Flywheel Crash Fix 支持 Minecraft Java 版 1.20.1,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

Flywheel Crash Fix 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

TheDarkAce 的其他作品

查看全部 →