如何在创造快速完成全物品分类器漏斗的填充以及编码全物品编码器的配置
六月搬运介绍了一点carpet script,不过没有发专栏,现在结合我最近的实际应用来分享
主要着重于基于现有工具,不自己造轮子地轻松完成标题所提的工作
主要有便于更快在创造进行测试
首先是放出附件(https://drive.google.com/file/d/1-15uqzEHvOxfzDNAp8RuVI-4-EOHKasB/view?usp=drive_link)把其中附件1里这些塞进世界存档文件夹的scripts文件夹就足以使用了,附件2是更全的一篇介绍文章,搬运了storage tech discord的资源频道的主要内容.

首先看看如何快速完成分类器漏斗的填充
第一步
在全物品排版已经完成的基础上

我们对单条物品陈列使用"/itemlayout 头部坐标 尾部坐标 展示框面朝的方向(比如图中为east) 文件名"
注意这个头尾决定了顺序
(这里我们只截取图中部分)
这样我们就得到了一个txt文件,这里文件名设为1
itemlayout这个carpet script的功能是能够识别一条陈列上的方块以及指定方向上附着的方块/展示框/盆栽,我们还能用"/itemlayout defaultblock set 某物品" 来让这个过程忽略某种背景方块,如图中展示框背后的石英楼梯,只不过这个忽略指令是不必要的
我们能够使用"/itemlayout view 文件名" 来查看

得到的1.txt位于scripts/shared/itemlayout文件夹下
内容如下图

第二步
我们将1.txt移动到/scripts/storagetech_aid.data/item_lists
然后
/script load storagetch_aid
/storagetech_aid set_hopper_ss 2
#这里设置的是分类器分类漏斗的容量信号强度常见的ab大吸力单片这里就是2
/storagetech_aid set_fst_slot_fill_level 1
#这里设置第一个槽位填多少,如果8gt解锁可以1,大于8gt解锁只能2+了
/storagetech_aid hopper_from_file 1
然后得到一个脚本执行道具,朝着正确的方向以正确的姿势放下它,就会在这个方向按上面txt的顺序生成分类器漏斗,如下图


依此类推,习惯后几分钟就能完成一个全物品的漏斗填充,要注意的是文件操作后不用重启游戏

接着来看编码全物品的编码器填充,需要自己按照自己的编码规则写python脚本之类的
难度其实比较低
这里举两个例子
一个是鱼油的骗子吗服新全物品,编码规则如下:
18组箱子编码18个水道(其实是10个水道,只不过有两段,其中一段有两个水道变成大宗物品的位置),
每个水道48个物品(有的箱子设置了对应多种物品,这里忽略),
18以5位二进制编码,48以6位二进制编码,
我们先用itemlayout把18条全物品排版保存为1.txt到18.txt共18个txt文件
再在这6位的编码规则上做了一些减少编码器箱数的优化,得到了一个与片对应的48个6位2进制数字符串的列表,根据其规律用脚本生成后记入binary_codes.txt,然后写了如下的代码,根据binary_codes.txt处理上面得到的18个txt,得到了6位里每一位需要填入编码器的物品的列表
接着,再写个脚本将这个列表分割为最大54行的几个txt(大于54行这个storagetch_aid会不放进箱子并告诉你超出了),为了方便管理为每一bit建个文件夹
我们得到了b1到b6 6个文件夹,如b1里数个txt是第6位码对应的编码箱要填的所有物品,我们将这些txt放进/scripts/storagetech_aid.data/encoders
然后在游戏内清空身上物品,使用(对每次都是这样用)
/script load storagetch_aid
得到的第3个脚本执行物品就是我们需要的编码箱,使用后效果如下图


然后我们可以把移动到这的txt文件删了,移入新的
以此类推,我们能把6bit都放出来
18个水道的txt本来就通过itemlayout得到了,像上面一样全都放在/scripts/storagetech_aid.data/encoders然后来一次同样的操作就能放完了
至此我们完成了所有编码器的箱子的填充,剩下只需要想办法配合编码器就行了
再来看看lrp新编码全物品
编码规则是将全物品过道分成1-60,61-120,121-180,181-240四组片,每组片有4个水道,最后合起来还是一个一字型全物品,水道用两位二进制编码,单片用8位二进制编码,拼合成10位二进制,使用5+5的位组优化编码器使用的箱子数目到61
所以我们用itemlayout获取txt后拼接一下,变成4个每个含有240个字符串的txt文件
再用如下python脚本处理即可
这里不会有txt大于54行,不用分割,接着只要把脚本创建的a文件夹的txt都移到/scripts/storagetech_aid.data/encoders操作一次,同样对b
很快就结束了工作
当然,这些代码肯定不算多规范仅作示例,或许问chatgpt也能完美解决

总结
如果有一个集成度更高的工具肯定更好,不过鉴于这些工作做的人本就不多,所以也不是很有必要,利用现有工具已经足够高效.