use std::borrow::Cow;
use uuid::Uuid;
use valence_ident::Ident;
use crate::{Decode, Encode, Packet, VarInt};
#[derive(Clone, Debug, Encode, Decode, Packet)]
pub struct EntityAttributesS2c<'a> {
pub entity_id: VarInt,
pub properties: Vec<AttributeProperty<'a>>,
}
#[derive(Clone, PartialEq, Debug, Encode, Decode)]
pub struct AttributeProperty<'a> {
pub key: Ident<Cow<'a, str>>,
pub value: f64,
pub modifiers: Vec<AttributeModifier>,
}
#[derive(Clone, PartialEq, Debug, Encode, Decode)]
pub struct AttributeModifier {
pub uuid: Uuid,
pub amount: f64,
pub operation: u8,
}