用户:MashKJo/1.12.2模组开发笔记/IRecipe接口详解
几乎所有1.12.2的模组开发教程都会介绍新的自定义工作台配方(广义)的添加方法——只需要在resources/assets/modid/recipes
路径下撰写一些.json文件就好了。实际上这说明这块内容确实很简单——因为大部分教程别说讲到方块实体了,能讲到附魔、药水效果这种比物品、方块稍微难一点的东西就算是谢天谢地了。毕竟照着规定的格式写.json文件谁不会呢?
不过你有没有想过——原版当中某些配方似乎并不是简单地通过撰写.json文件来实现的。比如你可以将两把不是满耐久的钻石镐叠加,合成为一把新的钻石镐,其耐久结合了合成前那两把钻石镐的耐久[1]。这种配方的实现显然并非依靠.json文件吧?
这就要请出我们今天的主角了——IRecipe接口(net.minecraft.item.crafting.IRecipe
)。
IRecipe接口中的方法
boolean matches(InventoryCrafting inv, World worldIn)
ItemStack getCraftingResult(InventoryCrafting inv)
boolean canFit(int width, int height)
ItemStack getRecipeOutput()
default NonNullList<ItemStack> getRemainingItems(InventoryCrafting inv)
default NonNullList<Ingredient> getIngredients()
default boolean isDynamic()
default String getGroup()
实战:自己实现IRecipe接口
注释与外部链接
- ↑ 当然,三个耐久值之间的关系并不是简单的a + b = c这种关系。