内置蓝图
MBD2 21.1.1MBD2 自带十二张蓝图。每张只做一件大多数整合包都想要的事,同时也是一份可读的示例:打开它,读画布上的便签,复制到自己的资源库里再改。
机器通过 built-in(mbd2:<name>) 引用它们。它们保存在内存中,所以在没有内容目录的专用服务器上也能解析;编辑器以只读方式打开它们,要修改请用 Copy 复制一份。

叠加使用,不要合并
机器的蓝图列表是一条有序流水线,所以「红石控制 + 超频 + 额外产出」是三条绑定,而不是一张带开关的图。任何需要加一个「模式」参数才值得发布的东西,都应该拆成两张蓝图。
十二张
| 蓝图 | 挂在 | 参数 |
|---|---|---|
redstone_control | Machine Tick | requiresSignal false、threshold 1 |
comparator_progress | Machine Tick | invert false |
environment_gate | Before Recipe Working | needsRain false |
overclock | Recipe Modify (Before) | speedPerTier 2、costPerTier 4、maxOverclocks 4 |
upgrade_slots | Recipe Modify (Before) | traitName item_slot、slot 0、upgradeItem 糖、speedPerUpgrade 0.5、maxUpgrades 4 |
part_count_bonus | Recipe Modify (Before) | speedPerPart 0.05、maxSpeedup 3 |
upkeep | On Recipe Working | traitName fluid_tank、amountPerTick 10、reason Out of coolant |
chance_output | On Recipe Finish | bonusItem 金粒、chance 0.1、traitName item_slot |
output_swap | Recipe Modify (Before) | product 粗铁 |
heat_buildup | Machine Tick + Recipe Modify | heatPerTick 1、coolPerTick 2、maxHeat 1000、bonusAtMaxHeat 2 |
auto_io_panel | Build UI | trait ""、name "" |
debug_probe | Use Item On | probeItem 木棍 |
Redstone control
每 tick 读取到达机器的最强红石信号,用它设置配方逻辑的 working-enabled 标记。requiresSignal 关闭表示「有电就停」,开启表示「有电才转」。

它读任意面,和红石灯一样。把 Redstone Power 换成 Get Redstone Signal 并给它一个面,就变成定向的。
Comparator progress
把配方进度(0..1)映射到 0-15 并写入机器的模拟信号,紧贴机器放一个比较器就能读到。invert 翻转方向。

这里不是简单的 progress * 15:那样会把整整一级比较器信号花在「还没开始」上。
Environment gate
天气不符合 needsRain 时拒绝开始配方。已经在跑的配方不受影响,会正常跑完。

它挂在 Before Recipe Working 上——那是还能说「不」的事件。控制某件事是否发生属于这里;控制它进行期间的条件属于 On Recipe Working,见 upkeep。
Overclock
把机器 tier 当作超频次数,按次把时长除以 speedPerTier、把输入乘以 costPerTier。默认值下 tier 2 快 4 倍、耗材 16 倍。tier 0 什么都不改。

按 tier 而不是按当前储电:配方的代价不该取决于它碰巧什么时候开始。
Upgrade slots
看指定物品 Trait 的某个槽位,如果里面是 upgradeItem,就把时长除以 1 + 数量 * speedPerUpgrade。这是 Mekanism / Thermal 的形态。

给机器加一个小的物品 Trait 专门放升级件,并且不要把它挂进配方 IO,否则升级件会被当成配方输入。
Part count bonus
统计已成型结构的部件数量,把时长除以 1 + 数量 * speedPerPart,上限 maxSpeedup。在没有成型的机器上数量为 0,什么都不变。

Upkeep
每个工作 tick 从指定流体 Trait 抽 amountPerTick mB,罐子空了就让机器停滞,并在 UI 里显示 reason。

想改成扣电,把那两个 trait/抽取节点换成 Trait Energy Storage 和 Extract Energy 即可。
Chance output
每完成一次配方掷一次 chance,成功就把 bonusItem 塞进指定物品 Trait。

槽位满了额外产物会被丢弃,和普通产物一样。
Output swap
把配方的所有物品产出替换成 product。流体产出不受影响,配方仍然要匹配它原本的输入。

这张图证明了蓝图能改配方换什么,而不只是换多少。
Heat buildup
机器工作时升温、空闲时降温,越热越快,在 maxHeat 时达到 bonusAtMaxHeat 倍速。

同一套机制适用于任何「机器需要记住的东西」:维护计数、冷却时间、蓄力值。它只在热量真的变化的 tick 才写自定义数据。
Auto IO 面板
在机器界面旁边加一条页签条,展开某个页签后显示机器的六个面,点击某个面循环切换该面的 auto IO——无、输入、输出、双向。这个设置是一个 runtime value,只属于那一台放置的机器,并且会存盘。


| 参数 | 含义 |
|---|---|
trait | 要配置的 Trait 名,与 Trait 列表里显示的一致 |
name | 页签标题;留空则用 Trait 自己的名字 |
如果该 Trait 不支持 auto IO,什么都不会添加。用不同的 trait 绑定多次,页签会沿条带叠起来——它们追加到同一个共享容器里,而不是各建各的面板;展开的面板会把下面的页签往下推,而不是压在它们上面。
条带定位在机器面板之外,所以追加页签永远不会挪动机器自己的内容。

它为所有 UI 蓝图演示了两点:外观是整合包可替换的样式表;客户端通过机器的 @DescSynced 自定义数据得知每个面的状态——因为 runtime value 是服务端的,从不发送。
lss/mbd2_auto_io.lss 是作为合并样式表加载的,所以整合包只要在同一路径下放自己的文件、只写不认同的那几条规则就能改外观,后加载的整合包优先。样式表挂在页签条上而不是整个界面上,所以它里面的规则不会漏进机器自己的 UI。
Debug probe
手持 probeItem 右键机器,它会在聊天栏报告机器状态、tier 和配方状态。点击会被消耗,所以拿着探针时不会打开 UI。

这是判断机器是否处于你以为的状态的最快方式,而且不需要脚本或命令。