ModularMachinery Wiki(ZH)/配方排序
你也许想给一台机械添加一个配方 。比如输入 1 coal + energy 输出 1 iron. 现在你想提高一下玩家的游戏体验,你就可以定义一个输入1 coal+ 1 bucket of lava + energy 输出4 iron的配方。
但是这么整会出大问题如果玩家提供的泛输入物品是 coal + lava + energy, 那么机械就只会先检查 1 coal + energy => 1 iron 作为运行配方,当输入物品满足此配方时只会输出1 iron且不会将lava作为输入物品使用,也就是说配方之间会产生冲突。
一般情况下,mod会根据配方需要的输入物品的数量和类型对配方进行排序。所以在上面描述的配方匹配失败一般不会发生,如果你碰到了上面描述的问题,我建议你去买彩票。
所以我们应该动动脑子想一下怎么避免这样的情况。我们都知道优先级这个东西,那么给配方定义优先级就是。这样,你就可以"告诉"mod哪些配方优先检查,哪些后检查. (JEI的配方预览显示顺序也会被改变!)
优先级数字越大,检查顺序越靠前。
样例:
[...]
"machine": "...",
"registryName": "...",
"recipeTime": 20,
"priority": 2,
"requirements": [
[...]
"priority"即为优先级(只接受整数型数字),如果不定义优先级那么"priority"为0.
CraftTweaker中优先级如此配置:
mods.modularmachinery.RecipeBuilder.newBuilder(String 配方注册名, String 机械注册名, int 运行Tick数, int 优先级);
Tr:Eicy