azalea_protocol/packets/game/
c_explode.rs1use 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}