IAppleCoreAccessor
基本信息
| 属性 | 值 |
|---|---|
| 类名 | squeek.applecore.api.IAppleCoreAccessor |
| 类型 | interface,8 个方法,全部无参修饰 public |
| 实现 | AppleCoreAccessorMutatorImpl(枚举单例) |
| 启用版本 | Minecraft 1.7.10 |
功能
只读接口,暴露原版 FoodStats 中没有公开 getter 的隐藏值,以及可被事件覆写的
回血 / 饿死周期。实现在 AppleCoreAccessorMutatorImpl。
| 方法 | 返回 | 读取的原版状态 |
|---|---|---|
isFood(ItemStack) |
boolean |
该物品栈是否被当作食物处理 |
getFoodValues(ItemStack) |
FoodValues |
事件覆写后的食物数值 |
getFoodValuesForPlayer(ItemStack, EntityPlayer) |
FoodValues |
对特定玩家覆写后的食物数值 |
getUnmodifiedFoodValues(ItemStack) |
FoodValues |
未经过任何事件覆写的原始数值 |
getExhaustion(EntityPlayer) |
float |
消耗值(foodExhaustionLevel) |
getMaxExhaustion(EntityPlayer) |
float |
触发消耗的阈值,来自 GetMaxExhaustion 事件 |
getHealthRegenTickPeriod(EntityPlayer) |
int |
回血间隔 tick 数,来自 GetRegenTickPeriod 事件 |
getStarveDamageTickPeriod(EntityPlayer) |
int |
掉血间隔 tick 数,来自 GetStarveTickPeriod 事件 |
实现要点
getMaxExhaustion/getHealthRegenTickPeriod/getStarveDamageTickPeriod三个方法内部会触发事件并返回事件里被监听器改写后的字段值, 它们的返回值是动态的,不等价于读某个固定字段。FoodValuesAccessor(Mixin)提供FoodStats隐藏字段的直读通道, 供本接口绕开原版无 getter 的限制。
相关条目
- IAppleCoreMutator - 同一枚举单例实现的写入侧
- AppleCoreAccessorMutatorImpl - 实际实现
- ExhaustionEvent -
getMaxExhaustion的来源事件 - HealthRegenEvent -
getHealthRegenTickPeriod的来源事件 - StarvationEvent -
getStarveDamageTickPeriod的来源事件 - FoodValues - 返回值的容器类型