本篇教程由作者设定未经允许禁止转载。

乡村mod现在包含了对crt的联动,以便整合包制作者可以使用这个系统自定义添加和删除配方。

压榨木盆

要添加配方,请使用

mods.rustic.CrushingTub.addRecipe( output ,  byproduct ,  input ) ;

其中输出(output)是流体堆栈(liquidStack),

副产物(byproduct)和输入(input)都是物品堆栈(itemStack),副产物(byproduct)可选。


要删除配方,请使用以下任一方法:

mods.rustic.CrushingTub.removeRecipe( output , input );
mods.rustic.CrushingTub.removeRecipe( output );
mods.rustic.CrushingTub.removeRecipe( input );

其中输出(output)是流体堆栈(liquidStack),副产物(byproduct)和输入(input)都是物品堆栈(itemStack)。



蒸发皿

要添加配方,请使用以下任一方法:

mods.rustic.EvaporatingBasin.addRecipe(output, input);
mods.rustic.EvaporatingBasin.addRecipe(output, input, time);

其中输出(output)是物品堆栈(itemStack),输入(input)是流体堆栈(liquidStack),时间(time)是输入蒸发所需的刻度数。

要删除配方,请使用以下方法之一:

mods.rustic.EvaporatingBasin.removeRecipe(output);
mods.rustic.EvaporatingBasin.removeRecipe(input);

其中输出(output)是流体堆栈(liquidStack),输入(input)是流体堆栈(liquidStack)。



炼金配方

从0.3.12版本开始,为了在脚本中使用具有自定义效果的炼金药物品堆栈(itemStack),您需要使用新的炼金药格式。格式为:

{ElixirEffects:[{Effect:"[效果注册名]", Duration:[这里写持续时间], Amplifier:[放大值*尚不明确]}]};   //具体方法见下方事例

炼金术配方分为简单配方和高级配方。”简单“配方可以在标准冷凝器中执行,而“高级”配方则需要高级冷凝器。

在以下所有方法中,如果配方具有两种或更少的ingredients并且没有修饰符(modifier),则配方属于“简单”。

如果您希望强制使用不含 2 种ingredients,不含修饰符(modifier)的配方需要高级冷凝器,您可以添加第一个ingredients,以获得 3 种ingredients的配方,其中一种ingredients被忽略。

要添加"简单"类型的炼金术配方(2 种或更少的ingredients,无修饰符),您可以使用"简单"的方法:

mods.rustic.Condenser.addRecipe(IItemStack output, IIngredient input1, IIngredient input2);

其中:

  • output是配方的输出

  • input1是第一个输入

  • input2是第二个输入

以这种方式添加的配方会自动满足"简单"的配方标准,尽管您的控制权较少。

在版本 1.1.3 之前,input必须在版本 1.1.3 中,完整的支持添加IItemStack,IIngredient(这句话着实看不懂)

为了更好地控制修饰符、瓶子、烹饪时间和所需的流体,完整的方法是:

此方法仅在版本 1.1.3+ 上可用

mods.rustic.Condenser.addRecipe(IItemStack output, IIngredients[] inputs, @optional IIngredient modifier, @option IIngredient bottle,@optional ILiquidStack fluid, @optional int time);

其中:

  • output是配方输出

  • inputs是最多 3 个输入的数组

  • modifier是必需的修饰符,可以是或省略(在这种情况下它是空类)

  • bottle是瓶槽中所需的瓶子。如果省略,它默认为MC原版玻璃瓶。如果,则不需要瓶子。(警告:不要将炉子中可用作燃料的物品用作瓶子,否则配方无法自动化。有关详细信息,请参阅炼金术页面。[也就是说燃料槽和瓶子槽都是同一个物品])

  • fluid是要消耗的液体和量。如果或省略,则默认为 125mb 水(即 CrT 语法)<liquid:water> * 125

  • time是配方完成所需的时间(以刻度为单位),如果省略,则默认为 400。

所有可选参数都可以省略,但不能跳过。您可以使用null  time  bottle将可选参数(但不是 ,另请参阅)保留为其默认值

简而言之,您可以使用如下方法:

mods.rustic.Condenser.addRecipe(output, itemstack[] inputs);
mods.rustic.Condenser.addRecipe(output, itemstack[] inputs, modifier);
mods.rustic.Condenser.addRecipe(output, itemstack[] inputs, modifier, bottle);
mods.rustic.Condenser.addRecipe(output, itemstack[] inputs, modifier, bottle, fluid);
mods.rustic.Condenser.addRecipe(output, itemstack[] inputs, modifier, bottle, fluid, time);

要删除配方,请使用

mods.rustic.Condenser.removeRecipe(IItemStack output);

其中output是要删除其配方的输出。



配方添加示例

压榨木盆:

mods.rustic.CrushingTub.addRecipe(<liquid:water> * 125, null, <minecraft:melon> * 1);//在盆里以一个西瓜踩出125mB的水

蒸发皿:

mods.rustic.EvaporatingBasin.addRecipe(<minecraft:sugar> * 1, <liquid:oliveoil> * 750);//在每个默认时间内将750mB的橄榄油转化为一份糖

炼金器

val slownessElixir = <rustic:elixir>.withTag({ElixirEffects: [{Effect: "minecraft:slowness", Duration: 1800, Amplifier: 0}]});
//定义一个叫slownessElixir的药水,效果是缓慢,持续时间1800tick,就是90秒
val slownessExtendedElixir = <rustic:elixir>.withTag({ElixirEffects: [{Effect: "minecraft:slowness", Duration: 4800, Amplifier: 0}]});//定义一个叫slownessExtendedElixir的药水,效果是缓慢,持续时间4800tick

mods.rustic.Condenser.addRecipe(slownessElixir, <minecraft:web>, <minecraft:vine>);
//需要用蜘蛛网和藤蔓酿造出上面定义的叫slownessElixir的药水
mods.rustic.Condenser.addRecipe(slownessExtendedElixir, [<minecraft:web>, <minecraft:vine>], <rustic:horsetail>);
//需要用蜘蛛网,藤蔓,马尾酿造出上面定义的叫slownessExtendedElixir的药水

此教程为个人翻译,可能会有些生硬,如有错误请在评论区指出。

以及官方WIKI写的真飘逸,找了半天很多地方都对不上号