blob: d091984d710cf2c70d2afdcc26b313db9d4fd983 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
package moe.nea.firmament.events
import net.minecraft.entity.Entity
import net.minecraft.entity.LivingEntity
import net.minecraft.entity.data.DataTracker
import net.minecraft.network.packet.s2c.play.EntityAttributesS2CPacket
/**
* This event is fired when some entity properties are updated.
* It is not fired for common changes like position, but is for less common ones,
* like health, tracked data, names, equipment. It is always fired
* *after* the values have been applied to the entity.
*/
sealed class EntityUpdateEvent : FirmamentEvent() {
companion object : FirmamentEventBus<EntityUpdateEvent>()
abstract val entity: Entity
data class AttributeUpdate(
override val entity: LivingEntity,
val attributes: List<EntityAttributesS2CPacket.Entry>,
) : EntityUpdateEvent()
data class TrackedDataUpdate(
override val entity: Entity,
val trackedValues: List<DataTracker.SerializedEntry<*>>,
) : EntityUpdateEvent()
// TODO: onEntityPassengersSet, onEntityAttach?, onEntityEquipmentUpdate, onEntityStatusEffect
}
|