本篇教程由作者设定使用 CC BY-NC-SA 协议。
本教程编写版本为1.20.1
本教程需要一定的kubejs基础
请勿直接将本文的代码复制粘贴,否则会出现引号错误或是空格错误的情况
事前准备
首先请确认你的模组文件夹内有以下模组:
机械动力、KubeJs、KubeJs Create、ProbeJS
并且你的设备中安装了vscode
如果你在教程中发现了错误的地方或是有什么建议请在评论区指出
开始编写代码
启动你的minecraft,这时你会发现版本文件夹下多出了kubejs文件夹,我们接下来的工作都要在这里面进行。
在游戏中输入/probejs dump并将你的kubejs文件夹用vscode打开
在sever_scripts文件夹中创建一个XXX.js文件,或在文件夹中创建文件夹并在创建的文件夹中创建文件(好绕啊)
如果你不想自动添加配方(石磨自动添加粉碎轮配方,工作台合成自动添加动力合成器配方等),请在配方 ID 的末尾添加:manual_only
例:
event.recipes.create.milling('minecraft:wet_sponge', ['minecraft:sponge']).id('命名空间:***_manual_only')示例
ServerEvents.recipes(event =>{
})这是一个固定搭配,不论是添加配方或是移除配方都必须写,下文的所有代码都必须写在大括号/花括号中间
const {create} = event.recipes这一段这么写是因为接下来会更方便我们去边写代码,你也可以不这么做,那么你接下来要记得替换
辊压机
动力辊压机(机械动力6.0.0及以后版本翻译为动力冲压机)分为压块塑形和金属压片
压块塑形
例
泥土被压一下变成草方块无中生草
create.compacting("minecraft:grass_block","minecraft:dirt")前面的是输出,后面的是输入
动力辊压机也可以加热或者超级加热
create.compacting("minecraft:grass_block","minecraft:dirt").heated()
//加热
create.compacting("minecraft:grass_block","minecraft:dirt").superheated()
//超级加热同时动力辊压机也可以输出流体
例
岩浆被压一下变成水
create.compacting(fluid.water(1000),fluid.lava(1000))
同时辊压机可以进行概率输出与多种物品输出
例
压沙砾100%输出燧石,10%输出钻石
create.compacting(["minecraft:flint",Item.of("diamond").withChance(0.1)],"minecraft:gravel")withChance中的概率1为100%,0.1为10%,以此类推
金属压片
泥土通过压片变成草方块
create.pressing("minecraft:dirt","minecraft:grass_block")可以看见与压块没有什么太大的区别,仅仅只是将“compacting”替换成了“pressing”,其余都相同。
搅拌器
搅拌器支持多个输入输出,概率输出,加热和超级加热
泥土加水搅拌成草方块
create.mixing("minecraft:grass_block",[fluid.water(1000),"minecraft:dirt"])可以看见与压块没有什么太大的区别,仅仅只是将“compacting”替换成了“mixing”,其余都相同。
鼓风机
鼓风机只能更改水洗和缠魂,因为鼓风机熔炼和烟熏自动绑定高炉和烟熏炉,想要添加请添加高炉/烟熏炉配方
鼓风机支持多物品输出和概率输出
水洗
水洗草方块获得泥土
create.splashing("minecraft:dirt","minecraft:grass_block")
//前输出,后输入缠魂
缠魂泥土获得灵魂土
create.haunting("minecraft:soul_soil","minecraft:dirt")
//前输出,后输入石磨
石磨支持多物品输出以及概率输出
磨砂土获得2*泥土
create.milling(Item.of('minecraft:dirt',2),'minecraft:coarse_dirt')
//前输出,后输入粉碎轮
粉碎轮支持添加处理时间(可选)
粉碎砂土获得2*泥土
create.crushing(Item.of('minecraft:dirt',2),'minecraft:coarse_dirt).processingTime(20*200)
//前输出,后输入注液器
注液器需要输入物品,输入流体,输出物品
泥土注入水获得草方块
create.filling("minecraft:grass_block",["minecraft:dirt",Fluid.of('minecraft:water',1000)])
//前输出物品,中输入物品,后输入流体分液池
分液池与注液器相反,它需要输入物品,输出流体,输出物品
草方块分液出泥土和水
create.emptying([Fluid.of('water',1000),'minecraft:dirt'],'minecraft:grass_block')
//前输出流体,中输出物品,后输入物品动力锯
动力锯支持多个输出和概率输出,并且自定义支持处理时间
锯西瓜获得6*西瓜片
create.cutting(Item.of('minecraft:melon_slice',6),'minecraft:melon')
//前输出,后输入机械手
机械手支持多个输出和概率输出
小齿轮安装木板变成大齿轮
create.deploying('create:large_cogwheel',['create:cogwheel','minecraft:oak_planks'])
//这里前面是输出,中间是被安装的,后面是机械手上面拿的,不要搞混了或者不消耗机械手上的物品
create.deploying('create:large_cogwheel',['create:cogwheel','minecraft:oak_planks']).keepHeldItem砂纸
砂纸支持概率输出
氧化铜块磨成铜块
create.sandpaper_polishing('minecraft:copper_block','minecraft:oxidized_copper')
//前输出,后输入动力合成器
动力合成器和工作台类似,但是比工作台大,最多支持9*9的合成表
create.mechanical_crafting('minecraft:spawner',
//输出
[
"IBBI",
"B B",
"B B",
"IBBI"
],
//合成配方
{
I:"minecraft:iron_ingot",
//铁锭
B:"minecraft:iron_bars"
//铁栏杆
}
//字母所代表的物品
)序列组装
序列组装会有半成品出现,例如半成品精密构件,所以我们需要先来指定一个半成品。官方文档给出的建议是使用半成品精密构件,因为它没有配方,当然你也可以用别的。这里我使用半成品精密构件来演示
const incomplete = 'create:incomplete_precision_mechanism'(可选,选了会方便,不选的记得替换)
create.sequenced_assembly(
[
Item.of("dirt").withChance(0.1),
Item.of("oak_planks").withChance(0.9)
],
//输出列表,最上面的为主产物,下面的为副产物
'minecraft:oak_log',
//输入物品
[
//参与的机器,有四种可选
//输入输出物品均为半成品物品
//机械手,可物品不消耗
//动力锯
//注液器
//辊压机
create.deploying(incomplete,[incomplete,'minecraft:grass_block']).keepHeldItem(),
create.cutting(incomplete,incomplete),
create.filling(incomplete,[incomplete,Fluid.water(1000)]),
create.pressing(incomplete,incomplete)
]
)
.transitionalItem(incomplete)
//半成品物品
.loops(10)
//循环次数,默认为5


