本篇教程由作者设定使用 CC BY-NC-SA 协议。

1.[进阶]自动把水晶大小养到最大(简易)

这个教程根据水晶的种类可能某些地方会有所不同,如果你看明白了,可以根据想养的水晶更改一些参数,这里以天体水晶为例.

自动养水晶可以分为两个部分:当水晶体积达到最大值(这里是900)时,回收水晶;当水晶被回收后自动投放一个水晶,推荐使用"花格箱"或者集成管道的"物品投掷口",原版的"投掷器"弹道太难受了(;¬_¬)

首先,这样摆放(可以自己发挥)集成动力实例教程_星辉魔法水晶自动化(2)-第1张图片先做自动投放水晶的自动化,先打开"实体读取器"获得一张"实体数"的变量卡,这会返回一个包含了"实体读取器"前面一格内的所有实体的"列表",当这一格里没有东西的时候,就需要投掷一个水晶,所以打开"逻辑编程器"搜索 空 ,找到"运算符:空"注意有两个,这里需要的是类别为"列表"的那个,将输入槽标记刚获得的实体数变量卡,获得一张返回值为"布尔"的变量卡,当星能液中没有实体时,变量卡的值就是"true"集成动力实例教程_星辉魔法水晶自动化(2)-第2张图片再将这个变量卡放入"物品投掷器"的"投掷所有物品"这一栏,再将实体数变量卡放入接入网络的"变量卡箱",如果箱子里有东西的话,就可以看到一个物品被投掷出来了,但是这样子网络中的其他接口所连接容器中的物品也会被投掷出来,所以要设置一下频道.

打开上方连接箱子的"物品接口"设置"接口频道"为一个没有在使用的频道,这里设置的是2集成动力实例教程_星辉魔法水晶自动化(2)-第3张图片然后打开"物品投掷器",点击"投掷所有物品"条目右边的加号,将"频道"设置成刚刚的频道集成动力实例教程_星辉魔法水晶自动化(2)-第4张图片投放水晶的部分就做好了,现在做回收水晶的部分.

打开"实体读取器",获得一张实体的变量卡,不再是之前的实体数变量卡了,然后,众所周知,mc里的方块,实体,物品数据都是储存在nbt里的,所以打开"逻辑编程器",搜索实体,找到"运算符:Item(item)",输入槽位标记刚获得的实体变量卡,获得一张返回物品的Item变量卡(这一步是为了之后的部分准备的,直接用实体来获得nbt也可以做的同样的效果),再搜索nbt,找到"运算符:物品nbt(nbt())"输入槽标记刚刚的Item变量卡,获得一张返回nbt的物品nbt变量卡,将这张变量卡放进"屏幕",其他变量卡放入"变量卡箱",观察一下天体水晶的nbt数据,如下集成动力实例教程_星辉魔法水晶自动化(2)-第5张图片可以看到天体水晶的体积数据是对应"size"这个"字符串"的,但是他是有几层嵌套,嵌套进去的nbt数据,所以先要提取出前几层nbt数据,通过top可以看到第一层的关键字"字符串"是"astralsorcery",第二层是"crystalProperties",第三层就是需要的nbt数据了.

所以,打开逻辑编程器,创建三个"字符串"变量,值分别为"astralsorcery","crystalProperties"和"size",然后搜索nbt,找到"运算符:NBT数据:NBT(NBT.tag())"左右输入槽分别标记物品nbt的变量卡和值为"astralsorcery"这个字符串的变量卡,获得第一层nbt数据,然后将刚得到的这张第一层nbt数据变量卡标记左边的槽位,值为"crystalProperties"这个字符串的变量卡标记右边的槽位,获得第二层nbt数据,借助屏幕,可以看到这个nbt数据如下集成动力实例教程_星辉魔法水晶自动化(2)-第6张图片其中的"size"所对应的"392"就是需要的体积数据,打开"逻辑编程器",搜素nbt,找到"运算符:NBT数据:整型(nbt.integer())"左边标记刚刚的二层nbt数据变量卡,右边标记值为"size"的字符串变量卡,获得一张返回"整型"的变量卡,他的值就是星能液中天体水晶的体积.

现在想要做到的效果是当水晶的体积达到最大值(900)的时候回收,所以打开"逻辑编程器",创建一个"整型"变量卡,值为900,再搜索 等 ,找到"运算符:相等(==)"输入槽分别标记最后做出来的那张值是天体水晶体积的变量卡和值为900的整型变量卡,获得一张返回布尔值的变量卡,当星能液中天体水晶的体积为900时,这张变量卡的值就是"true",否则就是"false",然后将这张变量卡放入"物品拾取口"的拾取所有物品条目,自动化建造完成.

但是这个自动化还有很多缺点,而且只能手动补充体积不满的水晶到箱子里才会工作,不是全自动,下一篇教程将会解决这个问题,让他可以检测体积,只投掷体积不到900的水晶

其实用两个"物品接口"可以完美解决这个问题.....,将上篇教程的"物品拾取口"的频道和这一篇教程的"物品投掷口"的频道和"物品接口"的频道改成一个,其他的改成另一个,就可以一个箱子里只有满体积的水晶,另一个箱子里只有不满体积的水晶了,感觉更好啊......那我之前何必研究那么半天弄这个检测呢......

总之,下一篇教程还是会写怎么将一个箱子里体积不满900的水晶单独提取出来,毕竟构建一个自定义的变量卡可是这个mod的精髓啊