MC版本:1.12.2 仅使用CraftTweaker
一、雾化器(Atomizer)
所属包:mods.alchemistry.Atomizer
//添加
mods.alchemistry.Atomizer.addRecipe(IItemStack output, ILiquidStack input); //前后两个参数分别是输出,输入,下同
mods.alchemistry.Atomizer.addRecipe(<minecraft:redstone>,<liquid:beryllium>*500); //实例,下同
//移除
mods.alchemistry.Atomizer.removeRecipe(ILiquidStack input); //运行时忽视数量
mods.alchemistry.Atomizer.removeRecipe(<liquid:iron>);
mods.alchemistry.Atomizer.removeAllRecipes(); //移除雾化器全部配方,下同
二.化学化合机(Chemical Combiner)
所属包:mods.alchemistry.Combiner
//添加
mods.alchemistry.Combiner.addRecipe(IItemStack output, IItemstack[] input);
mods.alchemistry.Combiner.addRecipe(<minecraft:redstone>,
[<alchemistry:element:5>,<alchemistry:element:5>,null,
<alchemistry:element:5>]);
//移除
mods.alchemistry.Combiner.removeRecipe(IItemStack output);
mods.alchemistry.Combiner.removeRecipe(<minecraft:gold_ingot>);
mods.alchemistry.Combiner.removeAllRecipes();
//如果加入了gamestage模组可以设置到阶段才能用的配方联动
//新建
mods.alchemistry.Combiner.addStagedRecipe(IItemStack output, IItemstack[] input, String stage);
//设置已有配方
mods.alchemistry.Combiner.setAsStaged(IItemStack output, String stage);
三.化学溶解机(Chemical Disslover)
所属包:mods.alchemistry.Dissolver
//添加
mods.alchemistry.Dissolver.addRecipe(IIngredient input, boolean relativeProbability, int rolls, Object[][] probabilityGroups);
mods.alchemistry.Dissolver.addRecipe(<minecraft:dye:9>, false, 5,
[[10, <minecraft:stone>],
[20, <minecraft:sand>,<minecraft:iron_ore>]]);
//移除
mods.alchemistry.Dissolver.removeRecipe(IIngredient input);
mods.alchemistry.Dissolver.removeRecipe(<minecraft:ender_pearl>);
mods.alchemistry.Dissolver.removeAllRecipes();
注意:如果 relativeProbability 为 true,每个概率会基于所有概率的总和计算。 在上述例子中,有 33.3% 的概率会在每次抽取时输出石头,有 66.6% 的概率会在每次抽取时输出沙子和铁矿石。
如果 relativeProbability 为 false,那么这些数字会变为绝对的百分比,即 10% 的概率输出石头,20% 的概率输出沙子和铁矿石(无论是否输出石头),支持浮点概率,4.5 表示 4.5%。
四.自定义化合物(Create Compound)
所属包:mods.alchemistry.Util.createCompound
#loader alchemistry //这个必须写,而且要在第一行写,因为后面的加载依赖于这个加载器
//创建
mods.alchemistry.Util.createCompound(int meta, String name, int red, int green, int blue, Object[][] components);
mods.alchemistry.Util.createCompound(1000, "vibranium sufide", 20, 69, 185,
[["vibranium", 1],
["sulfur", 3]]);
注意:
必须使用小写名称.
复合字段需求每个条目都是数组,如 ["cellulose", 5],声明元素、化合物及其数量。 此处使用字符串参数,而非 itemstack,以确保其仅为元素、化合物.
meta 字段用于确保你的新化合物拥有一个特殊标识符,即使其他化合物创建或移除也不可更改之。 每个化合物都需要一个独一无二的 meta 值。 直至写这篇教程时,该 mod 仅仅使用了 0 至 35 的 meta 值,但建议你使用至少 1000 的 meta(就像上面的例子那样)以确保 Alchemistry 的内置配方永远不会与你的冲突.
五.电解机(Electrolyzer)
所属包:mods.alchemistry.Electrolyzer
//添加
mods.alchemistry.Electrolyzer.addRecipe(ILiquidStack input, IItemStack input, int electrolyteConsumptionChance, IItemStack output, IItemStack output2, @Nullable IItemStack output3, @Nullable int output3Chance, @Nullable IItemStack output4, @Nullable int output4Chance);
mods.alchemistry.Electrolyzer.addRecipe(<liquid:water>*400,<minecraft:stone>,10,<minecraft:ender_pearl>*2,<minecraft:sand>,null,0,null,0);
//四个参数分别是输入的流体,输入的电解质,电解质消耗概率,输出
//移除
mods.alchemistry.Electrolyzer.removeRecipe(ILiquidStack input, IItemStack input);
mods.alchemistry.Electrolyzer.removeRecipe(<liquid:water>*125,<alchemistry:compound:13>);
mods.alchemistry.Electrolyzer.removeAllRecipes();
六.自定义元素(Element Creation)
所属包:mods.alchemistry.Util.createElement
#loader alchemistry //这个也必须写,同自定义化合物
mods.alchemistry.Util.createElement(int atomicNumber, String name, String abbreviation, int red, int green, int blue);
mods.alchemistry.Util.createElement(150,"vibranium","Vrb", 70, 90, 250);
mods.alchemistry.Util.createElement(151,"unobtanium","Uno",30,54,69);
注意:
请使用小写名称
已存在的元素数字不可覆盖
注意:截至 1.0.2 版本,Mod 的资源加载器必须包含自定义元素的图像与模型 JSON 文件,我已经写好了一个 JAR 命令行程序,帮助你自动生成这些资源
七.蒸发皿(Evaporator)
所属包:mods.alchemistry.Evaporator
//添加
mods.alchemistry.Evaporator.addRecipe(IItemStack output, ILiquidStack input);
mods.alchemistry.Evaporator.addRecipe(<minecraft:stone>,<liquid:lava>*250);
//移除
mods.alchemistry.Evaporator.removeRecipe(ILiquidStack input); //无论数量多少,都可以运行
mods.alchemistry.Evaporator.removeRecipe(<liquid:milk>);
mods.alchemistry.Evaporator.removeAllRecipes();
八.液化器(Liquifier)
所属包:mods.alchemistry.Liquifier
//添加
mods.alchemistry.Liquifier.addRecipe(ILiquidStack output, IItemStack input);
mods.alchemistry.Liquifier.addRecipe(<liquid:beryllium>*100,<alchemistry:element:5>);
//移除
mods.alchemistry.Liquifier.removeRecipe(IItemStack input);
mods.alchemistry.Liquifier.removeAllRecipes();
九.获取meta值
Get 是个查找元素与化合物 meta 值的好方法,但传统的方法 alchemistry:compound:17 也运行的也很好。
所属包:mods.alchemistry.Util.get
//用法
mods.alchemistry.Util.get(String name);
val strontiumCarbonate = mods.alchemistry.Util.get("strontium_carbonate");
val carbon = mods.alchemistry.Util.get("carbon");//
//同步打印到日志