构成
合成处理单元(Crafting Processing Unit,简写为CPU)是由合成存储器、合成监控器、合成单元以及并行处理器构成的多方块结构,接入ME网络后作为自动合成系统的逻辑中枢,整个多方块结构占用1频道,1个网络中可有多个CPU。
CPU的组成需符合如下条件:
1、至少包含1个合成存储器(其他3种方块并不是必须的)。
2、必须是由前文所述的4种方块构成的长方体,最大17*17*17。
合成存储器可以增加CPU容量(见下),
合成监控器用于显示当前正进行的合成任务,其小终端可以用染色器改变颜色。
并行处理单元提升CPU的物品发配能力,
合成单元无特殊作用,但是可以在多方块结构中凑数。
玩家手动发布合成方法
在物品终端中点击带有“Craft”字样的物品或中键点击已设置对应合成的物品(指网络中有ME接口包含以该物品作为成品的原料,详见ME接口),就可以开始设置其自动合成。
先选择数量,然后可以预览合成计划:
只有当网络中有充足材料,且网络中有CPU存储单元总容量大于等于该合成所占用字节数,才能选择开始执行合成计划。
·红色部分是本次合成所需的字节数,计划字节数大于CPU最大可用字节数时应为CPU添加合成存储单元或更换更大的合成存储单元。
·蓝色划线部分是所选CPU的最大字节数(自动分配时不显示数据)。
·黄色划线部分是指所选CPU中的并行处理单元数量。
·品红色按钮是取消任务。
·绿色按钮是确认本次合成任务并开始合成。
·橙色按钮可以切换即将处理合成任务的CPU,自动分配时会选择网络中存储量符合要求的CPU中,并行处理器最多的CPU。如果仍然有多个 选择,则选择字节数最大的一个CPU。
选择CPU的按钮可以是下面情况:
出现这一情况可能是因为CPU没有正确安装或合成所需字节大于最大字节
“16K合成CPU”是该CPU中某方块的名字,当CPU中存在用重命名的方块,它们的名字就会被显示在这里
此为正常状态,优先选择存储字节数最大的CPU处理合成任务。
此为材料缺失等引起的错误
玩家观察CPU合成情况
任务下达后,可以在终端内点击右上角的小锤子或者直接右击对应CPU查看合成情况。
(终端内查看合成情况的GUI)
点击右上的终端即可返回终端,点击蓝色按钮可以切换访问的CPU,点击红色按钮会直接把你当前的合成任务取消(不会提示你确认取消的)
(直接右击CPU查看合成情况的GUI)
合成时物品也有 积存/正在合成/计划合成 三个合成状态。
自动合成的工作流程
以下内容中合成表均指使用编码样板设定的
一、发布合成 :玩家可以手动通过物品终端发布合成;通过ME接口+合成卡或者输出总线+合成卡可以自动发布合成
二、预算过程 ,从最终目标产物开始,执行以下步骤直到遍历所有中间产物(如果有的话)并且没有缺少的材料:
1.如果有多种合成方式(存在于样板上的),从中选择一种;
2.计算所需要的原料是否齐全;
2.1.齐全,将原料从网络中提取出来放入CPU(积存状态),将对应合成表的产物列为计划合成(包括中间产物);
2.2.不齐全:
2.2.1.缺少的物品不可合成,则预算结束,报告缺少该物品,终止合成任务。
当配置文件项CraftingManagerFallback的值为true时,回到1并选择其他合成方式。
2.2.2.缺少的物品可以合成,对该物品执行1并判断该物品是否是合成自身的原料之一(包括作为中间产物的原料):
2.2.2.1.该物品是合成自身的原料之一,则预算结束,报告缺少该物品,终止合成任务。
2.2.2.2.该物品不会作为合成自身的原料,则对该物品执行2。
注:对2.2.2.1的举例解释:
例如网络中有配方:1*木炭+8*原木→8*木炭,并且网络中有1个木炭和17个原木,此时对合成计划“16*木炭”进行预算将报告原料缺失,尽管这个计划看起来是合理的。
这一特性是为了防止无限递归导致卡死。如有两个模板2A=>B,2B=>A。若无该特性,玩家尝试发布10A的合成,而网络中只有1A,会导致:需要10A=>需要20B=>需要39A=>需要78B=>……最终导致游戏卡死。
三、合成过程
1.通过ME接口将原料发送至目标容器/设备,将发送出的原料对应的成品标记为正在合成。
具体对于材料的发送规则详见ME接口和并行处理单元。
2.当合成产物进入网络,先缓存到CPU中并标记为缓存,如果已经是最终目标物品则返还到网络(返还过程中可能被其它CPU截获等,类似于重新输入到网络)。计算CPU中字节消耗公式:18
+原料种数*8
+原料数量
+ (制作数量-1)/单次制作数* (单次制作数+1)+ (制作数量-1)%单次制作数
=消耗字节数