FoodEvent
基本信息
| 属性 | 值 |
|---|---|
| 类名 | squeek.applecore.api.food.FoodEvent |
| 类型 | abstract class extends Event,内含 4 个静态事件类 |
| 启用版本 | Minecraft 1.7.10 |
功能
进食相关的 4 个可取消 / 可覆写事件。
| 事件 | 可写字段 | 触发时机 |
|---|---|---|
GetFoodValues |
foodValues(非 final) |
查询任意食物的数值时 |
GetPlayerFoodValues |
foodValues(非 final) |
对特定玩家查询食物数值时 |
FoodEaten |
全部 final |
玩家吃完食物、数值已入账后(只读通知) |
FoodStatsAddition |
全部 final |
数值即将写入 FoodStats 前(只读通知) |
实现要点
GetFoodValues/GetPlayerFoodValues的foodValues字段非 final, 监听器可整体替换;两者都另带一个final unmodifiedFoodValues作为对照基准。FoodEaten携带hungerAdded与saturationAdded两个实际增量, 以及触发时的FoodValues,可用于审计数值被改成了多少。FoodEaten与FoodStatsAddition的字段全为final,只能取消不能改值。- 全部 4 个事件的触发点集中在 FoodStatsMixin 与 ItemFoodProxy。
相关条目
- FoodValues - 事件里传递的数值容器
- FoodStatsMixin - 事件的主要触发点
- ItemFoodProxy - 静态 API 的转发门面
- IAppleCoreAccessor -
getFoodValues等方法的声明处