diff options
| author | mat <git@matdoes.dev> | 2025-03-13 20:46:12 +0000 |
|---|---|---|
| committer | mat <git@matdoes.dev> | 2025-03-13 20:46:12 +0000 |
| commit | 65fe07215149ab81d0862ab7edac71d6a8417ef8 (patch) | |
| tree | 9e06778329cbf9a14f87c93d1a3686f6b91f2b4e /azalea-inventory/src/item | |
| parent | 7a192acc99358818c2f90cf4e2b8b236f91cfbf7 (diff) | |
| download | azalea-drasl-65fe07215149ab81d0862ab7edac71d6a8417ef8.tar.xz | |
fix wrong Consumable component implementation and add set_equipment test
Diffstat (limited to 'azalea-inventory/src/item')
| -rw-r--r-- | azalea-inventory/src/item/consume_effect.rs | 37 | ||||
| -rw-r--r-- | azalea-inventory/src/item/mod.rs | 2 |
2 files changed, 39 insertions, 0 deletions
diff --git a/azalea-inventory/src/item/consume_effect.rs b/azalea-inventory/src/item/consume_effect.rs new file mode 100644 index 00000000..898f64ff --- /dev/null +++ b/azalea-inventory/src/item/consume_effect.rs @@ -0,0 +1,37 @@ +use azalea_buf::AzBuf; +use azalea_core::resource_location::ResourceLocation; +use azalea_registry::{HolderSet, MobEffect, SoundEvent}; + +use crate::components::MobEffectInstance; + +#[derive(Clone, PartialEq, AzBuf)] +pub enum ConsumeEffect { + ApplyEffects { + effects: Vec<MobEffectInstance>, + probability: f32, + }, + RemoveEffects(HolderSet<MobEffect, ResourceLocation>), + ClearAllEffects, + TeleportRandomly { + diameter: f32, + }, + PlaySound { + sound: SoundEvent, + }, +} + +impl From<ConsumeEffect> for azalea_registry::ConsumeEffectKind { + fn from(effect: ConsumeEffect) -> Self { + match effect { + ConsumeEffect::ApplyEffects { .. } => azalea_registry::ConsumeEffectKind::ApplyEffects, + ConsumeEffect::RemoveEffects { .. } => { + azalea_registry::ConsumeEffectKind::RemoveEffects + } + ConsumeEffect::ClearAllEffects => azalea_registry::ConsumeEffectKind::ClearAllEffects, + ConsumeEffect::TeleportRandomly { .. } => { + azalea_registry::ConsumeEffectKind::TeleportRandomly + } + ConsumeEffect::PlaySound { .. } => azalea_registry::ConsumeEffectKind::PlaySound, + } + } +} diff --git a/azalea-inventory/src/item/mod.rs b/azalea-inventory/src/item/mod.rs index 7f077c6a..bbff2d50 100644 --- a/azalea-inventory/src/item/mod.rs +++ b/azalea-inventory/src/item/mod.rs @@ -1,3 +1,5 @@ +pub mod consume_effect; + pub trait MaxStackSizeExt { /// Get the maximum stack size for this item. /// |
