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) 判断是否需要绘制提示条。
相关条目