diff options
| author | mat <github@matdoes.dev> | 2022-05-14 19:55:33 -0500 |
|---|---|---|
| committer | mat <github@matdoes.dev> | 2022-05-14 19:55:33 -0500 |
| commit | 93730a550aed964d122bc08f5353e8eb0c5c9f31 (patch) | |
| tree | ff7049aa81e152b0c69192434fc5a2c15b8c6b9e /azalea-protocol/src/mc_buf | |
| parent | 3f77390e2671045ed3ea45f24a9ade151eafe700 (diff) | |
| download | azalea-drasl-93730a550aed964d122bc08f5353e8eb0c5c9f31.tar.xz | |
start adding ClientboundLevelParticlesPacket
Diffstat (limited to 'azalea-protocol/src/mc_buf')
| -rw-r--r-- | azalea-protocol/src/mc_buf/definitions.rs | 33 | ||||
| -rw-r--r-- | azalea-protocol/src/mc_buf/mod.rs | 4 |
2 files changed, 21 insertions, 16 deletions
diff --git a/azalea-protocol/src/mc_buf/definitions.rs b/azalea-protocol/src/mc_buf/definitions.rs index a59fc574..3867b3fc 100644 --- a/azalea-protocol/src/mc_buf/definitions.rs +++ b/azalea-protocol/src/mc_buf/definitions.rs @@ -1,8 +1,9 @@ use crate::mc_buf::read::{McBufReadable, Readable}; use crate::mc_buf::write::{McBufWritable, Writable}; +use crate::mc_buf::McBufVarReadable; use azalea_chat::component::Component; use azalea_core::{BlockPos, Direction, Slot}; -use packet_macros::{McBufReadable, McBufWritable}; +use packet_macros::McBuf; use std::io::{Read, Write}; use std::ops::Deref; use uuid::Uuid; @@ -32,7 +33,7 @@ impl From<&str> for UnsizedByteArray { } /// Represents Java's BitSet, a list of bits. -#[derive(Debug, Clone, PartialEq, Eq, Hash, McBufReadable, McBufWritable)] +#[derive(Debug, Clone, PartialEq, Eq, Hash, McBuf)] pub struct BitSet { data: Vec<u64>, } @@ -159,7 +160,7 @@ impl McBufWritable for EntityDataValue { } } -#[derive(Clone, Debug, Copy, McBufReadable, McBufWritable)] +#[derive(Clone, Debug, Copy, McBuf)] pub enum Pose { Standing = 0, FallFlying = 1, @@ -171,7 +172,7 @@ pub enum Pose { Dying = 7, } -#[derive(Debug, Clone, McBufReadable, McBufWritable)] +#[derive(Debug, Clone, McBuf)] pub struct VillagerData { #[var] type_: u32, @@ -181,7 +182,7 @@ pub struct VillagerData { level: u32, } -#[derive(Debug, Clone, McBufReadable, McBufWritable)] +#[derive(Debug, Clone, McBuf)] pub struct Particle { #[var] pub id: i32, @@ -280,12 +281,12 @@ pub enum ParticleData { Scrape, } -#[derive(Debug, Clone, McBufReadable, McBufWritable)] +#[derive(Debug, Clone, McBuf)] pub struct BlockParticle { #[var] pub block_state: i32, } -#[derive(Debug, Clone, McBufReadable, McBufWritable)] +#[derive(Debug, Clone, McBuf)] pub struct DustParticle { /// Red value, 0-1 pub red: f32, @@ -297,7 +298,7 @@ pub struct DustParticle { pub scale: f32, } -#[derive(Debug, Clone, McBufReadable, McBufWritable)] +#[derive(Debug, Clone, McBuf)] pub struct DustColorTransitionParticle { /// Red value, 0-1 pub from_red: f32, @@ -315,12 +316,12 @@ pub struct DustColorTransitionParticle { pub to_blue: f32, } -#[derive(Debug, Clone, McBufReadable, McBufWritable)] +#[derive(Debug, Clone, McBuf)] pub struct ItemParticle { pub item: Slot, } -#[derive(Debug, Clone, McBufReadable, McBufWritable)] +#[derive(Debug, Clone, McBuf)] pub struct VibrationParticle { pub origin: BlockPos, pub position_type: String, @@ -331,9 +332,8 @@ pub struct VibrationParticle { pub ticks: u32, } -impl McBufReadable for ParticleData { - fn read_into(buf: &mut impl Read) -> Result<Self, String> { - let id = buf.read_varint()?; +impl ParticleData { + pub fn read_from_particle_id(buf: &mut impl Read, id: u32) -> Result<Self, String> { Ok(match id { 0 => ParticleData::AmbientEntityEffect, 1 => ParticleData::AngryVillager, @@ -428,6 +428,13 @@ impl McBufReadable for ParticleData { } } +impl McBufReadable for ParticleData { + fn read_into(buf: &mut impl Read) -> Result<Self, String> { + let id = u32::var_read_into(buf)?; + ParticleData::read_from_particle_id(buf, id) + } +} + impl McBufWritable for ParticleData { fn write_into(&self, buf: &mut impl Write) -> Result<(), std::io::Error> { todo!() diff --git a/azalea-protocol/src/mc_buf/mod.rs b/azalea-protocol/src/mc_buf/mod.rs index 94e4af0b..548ba7c2 100644 --- a/azalea-protocol/src/mc_buf/mod.rs +++ b/azalea-protocol/src/mc_buf/mod.rs @@ -4,10 +4,8 @@ mod definitions; mod read; mod write; -pub use definitions::{BitSet, EntityMetadata, UnsizedByteArray}; -use packet_macros::{McBufReadable, McBufWritable}; +pub use definitions::{BitSet, EntityMetadata, ParticleData, UnsizedByteArray}; pub use read::{read_varint_async, McBufReadable, McBufVarReadable, Readable}; -use std::ops::Deref; pub use write::{McBufVarWritable, McBufWritable, Writable}; // const DEFAULT_NBT_QUOTA: u32 = 2097152; |
