diff options
Diffstat (limited to 'azalea-entity/src/effects.rs')
| -rw-r--r-- | azalea-entity/src/effects.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/azalea-entity/src/effects.rs b/azalea-entity/src/effects.rs new file mode 100644 index 00000000..9cc750e5 --- /dev/null +++ b/azalea-entity/src/effects.rs @@ -0,0 +1,26 @@ +// TODO + +// pub struct ActiveEffects(HashMap<azalea_registry::MobEffect, MobEffectData>); + +/// Returns the level of the given effect, or `None` if the effect is not +/// active. The lowest level is 0. +pub fn get_effect(_effect: azalea_registry::MobEffect) -> Option<u32> { + // TODO + None +} + +pub fn get_dig_speed_amplifier() -> Option<u32> { + let effect_plus_one = u32::max( + get_effect(azalea_registry::MobEffect::Haste) + .map(|x| x + 1) + .unwrap_or_default(), + get_effect(azalea_registry::MobEffect::ConduitPower) + .map(|x| x + 1) + .unwrap_or_default(), + ); + if effect_plus_one > 0 { + Some(effect_plus_one - 1) + } else { + None + } +} |
