chunkedge_protocol/packets/play/
set_command_block_c2s.rs

1use bitfield_struct::bitfield;
2use chunkedge_binary::{Decode, Encode};
3
4use crate::{BlockPos, Packet};
5
6#[derive(Copy, Clone, Debug, Encode, Decode, Packet)]
7pub struct SetCommandBlockC2s<'a> {
8    pub position: BlockPos,
9    pub command: &'a str,
10    pub mode: UpdateCommandBlockMode,
11    pub flags: UpdateCommandBlockFlags,
12}
13
14#[derive(Copy, Clone, PartialEq, Eq, Debug, Encode, Decode)]
15pub enum UpdateCommandBlockMode {
16    Sequence,
17    Auto,
18    Redstone,
19}
20
21#[bitfield(u8)]
22#[derive(PartialEq, Eq, Encode, Decode)]
23pub struct UpdateCommandBlockFlags {
24    pub track_output: bool,
25    pub conditional: bool,
26    pub automatic: bool,
27    #[bits(5)]
28    _pad: u8,
29}