3 #[mt_derive(to = "srv", repr = "u32", enumset)]
17 #[mt_derive(to = "srv")]
18 pub struct PlayerPos {
19 pub pos_100: [i32; 3],
20 pub vel_100: [i32; 3],
23 pub keys: EnumSet<Key>,
28 #[mt_derive(to = "srv", repr = "u8")]
29 pub enum Interaction {
38 #[mt_derive(to = "srv", repr = "u8", tag = "type")]
39 #[mt(const8 = 0)] // version
40 pub enum PointedThing {
42 Node { under: [i16; 3], above: [i16; 3] },
46 #[mt_derive(to = "srv")]
47 pub struct String32(#[mt(len32)] pub String);
49 impl std::ops::Deref for String32 {
52 fn deref(&self) -> &Self::Target {
57 impl std::ops::DerefMut for String32 {
58 fn deref_mut(&mut self) -> &mut Self::Target {
63 #[mt_derive(to = "srv", repr = "u16", tag = "type", content = "data")]
67 serialize_version: u8,
68 #[mt(const16 = 1)] // supported compression
69 min_proto_version: u16,
70 max_proto_version: u16,
73 send_full_item_meta: bool,
88 PlayerPos(PlayerPos) = 35,
91 blocks: Vec<[i16; 3]>,
95 blocks: Vec<[i16; 3]>,
116 pointed: PointedThing,
125 fields: HashMap<String, String32>,
129 fields: HashMap<String, String32>,
132 filenames: Vec<String>,