steel_protocol/packets/config/
c_registry_data.rs1use simdnbt::owned::NbtTag;
2use steel_macros::{ClientPacket, WriteTo};
3use steel_registry::packets::config::C_REGISTRY_DATA;
4use steel_utils::Identifier;
5
6#[derive(Clone, Debug, WriteTo)]
7pub struct RegistryEntry {
8 pub id: Identifier,
9 pub data: Option<NbtTag>,
10}
11
12#[derive(ClientPacket, WriteTo, Clone, Debug)]
13#[packet_id(Config = C_REGISTRY_DATA)]
14pub struct CRegistryData {
15 pub registry: Identifier,
16 #[write(as = Prefixed(VarInt))]
17 pub entries: Vec<RegistryEntry>,
18}
19
20impl CRegistryData {
21 #[must_use]
22 pub const fn new(registry: Identifier, entries: Vec<RegistryEntry>) -> Self {
23 Self { registry, entries }
24 }
25}
26
27impl RegistryEntry {
28 #[must_use]
29 pub const fn new(id: Identifier, data: Option<NbtTag>) -> Self {
30 Self { id, data }
31 }
32}