ItemFoodProxy
基本信息
| 属性 | 值 |
|---|---|
| 类名 | squeek.applecore.api.food.ItemFoodProxy |
| 类型 | class,5 个静态方法 |
| 启用版本 | Minecraft 1.7.10 |
功能
原版 ItemFood 的部分静态方法在 1.7.10 中无法被外部安全改写,
AppleCore 提供本门面把调用转到自己的实现上。
| 方法 | 说明 |
|---|---|
getFoodValues(ItemStack) |
转发到 FoodValues.get |
getFoodValues(ItemStack, EntityPlayer) |
转发到带玩家参数的重载 |
getItemFoodStats(ItemStack, EntityPlayer) |
取得「加完之后的」食物状态数值 |
isFoodItem(ItemStack) |
判断是否被当作食物 |
eatItem(...) / onItemFoodFinish 等 |
进食流程的转发入口 |
实现要点
- 本类是门面,实际逻辑仍在 FoodStatsMixin
与原版
ItemFood中;facade 存在的意义是让依赖方无需自己判断 该调原版还是 AppleCore。 - 3 个取值方法最终都会触发
FoodEvent的GetFoodValues/GetPlayerFoodValues。
相关条目
- IEdible - 单个物品的接入接口
- FoodEvent - 转发时触发的事件
- FoodValues - 转发目标类型
- FoodStatsMixin - 实际实现所在