valence_protocol/packets/play/
chunk_data_s2c.rs
1use std::borrow::Cow;
2
3use valence_generated::block::BlockEntityKind;
4use valence_nbt::Compound;
5
6use crate::array::FixedArray;
7use crate::{ChunkPos, Decode, Encode, Packet};
8
9#[derive(Clone, Debug, Encode, Decode, Packet)]
10pub struct ChunkDataS2c<'a> {
11 pub pos: ChunkPos,
12 pub heightmaps: Cow<'a, Compound>,
13 pub blocks_and_biomes: &'a [u8],
14 pub block_entities: Cow<'a, [ChunkDataBlockEntity<'a>]>,
15 pub sky_light_mask: Cow<'a, [u64]>,
16 pub block_light_mask: Cow<'a, [u64]>,
17 pub empty_sky_light_mask: Cow<'a, [u64]>,
18 pub empty_block_light_mask: Cow<'a, [u64]>,
19 pub sky_light_arrays: Cow<'a, [FixedArray<u8, 2048>]>,
20 pub block_light_arrays: Cow<'a, [FixedArray<u8, 2048>]>,
21}
22
23#[derive(Clone, PartialEq, Debug, Encode, Decode)]
24pub struct ChunkDataBlockEntity<'a> {
25 pub packed_xz: i8,
26 pub y: i16,
27 pub kind: BlockEntityKind,
28 pub data: Cow<'a, Compound>,
29}