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 的限制。

相关条目