ExhaustionEvent

基本信息

属性 值
类名 squeek.applecore.api.hunger.ExhaustionEvent
类型 abstract class extends Event,内含 4 个静态事件类
启用版本 Minecraft 1.7.10

功能

消耗值(exhaustion)机制的 4 个事件,是 AppleCore 改动面最广的一组。

事件 可写字段 触发时机
AllowExhaustion 无(仅可取消) 任何消耗值增加之前
GetMaxExhaustion maxExhaustionLevel(初值 4f) 查询消耗阈值时
Exhausted deltaExhaustion、deltaHunger(初值 -1)、deltaSaturation(初值 -1f) 消耗值达到阈值、开始扣饱和度/饥饿时
ExhaustFromHurt source(DamageSource)、damage(float) 玩家受伤时

实现要点

  • 4 个事件均带 public final EntityPlayer player 字段。
  • Exhausted 的 deltaHunger / deltaSaturation 初值为 -1 / -1f, 构造器按原版规则预填:饱和度 > 0 时 deltaSaturation = 0.1f、deltaHunger = 0, 否则(且非和平难度)deltaSaturation = 0f、deltaHunger = -1。 监听器可覆写为负值表示扣饥饿——这是本事件的主要扩展点。
  • ExhaustFromHurt 的字段非 final,监听器可改伤害来源与伤害值。
  • 触发点全部位于 FoodStatsMixin 与 EntityPlayerMixin。

相关条目