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。
相关条目