aboutsummaryrefslogtreecommitdiff
path: root/azalea-protocol/src/packets/game/clientbound_level_particles_packet.rs
diff options
context:
space:
mode:
authormat <27899617+mat-1@users.noreply.github.com>2022-05-15 01:46:11 +0000
committerGitHub <noreply@github.com>2022-05-15 01:46:11 +0000
commitd0ac62d85276bc48e4f8e0e60afdc35840681622 (patch)
treeff4996b89d6f34c7c452d1b2950e53d512bce3c1 /azalea-protocol/src/packets/game/clientbound_level_particles_packet.rs
parentef3cbe27f2a7eed5c635924d6fa0401dd04eae77 (diff)
parentc16e958d0be671a17edf060aee9850faccbcfe14 (diff)
downloadazalea-drasl-d0ac62d85276bc48e4f8e0e60afdc35840681622.tar.xz
Merge pull request #6 from mat-1/chunk-decoding
Chunk decoding
Diffstat (limited to 'azalea-protocol/src/packets/game/clientbound_level_particles_packet.rs')
-rw-r--r--azalea-protocol/src/packets/game/clientbound_level_particles_packet.rs56
1 files changed, 56 insertions, 0 deletions
diff --git a/azalea-protocol/src/packets/game/clientbound_level_particles_packet.rs b/azalea-protocol/src/packets/game/clientbound_level_particles_packet.rs
new file mode 100644
index 00000000..a3538598
--- /dev/null
+++ b/azalea-protocol/src/packets/game/clientbound_level_particles_packet.rs
@@ -0,0 +1,56 @@
+use std::io::{Read, Write};
+
+use crate::mc_buf::{McBufReadable, McBufWritable, ParticleData};
+use packet_macros::GamePacket;
+
+#[derive(Clone, Debug, GamePacket)]
+pub struct ClientboundLevelParticlesPacket {
+ pub particle_id: u32,
+ pub override_limiter: bool,
+ pub x: f64,
+ pub y: f64,
+ pub z: f64,
+ pub x_dist: f32,
+ pub y_dist: f32,
+ pub z_dist: f32,
+ pub max_speed: f32,
+ pub count: i32,
+ pub data: ParticleData,
+}
+
+impl McBufReadable for ClientboundLevelParticlesPacket {
+ fn read_into(buf: &mut impl Read) -> Result<Self, String> {
+ let particle_id = u32::read_into(buf)?;
+ let override_limiter = bool::read_into(buf)?;
+ let x = f64::read_into(buf)?;
+ let y = f64::read_into(buf)?;
+ let z = f64::read_into(buf)?;
+ let x_dist = f32::read_into(buf)?;
+ let y_dist = f32::read_into(buf)?;
+ let z_dist = f32::read_into(buf)?;
+ let max_speed = f32::read_into(buf)?;
+ let count = i32::read_into(buf)?;
+
+ let data = ParticleData::read_from_particle_id(buf, particle_id)?;
+
+ Ok(Self {
+ particle_id,
+ override_limiter,
+ x,
+ y,
+ z,
+ x_dist,
+ y_dist,
+ z_dist,
+ max_speed,
+ count,
+ data,
+ })
+ }
+}
+
+impl McBufWritable for ClientboundLevelParticlesPacket {
+ fn write_into(&self, buf: &mut impl Write) -> Result<(), std::io::Error> {
+ todo!();
+ }
+}