aboutsummaryrefslogtreecommitdiff
path: root/azalea-entity/src
diff options
context:
space:
mode:
Diffstat (limited to 'azalea-entity/src')
-rw-r--r--azalea-entity/src/attributes.rs19
-rw-r--r--azalea-entity/src/lib.rs1
2 files changed, 20 insertions, 0 deletions
diff --git a/azalea-entity/src/attributes.rs b/azalea-entity/src/attributes.rs
index 97b890dc..18bbc348 100644
--- a/azalea-entity/src/attributes.rs
+++ b/azalea-entity/src/attributes.rs
@@ -13,6 +13,7 @@ use uuid::{uuid, Uuid};
#[derive(Clone, Debug, Component)]
pub struct Attributes {
pub speed: AttributeInstance,
+ pub attack_speed: AttributeInstance,
}
#[derive(Clone, Debug)]
@@ -92,6 +93,24 @@ pub fn sprinting_modifier() -> AttributeModifier {
}
}
+pub static BASE_ATTACK_SPEED_UUID: Uuid = uuid!("FA233E1C-4180-4865-B01B-BCCE9785ACA3");
+pub fn weapon_attack_speed_modifier(amount: f64) -> AttributeModifier {
+ AttributeModifier {
+ uuid: BASE_ATTACK_SPEED_UUID,
+ name: "Weapon modifier".to_string(),
+ amount,
+ operation: AttributeModifierOperation::Addition,
+ }
+}
+pub fn tool_attack_speed_modifier(amount: f64) -> AttributeModifier {
+ AttributeModifier {
+ uuid: BASE_ATTACK_SPEED_UUID,
+ name: "Tool modifier".to_string(),
+ amount,
+ operation: AttributeModifierOperation::Addition,
+ }
+}
+
impl McBufReadable for AttributeModifier {
fn read_from(buf: &mut Cursor<&[u8]>) -> Result<Self, BufReadError> {
let uuid = Uuid::read_from(buf)?;
diff --git a/azalea-entity/src/lib.rs b/azalea-entity/src/lib.rs
index 53e8bfdb..76c5220a 100644
--- a/azalea-entity/src/lib.rs
+++ b/azalea-entity/src/lib.rs
@@ -344,6 +344,7 @@ impl EntityBundle {
// TODO: do the correct defaults for everything, some
// entities have different defaults
speed: AttributeInstance::new(0.1),
+ attack_speed: AttributeInstance::new(4.0),
},
jumping: Jumping(false),