use packet_macros::{GamePacket, McBufReadable, McBufWritable}; #[derive(Clone, Debug, GamePacket)] pub struct ClientboundAnimatePacket { #[var] pub id: u32, pub action: AnimationAction, } // minecraft actually uses a u8 for this, but a varint still works and makes it // so i don't have to add a special handler #[derive(Clone, Debug, Copy, McBufReadable, McBufWritable)] pub enum AnimationAction { SwingMainHand = 0, Hurt = 1, WakeUp = 2, SwingOffHand = 3, CriticalHit = 4, MagicCriticalHit = 5, }