用户:MashKJo/1.12.2模组开发笔记/IRecipe接口详解:修订间差异

== IRecipe接口中的方法 ==
=== boolean matches(InventoryCrafting inv, World worldIn) ===
这个方法用于判断合成原料是否“匹配上了”——换言之,就是判断玩家放入合成界面的ItemStack及它们的摆放方式是否可以合成一个新ItemStack。例如,在原版的有序合成定义的逻辑中,木棍上面放煤炭或木炭,就是“匹配上了”——这样摆放就可以合成火把。但是,如果在把木棍换成木板——那不好意思,匹配不上,那就合成不了任何东西<ref>严格来说火把的配方是以.json文件的形式呈现的——这一点相信读者们都知道,而原版的有序合成的相关代码只是读取.json文件中的内容,并反序列化为一个IRecipe,这里这么说只是方便读者理解。</ref>
 
这个方法传入了两个参数:第一个是InventoryCrafting类型的,你可以把这个类理解为“合成容器”,原版MC中合成容器有两种:一是工作台中3×3大小的合成容器,二是玩家背包里的2×2大小的合成容器;你可以从该参数中拿到合成容器的长、宽,以及该容器中放入的ItemStack。第二个参数是World类型的,代表玩家当前所处的world实例,这没什么好说的。
行政员、​优秀编辑者、​界面管理员、​监督员、​管理员、​小部件编辑者
3,258

个编辑