diff options
| author | mat <27899617+mat-1@users.noreply.github.com> | 2022-11-06 14:05:01 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-06 14:05:01 -0600 |
| commit | d112856ff6353592a50658b0ddd316f54dd97b87 (patch) | |
| tree | 6c408ecab96012e3bffaf15843fad5b9b6817796 /azalea-core/src | |
| parent | 9bc517511663193f3166320db4cb5ca02701b039 (diff) | |
| download | azalea-drasl-d112856ff6353592a50658b0ddd316f54dd97b87.tar.xz | |
Entity metadata (#37)
* add example generated metadata.rs
* metadata.rs codegen
* add the files
* add comment to top of metadata.rs
* avoid clone
* metadata
* defaults
* defaults
* fix metadata readers and writers
* fix bad bitmasks and ignore some clippy warnings in generated code
* add set_index function to entity metadatas
* applying metadata
Diffstat (limited to 'azalea-core/src')
| -rw-r--r-- | azalea-core/src/direction.rs | 13 | ||||
| -rw-r--r-- | azalea-core/src/particle/mod.rs | 117 | ||||
| -rw-r--r-- | azalea-core/src/slot.rs | 3 |
3 files changed, 13 insertions, 120 deletions
diff --git a/azalea-core/src/direction.rs b/azalea-core/src/direction.rs index 6a29cab9..22a19ee0 100644 --- a/azalea-core/src/direction.rs +++ b/azalea-core/src/direction.rs @@ -2,14 +2,15 @@ use azalea_buf::McBuf; use crate::floor_mod; -#[derive(Clone, Copy, Debug, McBuf)] +#[derive(Clone, Copy, Debug, McBuf, Default)] pub enum Direction { + #[default] Down = 0, - Up = 1, - North = 2, - South = 3, - West = 4, - East = 5, + Up, + North, + South, + West, + East, } #[derive(Clone, Copy, Debug)] diff --git a/azalea-core/src/particle/mod.rs b/azalea-core/src/particle/mod.rs index 8087de51..44c7c2f5 100644 --- a/azalea-core/src/particle/mod.rs +++ b/azalea-core/src/particle/mod.rs @@ -1,15 +1,14 @@ use crate::{BlockPos, Slot}; -use azalea_buf::{BufReadError, McBuf, McBufReadable, McBufVarReadable, McBufWritable}; -use std::io::{Cursor, Write}; +use azalea_buf::McBuf; -#[derive(Debug, Clone, McBuf)] +#[derive(Debug, Clone, McBuf, Default)] pub struct Particle { #[var] pub id: i32, pub data: ParticleData, } -#[derive(Clone, Debug)] +#[derive(Clone, Debug, McBuf, Default)] pub enum ParticleData { AmbientEntityEffect, AngryVillager, @@ -32,6 +31,7 @@ pub enum ParticleData { EnchantedHit, Enchant, EndRod, + #[default] EntityEffect, ExplosionEmitter, Explosion, @@ -151,112 +151,3 @@ pub struct VibrationParticle { #[var] pub ticks: u32, } - -impl ParticleData { - pub fn read_from_particle_id(buf: &mut Cursor<&[u8]>, id: u32) -> Result<Self, BufReadError> { - Ok(match id { - 0 => ParticleData::AmbientEntityEffect, - 1 => ParticleData::AngryVillager, - 2 => ParticleData::Block(BlockParticle::read_from(buf)?), - 3 => ParticleData::BlockMarker(BlockParticle::read_from(buf)?), - 4 => ParticleData::Bubble, - 5 => ParticleData::Cloud, - 6 => ParticleData::Crit, - 7 => ParticleData::DamageIndicator, - 8 => ParticleData::DragonBreath, - 9 => ParticleData::DrippingLava, - 10 => ParticleData::FallingLava, - 11 => ParticleData::LandingLava, - 12 => ParticleData::DrippingWater, - 13 => ParticleData::FallingWater, - 14 => ParticleData::Dust(DustParticle::read_from(buf)?), - 15 => ParticleData::DustColorTransition(DustColorTransitionParticle::read_from(buf)?), - 16 => ParticleData::Effect, - 17 => ParticleData::ElderGuardian, - 18 => ParticleData::EnchantedHit, - 19 => ParticleData::Enchant, - 20 => ParticleData::EndRod, - 21 => ParticleData::EntityEffect, - 22 => ParticleData::ExplosionEmitter, - 23 => ParticleData::Explosion, - 24 => ParticleData::FallingDust(BlockParticle::read_from(buf)?), - 25 => ParticleData::Firework, - 26 => ParticleData::Fishing, - 27 => ParticleData::Flame, - 28 => ParticleData::SoulFireFlame, - 29 => ParticleData::Soul, - 30 => ParticleData::Flash, - 31 => ParticleData::HappyVillager, - 32 => ParticleData::Composter, - 33 => ParticleData::Heart, - 34 => ParticleData::InstantEffect, - 35 => ParticleData::Item(ItemParticle::read_from(buf)?), - 36 => ParticleData::Vibration(VibrationParticle::read_from(buf)?), - 37 => ParticleData::ItemSlime, - 38 => ParticleData::ItemSnowball, - 39 => ParticleData::LargeSmoke, - 40 => ParticleData::Lava, - 41 => ParticleData::Mycelium, - 42 => ParticleData::Note, - 43 => ParticleData::Poof, - 44 => ParticleData::Portal, - 45 => ParticleData::Rain, - 46 => ParticleData::Smoke, - 47 => ParticleData::Sneeze, - 48 => ParticleData::Spit, - 49 => ParticleData::SquidInk, - 50 => ParticleData::SweepAttack, - 51 => ParticleData::TotemOfUndying, - 52 => ParticleData::Underwater, - 53 => ParticleData::Splash, - 54 => ParticleData::Witch, - 55 => ParticleData::BubblePop, - 56 => ParticleData::CurrentDown, - 57 => ParticleData::BubbleColumnUp, - 58 => ParticleData::Nautilus, - 59 => ParticleData::Dolphin, - 60 => ParticleData::CampfireCozySmoke, - 61 => ParticleData::CampfireSignalSmoke, - 62 => ParticleData::DrippingHoney, - 63 => ParticleData::FallingHoney, - 64 => ParticleData::LandingHoney, - 65 => ParticleData::FallingNectar, - 66 => ParticleData::FallingSporeBlossom, - 67 => ParticleData::Ash, - 68 => ParticleData::CrimsonSpore, - 69 => ParticleData::WarpedSpore, - 70 => ParticleData::SporeBlossomAir, - 71 => ParticleData::DrippingObsidianTear, - 72 => ParticleData::FallingObsidianTear, - 73 => ParticleData::LandingObsidianTear, - 74 => ParticleData::ReversePortal, - 75 => ParticleData::WhiteAsh, - 76 => ParticleData::SmallFlame, - 77 => ParticleData::Snowflake, - 78 => ParticleData::DrippingDripstoneLava, - 79 => ParticleData::FallingDripstoneLava, - 80 => ParticleData::DrippingDripstoneWater, - 81 => ParticleData::FallingDripstoneWater, - 82 => ParticleData::GlowSquidInk, - 83 => ParticleData::Glow, - 84 => ParticleData::WaxOn, - 85 => ParticleData::WaxOff, - 86 => ParticleData::ElectricSpark, - 87 => ParticleData::Scrape, - _ => return Err(BufReadError::UnexpectedEnumVariant { id: id as i32 }), - }) - } -} - -impl McBufReadable for ParticleData { - fn read_from(buf: &mut Cursor<&[u8]>) -> Result<Self, BufReadError> { - let id = u32::var_read_from(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-core/src/slot.rs b/azalea-core/src/slot.rs index d60c7390..f1cd4f0b 100644 --- a/azalea-core/src/slot.rs +++ b/azalea-core/src/slot.rs @@ -3,8 +3,9 @@ use azalea_buf::{BufReadError, McBuf, McBufReadable, McBufWritable}; use std::io::{Cursor, Write}; -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Default)] pub enum Slot { + #[default] Empty, Present(SlotData), } |
