azalea_protocol/packets/game/
s_test_instance_block_action.rs

1use azalea_buf::AzBuf;
2use azalea_chat::FormattedText;
3use azalea_core::position::{BlockPos, Vec3i};
4use azalea_protocol_macros::ServerboundGamePacket;
5use azalea_registry::TestInstanceKind;
6
7use super::s_set_structure_block::Rotation;
8
9#[derive(Clone, Debug, AzBuf, ServerboundGamePacket)]
10pub struct ServerboundTestInstanceBlockAction {
11    pub pos: BlockPos,
12    pub action: Action,
13    pub data: TestInstanceBlockEntityData,
14}
15
16#[derive(Clone, Copy, Debug, AzBuf, Default)]
17pub enum Action {
18    #[default]
19    Init,
20    Qurey,
21    Set,
22    Reset,
23    Save,
24    Export,
25    Run,
26}
27
28#[derive(Clone, Debug, AzBuf, Default)]
29pub struct TestInstanceBlockEntityData {
30    pub test: Option<TestInstanceKind>,
31    pub size: Vec3i,
32    pub rotation: Rotation,
33    pub ignore_entities: bool,
34    pub status: TestInstanceBlockEntityStatus,
35    pub error_message: Option<FormattedText>,
36}
37
38#[derive(Clone, Copy, Debug, AzBuf, Default)]
39pub enum TestInstanceBlockEntityStatus {
40    #[default]
41    Cleared,
42    Running,
43    Finished,
44}