MC1.16.5 CrT复制物品
copy_item 是充当复制器的物品,这里用的工作台
因为MC1.12到1.16有较大的变化,CrT也变了很多,不能像之前那样了。
首先是 配方函数,函数有新的写法不要紧,主要是它使用的参数变了。
他只能单纯的接收输入和输出物品。而且我在1.12时说过,函数使用的输入实际上是工作台摆放的物品状态,它实际上是包含你摆放的数量的。
但1.16不同,他就真的是纯粹的输入和输出,不带任何数量。所以实现任意数量的复制就不太可能了,我也只能退而求其次添加了4个复制配方。覆盖最常用的几个数字1、4,16,64。




64倍配方里面呢是直接写明了 *64 。这个是允许超上限的,像是钻石镐复制出来就是64个叠在一起。
1.12种配方函数可以接收合成时周边的环境状态,比方说玩家,可以写一些复杂的合成表限制,比方说玩家必须达到5级以上,或者必须在末地才能合成。而在1.16中这些完全不可以。就只是纯粹的输入输出。想要达到合成限制估计得配合上一些其他事件函数吧。实用设备的。不稳定铁锭也不会像之前一样10秒之内或者关掉窗口爆炸了。兴许是游戏机制的限制,让这事儿变得不可能了。黄金套索也不能扣经验了。
上次我提到了复制物品,就是三个条件综合在一起的复杂的合成。
1、模糊匹配。
2、合成没有消耗。
3、合成成品会根据原材料发生改变。
第一模糊匹配,这还是有一点麻烦的,因为尖引号<>引用有了大改变,不能用星号模糊匹配了。
查找API时找到了一个,它可以在合成中代指任何物品。不然的话可能就要写一个大条件,把所有的物品遍历一遍了。
合成不消耗,这一点几乎没改变。加上.reuse()即可
函数写法有了点变化。还有参数的使用,输入物品直接是二维列表,不再需要加标记了。只需要数相对位置就行了。
1.12中需要两个函数,一个合成函数,一个合成后事件函数。1.16中只有一个。下面就是1.16的复制代码。相对于1.12的寥寥几行还是太多了。但是没有办法受游戏机制的限制。