用户:MashKJo/1.12.2模组开发教程/11.高级物品和方块 - 前置概念:修订间差异

→‎一些枚举类:​ // Edit via Wikiplus
→‎一些枚举类:​ // Edit via Wikiplus
→‎一些枚举类:​ // Edit via Wikiplus
== 一些枚举类 ==
在给我们的高级的物品/方块实现一些功能时,我们会和很多枚举类打交道,如:
* EnumAction:这个枚举类专用于物品,具体地说,是表示物品被使用时,产生的动画效果的“类型”(说是动画效果,实际上就是一层薄薄的贴图转了个角度后的一堆平移、伸缩或旋转变换而已)。原版有5种EnumAction,分别是:NONE、EAT、DRINK、BLOCK、BOW。很显然,后四者分别用于食物、水瓶和药水、方块的物品形式、弓。那么可能会有读者问了:如果我想自定义物品使用时的动画效果,怎么办,如何去做到?答案是通常情况下做不到,除非你用黑魔法。一般而言,新的EnumAction可以通过Forge提供的EnumHelper来通过反射生成,但是Minecraft具体处理这个EnumAction并实际产生动画的代码中,Forge实际上没有发布任何事件,所以理论上我们无法新增自定义的物品使用动画,除非你用Mixin大法,但除非你Modding水平够高,否则执意在Forge框架下开发时用Mixin实现自己的需求,还不如自己换个需求。
* EnumActionResult:这个枚举类有3个实例:SUCCESS、PASS和FAIL,它用于描述某个交互逻辑进行后,返回的结果(或者说执行结果)。其实它的意义不是那么大,因为它也就只是一个返回值而已,你可以在写一堆你自己的自定义逻辑后返回FAIL,本质上就是一个标记而已。不过对于物品的使用而言,SUCCESS和FAIL都不会在执行完主手上的物品的相关逻辑后,继续执行副手上对应物品的相关逻辑,而PASS则会,这个特性需要小小地注意一下。
* EnumFacing:这是一个表示方向的枚举类,可以表示东、南、西、北、上、下六个方向,前面已经提过,此处不再赘述。
行政员、​优秀编辑者、​界面管理员、​监督员、​管理员、​小部件编辑者
3,351

个编辑