diff options
| author | mat <git@matdoes.dev> | 2025-12-19 13:07:19 +1100 |
|---|---|---|
| committer | mat <git@matdoes.dev> | 2025-12-19 13:07:19 +1100 |
| commit | b300cd7b36a5ba6f5be58e1942da8e2c866106e6 (patch) | |
| tree | 71f2ff46aae542aa9f78097c9442dea9130be3de /azalea-entity/src | |
| parent | 7c468692c7adf6c9a4796aa8010f20ced4618327 (diff) | |
| download | azalea-drasl-b300cd7b36a5ba6f5be58e1942da8e2c866106e6.tar.xz | |
smaller EntityDataValue type
Diffstat (limited to 'azalea-entity/src')
| -rw-r--r-- | azalea-entity/src/data.rs | 12 | ||||
| -rw-r--r-- | azalea-entity/src/metadata.rs | 14 | ||||
| -rw-r--r-- | azalea-entity/src/particle.rs | 4 |
3 files changed, 16 insertions, 14 deletions
diff --git a/azalea-entity/src/data.rs b/azalea-entity/src/data.rs index fab78795..c9e98b0d 100644 --- a/azalea-entity/src/data.rs +++ b/azalea-entity/src/data.rs @@ -65,9 +65,9 @@ pub enum EntityDataValue { Int(#[var] i32), Long(#[var] i64), Float(f32), - String(String), - FormattedText(FormattedText), - OptionalFormattedText(Option<FormattedText>), + String(Box<str>), + FormattedText(Box<FormattedText>), + OptionalFormattedText(Option<Box<FormattedText>>), ItemStack(ItemStack), Boolean(bool), Rotations(Rotations), @@ -79,7 +79,7 @@ pub enum EntityDataValue { /// If this is air, that means it's absent, OptionalBlockState(azalea_block::BlockState), Particle(Particle), - Particles(Vec<Particle>), + Particles(Box<[Particle]>), VillagerData(VillagerData), // 0 for absent; 1 + actual value otherwise. Used for entity IDs. OptionalUnsignedInt(OptionalUnsignedInt), @@ -92,7 +92,7 @@ pub enum EntityDataValue { PigVariant(azalea_registry::data::PigVariant), ChickenVariant(azalea_registry::data::ChickenVariant), ZombieNautilusVariant(azalea_registry::data::ZombieNautilusVariant), - OptionalGlobalPos(Option<GlobalPos>), + OptionalGlobalPos(Option<Box<GlobalPos>>), PaintingVariant(azalea_registry::data::PaintingVariant), SnifferState(SnifferStateKind), ArmadilloState(ArmadilloStateKind), @@ -104,6 +104,8 @@ pub enum EntityDataValue { HumanoidArm(HumanoidArm), } +const _: () = assert!(size_of::<EntityDataValue>() == 24); + #[derive(Clone, Debug, PartialEq)] pub struct OptionalUnsignedInt(pub Option<u32>); diff --git a/azalea-entity/src/metadata.rs b/azalea-entity/src/metadata.rs index 03b5ad69..d076e403 100644 --- a/azalea-entity/src/metadata.rs +++ b/azalea-entity/src/metadata.rs @@ -250,7 +250,7 @@ pub struct FallFlying(pub bool); pub struct AirSupply(pub i32); /// A metadata field for [AbstractEntity]. #[derive(Component, Deref, DerefMut, Clone, PartialEq)] -pub struct CustomName(pub Option<FormattedText>); +pub struct CustomName(pub Option<Box<FormattedText>>); /// A metadata field for [AbstractEntity]. #[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct CustomNameVisible(pub bool); @@ -2718,7 +2718,7 @@ impl Default for ItemDisplayMetadataBundle { /// A metadata field for [TextDisplay]. #[derive(Component, Deref, DerefMut, Clone, PartialEq)] -pub struct Text(pub FormattedText); +pub struct Text(pub Box<FormattedText>); /// A metadata field for [TextDisplay]. #[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct LineWidth(pub i32); @@ -2824,7 +2824,7 @@ pub struct AbstractLivingUsingItem(pub bool); pub struct Health(pub f32); /// A metadata field for [AbstractLiving]. #[derive(Component, Deref, DerefMut, Clone, PartialEq)] -pub struct EffectParticles(pub Vec<Particle>); +pub struct EffectParticles(pub Box<[Particle]>); /// A metadata field for [AbstractLiving]. #[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct EffectAmbience(pub bool); @@ -3256,7 +3256,7 @@ pub struct Profile(pub components::Profile); pub struct Immovable(pub bool); /// A metadata field for [Mannequin]. #[derive(Component, Deref, DerefMut, Clone, PartialEq)] -pub struct Description(pub Option<FormattedText>); +pub struct Description(pub Option<Box<FormattedText>>); /// The marker component for entities of type `minecraft:mannequin`. /// /// # Metadata @@ -12295,10 +12295,10 @@ impl Default for ChestMinecartMetadataBundle { /// A metadata field for [CommandBlockMinecart]. #[derive(Component, Deref, DerefMut, Clone, PartialEq)] -pub struct CommandName(pub String); +pub struct CommandName(pub Box<str>); /// A metadata field for [CommandBlockMinecart]. #[derive(Component, Deref, DerefMut, Clone, PartialEq)] -pub struct LastOutput(pub FormattedText); +pub struct LastOutput(pub Box<FormattedText>); /// The marker component for entities of type /// `minecraft:command_block_minecart`. /// @@ -12359,7 +12359,7 @@ impl Default for CommandBlockMinecartMetadataBundle { Self { _marker: CommandBlockMinecart, parent: Default::default(), - command_name: CommandName("".to_owned()), + command_name: CommandName("".into()), last_output: LastOutput(Default::default()), } } diff --git a/azalea-entity/src/particle.rs b/azalea-entity/src/particle.rs index a85d2565..14dad4cc 100644 --- a/azalea-entity/src/particle.rs +++ b/azalea-entity/src/particle.rs @@ -60,7 +60,7 @@ pub enum Particle { Heart, InstantEffect, Item(ItemParticle), - Vibration(VibrationParticle), + Vibration(Box<VibrationParticle>), Trail, ItemSlime, ItemCobweb, @@ -183,7 +183,7 @@ impl From<ParticleKind> for Particle { ParticleKind::Heart => Self::Heart, ParticleKind::InstantEffect => Self::InstantEffect, ParticleKind::Item => Self::Item(ItemParticle::default()), - ParticleKind::Vibration => Self::Vibration(VibrationParticle::default()), + ParticleKind::Vibration => Self::Vibration(Box::new(VibrationParticle::default())), ParticleKind::ItemSlime => Self::ItemSlime, ParticleKind::ItemSnowball => Self::ItemSnowball, ParticleKind::LargeSmoke => Self::LargeSmoke, |
