FoodValues

基本信息

属性 值
类名 squeek.applecore.api.food.FoodValues
类型 class,2 个 public final 字段 + 9 个方法
启用版本 Minecraft 1.7.10

功能

不可变的食物数值载体,表示「回复多少饥饿值」与「饱和度修正系数」。

public final int hunger;
public final float saturationModifier;
方法 说明
FoodValues(int, float) 主构造器
FoodValues(FoodValues) 拷贝构造器
getSaturationIncrement() 返回 Math.min(20, hunger * saturationModifier * 2f)
getUnmodified(ItemStack) 静态:取未覆写的原始数值
get(ItemStack) 静态:取覆写后的数值
get(ItemStack, EntityPlayer) 静态:取对特定玩家覆写后的数值
equals / hashCode / toString 值语义实现

实现要点

  • 两个字段是 final,数值对象本身不可改。要改变数值必须 构造新的 FoodValues 并在 GetFoodValues 事件里替换 foodValues 字段。
  • getSaturationIncrement() 的公式里 20 是硬编码上限, 意味着单次进食的饱和度增量最多 20 点,与原版 FoodStats 行为一致。
  • 三个静态取值方法全部经由 AppleCoreAPI.accessor 转发, 因此会触发对应的事件;getUnmodified 不会。
  • TooltipOverlayHandler 用 defaultFoodValues.equals(modifiedFoodValues) 判断是否需要绘制提示条。

相关条目