本篇教程由作者设定未经允许禁止转载。
乡村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写的真飘逸,找了半天很多地方都对不上号