azalea_inventory/item/
consume_effect.rs1use azalea_buf::AzBuf;
2use azalea_core::resource_location::ResourceLocation;
3use azalea_registry::{HolderSet, MobEffect, SoundEvent};
4
5use crate::components::MobEffectInstance;
6
7#[derive(Clone, PartialEq, AzBuf)]
8pub enum ConsumeEffect {
9 ApplyEffects {
10 effects: Vec<MobEffectInstance>,
11 probability: f32,
12 },
13 RemoveEffects(HolderSet<MobEffect, ResourceLocation>),
14 ClearAllEffects,
15 TeleportRandomly {
16 diameter: f32,
17 },
18 PlaySound {
19 sound: SoundEvent,
20 },
21}
22
23impl From<ConsumeEffect> for azalea_registry::ConsumeEffectKind {
24 fn from(effect: ConsumeEffect) -> Self {
25 match effect {
26 ConsumeEffect::ApplyEffects { .. } => azalea_registry::ConsumeEffectKind::ApplyEffects,
27 ConsumeEffect::RemoveEffects { .. } => {
28 azalea_registry::ConsumeEffectKind::RemoveEffects
29 }
30 ConsumeEffect::ClearAllEffects => azalea_registry::ConsumeEffectKind::ClearAllEffects,
31 ConsumeEffect::TeleportRandomly { .. } => {
32 azalea_registry::ConsumeEffectKind::TeleportRandomly
33 }
34 ConsumeEffect::PlaySound { .. } => azalea_registry::ConsumeEffectKind::PlaySound,
35 }
36 }
37}