前言
机械动力6.x版本更新了一批高级物流元件。本教程即关于如何使用这些元件来让你的工厂更加智能。
鉴于机械动力是一个俺寻思自由度很高的mod,所以这篇教程仅限笔者个人理解和设计方案。如有疏漏恳请指正。
本教程不包含最基础的应力传递等知识,也不包含某一种具体机器的设计。这些内容请看这里,或参考蓝图站。
推荐在认识了机械动力的各种物品之后再阅读。
高级物流元件一览(资料链接)
百科资料页
工厂仪表、包裹过滤器、货物蛙港、打包机、红石请求器、理包机、仓储链接站、仓储发报机、纸壳包裹、桌布/桌面、邮箱
以及 锁链传动轮,虽然没有被归类为物流元件,但是也是重要的元件。
初步自动化:全自动生产
在安山时代发展一段时间之后即可通过初步的物流优化提高工厂的自动化程度。
推荐配置:简易圆石、砂砾、铁、金、木产线 + 粘液球(合成蛙港用),以及一台小锅炉(岩浆或木炭驱动均可)
粘液球 = 面团+黄绿色燃料 = 小麦粉 + (白染料 + 绿色染料) = 小麦 + 骨粉 + 仙人掌
仅示例,生产方式不唯一
注意:这些产线不需要很高效,只需要有自动化就可以了。在新版机械动力中,大部分生产部件都是可以替换、拆解的,快速迭代自动化带来的效率/便利度提升往往更大
锁链网络:解决应力和物流布线难题
锁链传动(包裹可以穿墙)锁链传动轮,以及用铁链连接而成的网络,由于其可以任意连接,所以不用再考虑机器之间的位置问题。机器修在哪里都行,一根链子拉过去,应力就传过去了。
包裹可以由蛙港挂上/拉下锁链网,并自动寻址,而且没有“撞车”的情况。这是一种更高效、更稳健的物流方式,也使不同地方的机器联动生产成为了可能。
tip:蛙港不能比锁链高,所以锁链网不建议放在地下。
关联机器:解放双手
所谓产线,即多个有先后关系、互相依赖的生产过程。一般来说,6.0以前的蓝图大多是独立式的,例如“内置刷石机”,或“仅输入xxx”。这对于单个机器来说很好,但是作为产线生产就不那么友好了。这意味着要么你需要手动转移中间产物,或者是通过奇妙的方法在机器之间拉传送带之类的。美观暂且不论,如果一直使用这种方式,大概率会影响总体生产效率。而如果利用锁链网将机器的原料和产物关联就方便多了。
以下这个结构即一般的物品IO接口(蛙港必须在打包机上面,其他随便摆,贴着就行了)。带有仓储链接站的可以作为输出,也可以输入。带有工厂仪表的一般是输入。
以圆石生铁为例。中间产物砂砾是多个产线的枢纽,不仅需要洗涤出铁,还需要负责安山岩和金的生产。
刷石机圆石磨砂砾砂砾磨沙子砂砾刷铁沙子缠魂得灵魂沙灵魂沙洗涤得金按图示这么贴仪表的时候,仪表会自动提供上方蛙港的地址,打开GUI点一下就行了。
这样每个部件都拆成单独的环节,并通过仪表自动补充原料,直到不能继续加工(满箱)为止。
这六个图只是原理机,不需要真拆得这么碎。这只是说明各个部件可以通过仪表联动,而不需要全挤在一起。当产能不够时,也可以通过调整仪表阈值来控制加工比重。
进阶智能化:全物品你好
机械动力暂时还做不到像AE2一样自动分析一个超长的产线,但全物品对于机械动力来说也是轻轻松松(除了不能生产的物品)。
倘若是6.x以前,如果想要做自动化全物品,就需要每种/类物品都搓个机子,而且布线是噩梦。而在新版,从安山时代到全物品,你只需要增加几个生产单元,再写一些仪表就行了。
模块与封装
物品虽多,但论生产方式,其实并不多。相同的生产方式,输入不同的原料,得到不同的产品。这意味着我们可以将某些生产方式剥离出来作为单独的通用加工模块。
加工元件加工方式粉碎轮/石磨粉碎/研磨冲压机冲压(平压)、塑形(盆压)、压缩搅拌器混合搅拌、无序合成、酿造合成器固定合成(3x3)、无序合成、大合成(>9格的配方)鼓风机批量加工(熔炼、烟熏、洗涤、缠魂)动力锯切割一个简单的粉碎阵列示例
所有的粉碎配方只需要发送到这里,即可进行迅速的批量粉碎。图中带有拉杆的打包机自动输出回仓库。
不推荐将冲压机的压缩、搅拌器的无序合成、动力锯的切割进行通用加工,因为这些加工方式往往有一种原料多种产物的情况。这些情况就需要添加过滤,否则会出现各种奇奇怪怪的产物。
同样的,基于包裹系统只认地址不认机器的特点,我们也可以将某些不属于通用加工的产线,或者说是6.0以前的一些机器,加上输入输出接口,变成封装产线。它的功能类似于上面的通用加工模块,但是仅针对一种或几种配方。例如黄铜、精密构件等等。
精密构件机(黄铜漏斗过滤半成品)
通过通用加工模块和封装式产线,我们就实现了大部分能加工的物品所用到的全部加工方式。
关于合成类配方
种类最繁杂,加工也最慢的方式是合成。工厂仪表提供了“使用合成器合成”的选项,但这种加工方式限制了每次发包,只能合成一次。这使得合成矩阵的效率会极大地制约非大宗类物品的生产效率。
如图是一个示例的合成矩阵,仅有一个输入蛙港和一个理包机。为了防止包裹错乱,合成矩阵的入口务必设置理包机。但理包机/打包机的效率很低,仅设置一个理包机的结果就是图中的合成器至多只有一个在工作。
解决方法之一是将合成器拆成多个组,不同的配方使用不同的组,以将合成压力均摊。这是一种可行的方法,只不过笔者个人倾向于通用性,而分组合成对于配方编码设计的要求高一点,因为有时不能预料到什么物品需求大。
另一种解决方法就是增加蛙港输入口和理包机的数量。基于短板原理,只要输入口这个决速步的速率提升了,整个合成矩阵的效率都会大大提升。根据笔者个人的经验,9列合成器虽然看起来小,但是满速运行的效率并不低。(如果服里有建筑大佬就另说。升级合成矩阵吧)
对于特定的配方,例如2*2压缩配方(线合成羊毛,雪球合成雪块……),可以使用冲压机执行压缩配方,但笔者推荐使用……牛爷爷(原版合成器)。
一个很快的2*2压缩机
由于溜槽一次性输入16个物品,而牛爷爷不怎么智能……所以这种2*2的配方需要一次性发送一组(16*4)原料。3*3同理,16*9个原料,可以连接多个表。
至于粉碎轮、土豆加农炮之类的大配方,可以按照封装产线的思路设计。
仪表网络:工厂大脑
在模块加工的基础上,再加上一些原材料的生产(无输入的输出,包括刷石机、树场等,也包括刷怪笼等),距离全物品只差最后一步——仪表网络。它是监控整个网络内资源动态,自动调度生产的核心。
物品加工关系错综复杂,最后可能会写成这样:
笔者所在某服务器仪表墙(的一小部分)
仪表线是否美观并不影响仪表功能的执行。(也不排除有人会拿仪表线作装饰?)。所以笔者建议……与其把线理清楚,不如直接密铺仪表,把不同类型的物品分清区域就行了(例如图中偏原料类的靠左,整体上是从左向右合成)。
此时一些常见物品的生产,例如铁、金等等,已经不需要单独设置机器了。这些物品的生产流程已经“溶解”在仪表网络中了。
有一类特殊的物品,例如铁粒铁锭铁块,可以双向压缩解包。这种物品,如果不是储存空间太过于紧张的话,建议单向合成。即铁块由铁锭合成,铁锭由铁粒合成,铁粒由砂砾洗涤补齐。双向合成往往会引起合成网络振荡。
一些仪表小技巧
限时承诺
(承诺的定义见工厂仪表资料)
限时承诺即一段时间未满足的承诺自动取消。它本来是用于某些不定产物的配方,例如精密构件、洗涤,以及掉落物相关(例如蠹虫经验机、自动刷怪笼)
但有些时候,对于需求较大但是加工又比较慢的物品,也可以通过这种方式来跳过仪表等待,一次性合成更多物品。
正在合成20组粘土球
超大配方/多重配方-双仪表法
这并不常见,但在某些整合包里面可能会遇到:一个配方可能有超过9类原料。这种情况下,是不是仪表就无能为力了呢?
并不是。你可以写两个仪表。
上图是两个纸板机配方示例。这两个仪表互不干涉。当缺少纸板时,两个仪表都会工作,即发出一组树苗和一组竹子,实际加工会得到半组纸板。但是,当16个纸板返回仓库,这两个仪表都会认为是收到了自己的产物
,于是清除了承诺。
纸板机只是一个示例。如果是多于九个原料的配方,那么就可以使用两个仪表,各发一半原料。最终依然可以合成超大配方的产品。
双仪表法也可以通过设置不同的阈值,来调整不同原料的消耗。例如示例图中,以树苗为原料的纸板仪表阈值是2组,而竹子是6组。这是因为在有骨粉竹机的条件下,竹子可以由骨粉生产,而骨粉由净产出骨粉机提供。那么,当纸板严重缺乏(低于2组)时,会临时抽调获取不稳定的树苗来快速生产纸板。当纸板还有一定余量(2~6组)时,则使用可视为无限的竹子来慢慢补齐。
地址规范
读者可能注意到在前面几个示例图中笔者使用了特定格式的地址。这是笔者在服务器里的截图(用英文是因为输入法修复导致剪贴板上打不了中文……)。
由于自然语言的歧义性,如果仅使用一个词作为地址,有可能会引起误解,进而导致地址写错(往往是多人游戏时。单人无所谓,你习惯就行)。为了避免混淆,(以及为了格式好看)笔者个人习惯在地址开头标注地址类型,例如仓储STORAGE,通用加工PROCESS,封装加工PRODUCE,提取点EXTRACT,邮递STATION……
这仅仅只是笔者个人习惯,仅分享,不强制推荐。(因为写起来毕竟繁琐的)
仓储与调度
一个完善的自动化工厂需要一个仓储中心。这个仓储中心其实是概念上的,因为即使是分布式的仓储也没有问题,只要地址写对,西米布比会处理好一切的。
由于机械动力的仪表系统,实际上仓库用不了多大。对于仪表来说,只要仓库里“有”原料,就可以加工,而不在于原料“有多少”。仓库最大的用处其实是提供一个地址给加工模块返回产物。例如笔者的仓库地址是STORAGE: *。这可以匹配任意以STORAGE: 开头的地址,也就是所谓的通用仓库。这样,加工模块的输出端就可以直接打包回仓库。
一个输出示例
关于机械动力包裹地址正则匹配规则,见这里。机械动力使用的是简化的正则匹配(Glob)。
调度,在这里特指工厂仪表的补货模式。这种模式不参与物品加工,仅仅是把物流网络里的某种物资集中到某个容器里。
这通常有这些用途:
为某些不值得单独写配方,或者不确定使用量的原料自动供货。例如岩浆桶(假设需要远程运输岩浆),经验修补,村民交易的线(自动供给)
便捷拿取,例如有些东西用量大,你不想在库存中慢慢找,那么就可以用这种方式,把某些物品专门提取到箱子里。
平衡压缩变种,即铁块铁锭铁粒等,通过自动调货,以及牛爷爷+比较器,可以保持仓库内三态铁均有一定存量,而不至于一边倒。(通常是用不到的)
发报器
仓储发报机,也即人工物流交互窗口,能够人工把某些物品发送到特定地址。但一般是用于提货的。
右键仓储发报机,可以新建类别,并塞进过滤器(列表过滤器/属性过滤器),以此让你的仓库界面不再乱糟糟的
邮箱与多态识别
邮箱本身并没有什么特别的,只是一个会自动从火车上卸货的容器。问题除了包裹怎么抵达对应的站点以外,还有是包裹如何进一步分拣。
基于前面提到的地址正则匹配,笔者提供一个参考的方案。
以女巫塔为例,包裹从女巫塔上车,携带<车站名>和<标签>两个参数。车站只识别其中一个,并通过正则匹配,把该车站的包裹拉下车。随后,由分拣装置根据第二个参数进行分拣。
更方便的蓝图机
蓝图机通过剪贴板打印出来的材料清单可以直接右键仓库管理员,发送仓库里现有的符合要求的物资。也就是说,如果你在提货点箱子旁边放个大炮,那么——
“是的,我们机械动力玩家用不到左键。”
最后的话
笔者觉得新版机械动力在智能化这一块直接提升了一个数量级……玩得心潮澎湃,于是搓了这么一篇教程。
奈何我并不是大佬,而且语言表达依砣。所以……恳请指正。
玩得开心就好