Skip to content

调试机器与配方 ​

MBD2 21.1.1

使用 MBD gadgets 区分结构失败和配方失败。先修复注册与机器接线,再调试脚本回调。

MBD2 Multiblock Pattern 编辑器显示控制器层重复规则诊断
进入世界测试结构前,应先解决这里显示的控制器层重复规则等编辑器诊断。

多方块调试器 ​

在预期控制器上使用。它可以区分“不是控制器”、结构已成功成型和谓词不匹配信息。从第一个不匹配开始处理:后续位置可能只是因为朝向或重复已经被错误解析。

检查控制器朝向、层轴、控制器 placeholder、重复范围、精确/部分状态以及催化剂候选。

配方调试器 ​

在具有配方逻辑的机器上使用。启用配方修饰器或 KubeJS 事件时,对比原始匹配和修改后配方。失败通常属于四层之一:

层常见原因
配方类型ID 错误、配方未加载、把 XEI 隐藏误认为不存在
条件当前世界/机器前置条件失败
路由无匹配 Trait、配方 IO 错误、slotName 不匹配、distinct handler 行为
存储过滤器、容量、数量、速率或输出空间阻止模拟

Debug probe 蓝图 ​

给机器绑定 built-in(mbd2:debug_probe),手持配置的物品(默认木棍)右键:它会在聊天栏报告机器状态、tier 和配方状态,并消耗这次点击,所以 UI 不会打开。往它的某个 Info 节点里加一个 block 就能扩展报告内容。见内置蓝图。

有用的开发检查 ​

  • 构造后只记录一次机器定义、配方类型、capability 和 condition registry key。
  • 检查 machine.getAdditionalTraits(),以及每个 handler 的 capability、IO、slot name 和 distinct 标记。
  • 比较模拟前后的 handler 状态;模拟期间发生任何变化都是 bug。
  • 先只测试一种配方内容,再加入 per-tick、概率和条件。
  • 同时验证服务端行为与客户端 UI/XEI 渲染。
  • 改完蓝图后看一眼 logs/latest.log——抛异常的图只报告一次,之后保持沉默。
  • 记住 runtime value 覆盖会比「本该修好它」的定义改动活得更久。某项设置怎么改都不生效时,用 Clear All Runtime Values,或者把机器破坏后重新放置。

Released under the MIT License.