azalea_protocol/packets/game/
c_explode.rs

1use azalea_buf::{AzBuf, AzaleaRead, AzaleaWrite};
2use azalea_core::position::Vec3;
3use azalea_entity::particle::Particle;
4use azalea_protocol_macros::ClientboundGamePacket;
5use azalea_registry::builtin::SoundEvent;
6
7#[derive(AzBuf, ClientboundGamePacket, Clone, Debug, PartialEq)]
8pub struct ClientboundExplode {
9    pub center: Vec3,
10    pub radius: f32,
11    pub block_count: i32,
12    pub player_knockback: Option<Vec3>,
13    pub explosion_particle: Particle,
14    pub explosion_sound: SoundEvent,
15    pub block_particles: Vec<Weighted<ExplosionParticleInfo>>,
16}
17
18#[derive(AzBuf, Clone, Debug, PartialEq)]
19pub struct Weighted<T: AzaleaRead + AzaleaWrite> {
20    pub value: T,
21    #[var]
22    pub weight: i32,
23}
24
25#[derive(AzBuf, Clone, Debug, PartialEq)]
26pub struct ExplosionParticleInfo {
27    pub particle: Particle,
28    pub scaling: f32,
29    pub speed: f32,
30}