IAppleCoreDispatcher
基本信息
| 属性 | 值 |
|---|---|
| 类名 | squeek.applecore.api.IAppleCoreDispatcher |
| 类型 | interface,4 个方法 |
| 实现 | AppleCoreDispatcherImpl(枚举单例) |
| 启用版本 | Minecraft 1.7.10 |
功能
植物生长事件的统一触发入口。所有 Mixin(9 个原版方块 + 4 个外部 mod 方块) 在方块的生长时机调用本接口,从而让第三方 mod 得以拦截或观察作物生长。
| 方法 | 作用 |
|---|---|
validatePlantGrowth(Block, World, int, int, int, Random) |
触发 AllowGrowthTick,返回 Event.Result 供调用方决定是否继续 |
announcePlantGrowth(Block, World, int, int, int, int previousMetadata) |
触发 GrowthTick(伴随 metadata 变化) |
announcePlantGrowthWithoutMetadataChange(Block, World, int, int, int) |
触发 GrowthTick,仅生长未改变 metadata 时使用 |
announcePlantGrowth(Block, World, int, int, int) |
已废弃,等价于上一条 |
实现要点
- 4 个方法中 3 个触发的是同一个
PlantGrowthEvent.GrowthTick事件; 区别只在是否携带previousMetadata,供监听器判断生长阶段。 - 第 4 个重载带
@Deprecated,Javadoc 指向两个新重载。 源码内没有任何调用点使用该废弃重载。 validatePlantGrowth是唯一返回值的接口方法,其余三个返回void。
相关条目
- PlantGrowthEvent - 本接口触发的两个事件
- AppleCoreDispatcherImpl - 实际实现
- BlockCropsMixin - 典型调用方
- BerryBushMixin - 外部 mod 方块调用方