aboutsummaryrefslogtreecommitdiff
path: root/azalea-entity
diff options
context:
space:
mode:
authormat <git@matdoes.dev>2025-12-19 13:07:19 +1100
committermat <git@matdoes.dev>2025-12-19 13:07:19 +1100
commitb300cd7b36a5ba6f5be58e1942da8e2c866106e6 (patch)
tree71f2ff46aae542aa9f78097c9442dea9130be3de /azalea-entity
parent7c468692c7adf6c9a4796aa8010f20ced4618327 (diff)
downloadazalea-drasl-b300cd7b36a5ba6f5be58e1942da8e2c866106e6.tar.xz
smaller EntityDataValue type
Diffstat (limited to 'azalea-entity')
-rw-r--r--azalea-entity/src/data.rs12
-rw-r--r--azalea-entity/src/metadata.rs14
-rw-r--r--azalea-entity/src/particle.rs4
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,