PlantGrowthEvent
基本信息
| 属性 | 值 |
|---|---|
| 类名 | squeek.applecore.api.plants.PlantGrowthEvent |
| 类型 | class extends Event(非 abstract),内含 2 个静态事件类 |
| 启用版本 | Minecraft 1.7.10 |
功能
植物生长机制的 2 个事件,是本 mod 中唯一不带 player 字段的一组。
| 事件 | 可写字段 | 触发时机 |
|---|---|---|
AllowGrowthTick |
全部 final |
生长 tick 之前,返回 Event.Result 供调用方决定是否继续 |
GrowthTick |
全部 final |
生长之后(只读通知) |
实现要点
AllowGrowthTick携带block、world、x/y/z、random五个final字段, 监听器只能通过Event.Result表达意见。GrowthTick携带block、world、x/y/z与previousMetadata; 另有一个不含previousMetadata的构造器重载, 供「生长但 metadata 未变」的场景使用(见 IAppleCoreDispatcher 的announcePlantGrowthWithoutMetadataChange)。- 两个事件都不区分事件源方块,调用方需自行比对
block字段。 - 触发点分散在 9 个原版方块 Mixin 与 4 个外部 mod 方块 Mixin 中。
相关条目
- IAppleCoreDispatcher - 派发本组事件的接口
- AppleCoreDispatcherImpl - 实际派发实现
- BlockCropsMixin - 原版作物触发点
- BlockStemMixin - 南瓜/西瓜触发点
- GlowshroomMixin - 外部 mod 触发点(未注册)