diff options
| -rw-r--r-- | azalea-client/src/plugins/interact/pick.rs | 44 | ||||
| -rw-r--r-- | azalea-client/src/plugins/mining.rs | 3 | ||||
| -rw-r--r-- | azalea-entity/src/lib.rs | 2 | ||||
| -rw-r--r-- | azalea-entity/src/metadata.rs | 484 | ||||
| -rw-r--r-- | codegen/lib/code/entity.py | 6 |
5 files changed, 281 insertions, 258 deletions
diff --git a/azalea-client/src/plugins/interact/pick.rs b/azalea-client/src/plugins/interact/pick.rs index c32ac5c7..85e20376 100644 --- a/azalea-client/src/plugins/interact/pick.rs +++ b/azalea-client/src/plugins/interact/pick.rs @@ -7,7 +7,10 @@ use azalea_core::{ use azalea_entity::{ Attributes, Dead, LocalEntity, LookDirection, Physics, Position, dimensions::EntityDimensions, - metadata::{ArmorStandMarker, Marker}, + metadata::{ + AbstractArrow, AbstractBoat, AbstractLiving, AbstractMinecart, ArmorStand, + ArmorStandMarker, EndCrystal, FallingBlock, InGround, Interaction, ShulkerBullet, Tnt, + }, view_vector, }; use azalea_physics::{ @@ -42,7 +45,7 @@ pub fn update_hit_result_component( >, instance_container: Res<InstanceContainer>, physics_query: PhysicsQuery, - pickable_query: PickableEntityQuery, + pickable_query: MaybePickableEntityQuery, ) { for ( entity, @@ -86,11 +89,28 @@ pub fn update_hit_result_component( } } -pub type PickableEntityQuery<'world, 'state, 'a> = Query< +pub type MaybePickableEntityQuery<'world, 'state, 'a> = Query< 'world, 'state, - Option<&'a ArmorStandMarker>, - (Without<Dead>, Without<Marker>, Without<LocalEntity>), + (Option<&'a ArmorStandMarker>, Option<&'a InGround>), + // search "isPickable" in the decompiled minecraft code + ( + Or<( + // TODO: ender dragon parts are pickable but the ender dragon itself isn't. this needs + // more investigation. + (With<Tnt>, Without<Dead>), + (With<FallingBlock>, Without<Dead>), + (With<AbstractMinecart>, Without<Dead>), + (With<AbstractBoat>, Without<Dead>), + With<ArmorStand>, + With<EndCrystal>, + With<Interaction>, + With<ShulkerBullet>, + (With<AbstractLiving>, Without<Dead>), + With<AbstractArrow>, + )>, + Without<LocalEntity>, + ), >; pub struct PickOpts<'world, 'state, 'a, 'b, 'c> { @@ -102,7 +122,7 @@ pub struct PickOpts<'world, 'state, 'a, 'b, 'c> { entity_pick_range: f64, block_pick_range: f64, physics_query: &'a PhysicsQuery<'world, 'state, 'b>, - pickable_query: &'a PickableEntityQuery<'world, 'state, 'c>, + pickable_query: &'a MaybePickableEntityQuery<'world, 'state, 'c>, } /// Get the block or entity that a player would be looking at if their eyes were @@ -143,18 +163,18 @@ pub fn pick(opts: PickOpts<'_, '_, '_, '_, '_>) -> HitResult { .inflate_all(inflate_by); let is_pickable = |entity: Entity| { - // TODO: ender dragon and projectiles have extra logic here. also, we shouldn't - // be able to pick spectators. - if let Ok(armor_stand_marker) = opts.pickable_query.get(entity) { - if let Some(armor_stand_marker) = armor_stand_marker - && armor_stand_marker.0 + // TODO: ender dragon has extra logic here. also, we shouldn't be able to pick + // spectators. + if let Ok((armor_stand_marker, arrow_in_ground)) = opts.pickable_query.get(entity) { + if armor_stand_marker == Some(&ArmorStandMarker(true)) + || arrow_in_ground == Some(&InGround(true)) { false } else { true } } else { - true + false } }; let entity_hit_result = pick_entity(PickEntityOpts { diff --git a/azalea-client/src/plugins/mining.rs b/azalea-client/src/plugins/mining.rs index f9bd50f6..e42ea866 100644 --- a/azalea-client/src/plugins/mining.rs +++ b/azalea-client/src/plugins/mining.rs @@ -182,7 +182,8 @@ fn handle_start_mining_block_event( (block_hit_result.direction, false) } else { debug!( - "Got StartMiningBlockEvent but we're not looking at the block. Picking an arbitrary direction instead." + "Got StartMiningBlockEvent but we're not looking at the block ({:?}.block_pos != {:?}). Picking an arbitrary direction instead.", + hit_result, event.position ); // we're not looking at the block, arbitrary direction (Direction::Down, true) diff --git a/azalea-entity/src/lib.rs b/azalea-entity/src/lib.rs index 30e00ccb..6c3603e6 100644 --- a/azalea-entity/src/lib.rs +++ b/azalea-entity/src/lib.rs @@ -127,7 +127,7 @@ pub fn on_pos(offset: f32, chunk_storage: &ChunkStorage, pos: Position) -> Block /// The Minecraft UUID of the entity. For players, this is their actual player /// UUID, and for other entities it's just random. -#[derive(Component, Deref, DerefMut, Clone, Copy, Default)] +#[derive(Component, Deref, DerefMut, Clone, Copy, Default, PartialEq)] pub struct EntityUuid(Uuid); impl EntityUuid { pub fn new(uuid: Uuid) -> Self { diff --git a/azalea-entity/src/metadata.rs b/azalea-entity/src/metadata.rs index 6ccbad1a..f7d979ec 100644 --- a/azalea-entity/src/metadata.rs +++ b/azalea-entity/src/metadata.rs @@ -32,43 +32,43 @@ impl From<EntityDataValue> for UpdateMetadataError { } } -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct OnFire(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct AbstractEntityShiftKeyDown(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Sprinting(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Swimming(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct CurrentlyGlowing(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Invisible(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct FallFlying(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct AirSupply(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct CustomName(pub Option<FormattedText>); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct CustomNameVisible(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Silent(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct NoGravity(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct TicksFrozen(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Hurt(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Hurtdir(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Damage(pub f32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PaddleLeft(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PaddleRight(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct BubbleTime(pub i32); #[derive(Component)] pub struct AcaciaBoat; @@ -184,31 +184,31 @@ impl Default for AcaciaChestBoatMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct AutoSpinAttack(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct AbstractLivingUsingItem(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Health(pub f32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct EffectParticles(pub Vec<Particle>); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct EffectAmbience(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ArrowCount(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct StingerCount(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct SleepingPos(pub Option<BlockPos>); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct NoAi(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct LeftHanded(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Aggressive(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Dancing(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct CanDuplicate(pub bool); #[derive(Component)] pub struct Allay; @@ -285,9 +285,9 @@ impl Default for AllayMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Radius(pub f32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Waiting(pub bool); #[derive(Component)] pub struct AreaEffectCloud; @@ -349,9 +349,9 @@ impl Default for AreaEffectCloudMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct AbstractAgeableBaby(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ArmadilloState(pub ArmadilloStateKind); #[derive(Component)] pub struct Armadillo; @@ -432,25 +432,25 @@ impl Default for ArmadilloMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Small(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct ShowArms(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct ShowBasePlate(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct ArmorStandMarker(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct HeadPose(pub Rotations); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct BodyPose(pub Rotations); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct LeftArmPose(pub Rotations); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct RightArmPose(pub Rotations); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct LeftLegPose(pub Rotations); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct RightLegPose(pub Rotations); #[derive(Component)] pub struct ArmorStand; @@ -553,15 +553,15 @@ impl Default for ArmorStandMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct CritArrow(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct NoPhysics(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PierceLevel(pub u8); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct InGround(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct EffectColor(pub i32); #[derive(Component)] pub struct Arrow; @@ -620,11 +620,11 @@ impl Default for ArrowMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct AxolotlVariant(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PlayingDead(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct AxolotlFromBucket(pub bool); #[derive(Component)] pub struct Axolotl; @@ -829,7 +829,7 @@ impl Default for BambooRaftMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Resting(pub bool); #[derive(Component)] pub struct Bat; @@ -899,13 +899,13 @@ impl Default for BatMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct HasNectar(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct HasStung(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct BeeRolling(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct BeeRemainingAngerTime(pub i32); #[derive(Component)] pub struct Bee; @@ -1112,7 +1112,7 @@ impl Default for BirchChestBoatMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Charged(pub bool); #[derive(Component)] pub struct Blaze; @@ -1188,37 +1188,37 @@ impl Default for BlazeMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct TransformationInterpolationStartDeltaTicks(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct TransformationInterpolationDuration(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PosRotInterpolationDuration(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Translation(pub Vec3f32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Scale(pub Vec3f32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct LeftRotation(pub Quaternion); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct RightRotation(pub Quaternion); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct BillboardRenderConstraints(pub u8); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct BrightnessOverride(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ViewRange(pub f32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ShadowRadius(pub f32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ShadowStrength(pub f32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct AbstractDisplayWidth(pub f32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct AbstractDisplayHeight(pub f32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct GlowColorOverride(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct BlockDisplayBlockState(pub azalea_block::BlockState); #[derive(Component)] pub struct BlockDisplay; @@ -1307,7 +1307,7 @@ impl Default for BlockDisplayMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct BoggedSheared(pub bool); #[derive(Component)] pub struct Bogged; @@ -1495,17 +1495,17 @@ impl Default for BreezeWindChargeMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Tamed(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Eating(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct AbstractHorseStanding(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Bred(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Dash(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct LastPoseChangeTick(pub i64); #[derive(Component)] pub struct Camel; @@ -1598,19 +1598,19 @@ impl Default for CamelMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Tame(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct InSittingPose(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Owneruuid(pub Option<Uuid>); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct CatVariant(pub azalea_registry::CatVariant); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct IsLying(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct RelaxStateOne(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct CatCollarColor(pub i32); #[derive(Component)] pub struct Cat; @@ -1712,7 +1712,7 @@ impl Default for CatMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Climbing(pub bool); #[derive(Component)] pub struct CaveSpider; @@ -1902,9 +1902,9 @@ impl Default for CherryChestBoatMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct CustomDisplayBlock(pub azalea_block::BlockState); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct DisplayOffset(pub i32); #[derive(Component)] pub struct ChestMinecart; @@ -1962,7 +1962,7 @@ impl Default for ChestMinecartMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ChickenVariant(pub azalea_registry::PigVariant); #[derive(Component)] pub struct Chicken; @@ -2043,7 +2043,7 @@ impl Default for ChickenMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct AbstractFishFromBucket(pub bool); #[derive(Component)] pub struct Cod; @@ -2114,9 +2114,9 @@ impl Default for CodMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct CommandName(pub String); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct LastOutput(pub FormattedText); #[derive(Component)] pub struct CommandBlockMinecart; @@ -2184,7 +2184,7 @@ impl Default for CommandBlockMinecartMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct CowVariant(pub azalea_registry::ChickenVariant); #[derive(Component)] pub struct Cow; @@ -2265,13 +2265,13 @@ impl Default for CowMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct CanMove(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct IsActive(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct IsTearingDown(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct HomePos(pub Option<BlockPos>); #[derive(Component)] pub struct Creaking; @@ -2361,11 +2361,11 @@ impl Default for CreakingMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct SwellDir(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct IsPowered(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct IsIgnited(pub bool); #[derive(Component)] pub struct Creeper; @@ -2564,9 +2564,9 @@ impl Default for DarkOakChestBoatMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct GotFish(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct MoistnessLevel(pub i32); #[derive(Component)] pub struct Dolphin; @@ -2647,7 +2647,7 @@ impl Default for DolphinMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Chest(pub bool); #[derive(Component)] pub struct Donkey; @@ -2780,11 +2780,11 @@ impl Default for DragonFireballMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ZombieBaby(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct SpecialType(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct DrownedConversion(pub bool); #[derive(Component)] pub struct Drowned; @@ -2862,7 +2862,7 @@ impl Default for DrownedMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct AbstractThrownItemProjectileItemStack(pub ItemStack); #[derive(Component)] pub struct Egg; @@ -2915,9 +2915,9 @@ impl Default for EggMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Moving(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct AttackTarget(pub i32); #[derive(Component)] pub struct ElderGuardian; @@ -2994,9 +2994,9 @@ impl Default for ElderGuardianMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct BeamTarget(pub Option<BlockPos>); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ShowBottom(pub bool); #[derive(Component)] pub struct EndCrystal; @@ -3053,7 +3053,7 @@ impl Default for EndCrystalMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Phase(pub i32); #[derive(Component)] pub struct EnderDragon; @@ -3173,11 +3173,11 @@ impl Default for EnderPearlMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct CarryState(pub azalea_block::BlockState); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Creepy(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct StaredAt(pub bool); #[derive(Component)] pub struct Enderman; @@ -3330,9 +3330,9 @@ impl Default for EndermiteMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct IsCelebrating(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct SpellCasting(pub u8); #[derive(Component)] pub struct Evoker; @@ -3508,7 +3508,7 @@ impl Default for ExperienceBottleMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Value(pub i32); #[derive(Component)] pub struct ExperienceOrb; @@ -3560,7 +3560,7 @@ impl Default for ExperienceOrbMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct EyeOfEnderItemStack(pub ItemStack); #[derive(Component)] pub struct EyeOfEnder; @@ -3612,7 +3612,7 @@ impl Default for EyeOfEnderMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct StartPos(pub BlockPos); #[derive(Component)] pub struct FallingBlock; @@ -3664,7 +3664,7 @@ impl Default for FallingBlockMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct FireballItemStack(pub ItemStack); #[derive(Component)] pub struct Fireball; @@ -3716,11 +3716,11 @@ impl Default for FireballMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct FireworksItem(pub ItemStack); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct AttachedToTarget(pub OptionalUnsignedInt); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ShotAtAngle(pub bool); #[derive(Component)] pub struct FireworkRocket; @@ -3782,9 +3782,9 @@ impl Default for FireworkRocketMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct HookedEntity(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Biting(pub bool); #[derive(Component)] pub struct FishingBobber; @@ -3841,25 +3841,25 @@ impl Default for FishingBobberMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct FoxKind(pub i32); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct FoxSitting(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Faceplanted(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Defending(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Sleeping(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Pouncing(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct FoxCrouching(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct FoxInterested(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct TrustedId0(pub Option<Uuid>); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct TrustedId1(pub Option<Uuid>); #[derive(Component)] pub struct Fox; @@ -3974,9 +3974,9 @@ impl Default for FoxMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct FrogVariant(pub azalea_registry::WolfSoundVariant); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct TongueTarget(pub OptionalUnsignedInt); #[derive(Component)] pub struct Frog; @@ -4062,7 +4062,7 @@ impl Default for FrogMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Fuel(pub bool); #[derive(Component)] pub struct FurnaceMinecart; @@ -4125,7 +4125,7 @@ impl Default for FurnaceMinecartMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct IsCharging(pub bool); #[derive(Component)] pub struct Ghast; @@ -4262,11 +4262,11 @@ impl Default for GiantMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ItemFrameDirection(pub Direction); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ItemFrameItem(pub ItemStack); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Rotation(pub i32); #[derive(Component)] pub struct GlowItemFrame; @@ -4319,7 +4319,7 @@ impl Default for GlowItemFrameMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct DarkTicksRemaining(pub i32); #[derive(Component)] pub struct GlowSquid; @@ -4400,11 +4400,11 @@ impl Default for GlowSquidMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct IsScreamingGoat(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct HasLeftHorn(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct HasRightHorn(pub bool); #[derive(Component)] pub struct Goat; @@ -4573,9 +4573,9 @@ impl Default for GuardianMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct IsLeashHolder(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct StaysStill(pub bool); #[derive(Component)] pub struct HappyGhast; @@ -4661,7 +4661,7 @@ impl Default for HappyGhastMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct HoglinImmuneToZombification(pub bool); #[derive(Component)] pub struct Hoglin; @@ -4798,7 +4798,7 @@ impl Default for HopperMinecartMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct HorseTypeVariant(pub i32); #[derive(Component)] pub struct Horse; @@ -5040,11 +5040,11 @@ impl Default for IllusionerMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct InteractionWidth(pub f32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct InteractionHeight(pub f32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Response(pub bool); #[derive(Component)] pub struct Interaction; @@ -5106,7 +5106,7 @@ impl Default for InteractionMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct PlayerCreated(pub bool); #[derive(Component)] pub struct IronGolem; @@ -5179,7 +5179,7 @@ impl Default for IronGolemMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ItemItem(pub ItemStack); #[derive(Component)] pub struct Item; @@ -5231,9 +5231,9 @@ impl Default for ItemMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ItemDisplayItemStack(pub ItemStack); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ItemDisplayItemDisplay(pub u8); #[derive(Component)] pub struct ItemDisplay; @@ -5642,9 +5642,9 @@ impl Default for LingeringPotionMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Strength(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct LlamaVariant(pub i32); #[derive(Component)] pub struct Llama; @@ -5787,7 +5787,7 @@ impl Default for LlamaSpitMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct SlimeSize(pub i32); #[derive(Component)] pub struct MagmaCube; @@ -6070,7 +6070,7 @@ impl Default for MinecartMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct MooshroomKind(pub i32); #[derive(Component)] pub struct Mooshroom; @@ -6351,7 +6351,7 @@ impl Default for OakChestBoatMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Trusting(pub bool); #[derive(Component)] pub struct Ocelot; @@ -6432,7 +6432,7 @@ impl Default for OcelotMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct OminousItemSpawnerItem(pub ItemStack); #[derive(Component)] pub struct OminousItemSpawner; @@ -6484,9 +6484,9 @@ impl Default for OminousItemSpawnerMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PaintingDirection(pub Direction); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PaintingVariant(pub azalea_registry::PaintingVariant); #[derive(Component)] pub struct Painting; @@ -6657,23 +6657,23 @@ impl Default for PaleOakChestBoatMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PandaUnhappyCounter(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct SneezeCounter(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct EatCounter(pub i32); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct Sneezing(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct PandaSitting(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct OnBack(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct PandaRolling(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct HiddenGene(pub u8); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PandaFlags(pub u8); #[derive(Component)] pub struct Panda; @@ -6789,7 +6789,7 @@ impl Default for PandaMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ParrotVariant(pub i32); #[derive(Component)] pub struct Parrot; @@ -6876,7 +6876,7 @@ impl Default for ParrotMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PhantomSize(pub i32); #[derive(Component)] pub struct Phantom; @@ -6945,9 +6945,9 @@ impl Default for PhantomMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PigBoostTime(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PigVariant(pub azalea_registry::FrogVariant); #[derive(Component)] pub struct Pig; @@ -7033,13 +7033,13 @@ impl Default for PigMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct AbstractPiglinImmuneToZombification(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PiglinBaby(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PiglinIsChargingCrossbow(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct IsDancing(pub bool); #[derive(Component)] pub struct Piglin; @@ -7204,7 +7204,7 @@ impl Default for PiglinBruteMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PillagerIsChargingCrossbow(pub bool); #[derive(Component)] pub struct Pillager; @@ -7285,17 +7285,17 @@ impl Default for PillagerMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PlayerAbsorption(pub f32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Score(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PlayerModeCustomisation(pub u8); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PlayerMainHand(pub u8); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ShoulderLeft(pub simdnbt::owned::NbtCompound); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ShoulderRight(pub simdnbt::owned::NbtCompound); #[derive(Component)] pub struct Player; @@ -7383,7 +7383,7 @@ impl Default for PlayerMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PolarBearStanding(pub bool); #[derive(Component)] pub struct PolarBear; @@ -7464,9 +7464,9 @@ impl Default for PolarBearMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PufferfishFromBucket(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct PuffState(pub i32); #[derive(Component)] pub struct Pufferfish; @@ -7543,7 +7543,7 @@ impl Default for PufferfishMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct RabbitKind(pub i32); #[derive(Component)] pub struct Rabbit; @@ -7698,7 +7698,7 @@ impl Default for RavagerMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct SalmonKind(pub i32); #[derive(Component)] pub struct Salmon; @@ -7774,7 +7774,7 @@ impl Default for SalmonMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct SheepSheared(pub bool); #[derive(Component)] pub struct Sheep; @@ -7856,11 +7856,11 @@ impl Default for SheepMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct AttachFace(pub Direction); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Peek(pub u8); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Color(pub u8); #[derive(Component)] pub struct Shulker; @@ -8055,7 +8055,7 @@ impl Default for SilverfishMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct StrayConversion(pub bool); #[derive(Component)] pub struct Skeleton; @@ -8278,7 +8278,7 @@ impl Default for SlimeMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct SmallFireballItemStack(pub ItemStack); #[derive(Component)] pub struct SmallFireball; @@ -8330,9 +8330,9 @@ impl Default for SmallFireballMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct SnifferState(pub SnifferStateKind); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct DropSeedAtTick(pub i32); #[derive(Component)] pub struct Sniffer; @@ -8418,7 +8418,7 @@ impl Default for SnifferMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone, Copy)] +#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)] pub struct HasPumpkin(pub bool); #[derive(Component)] pub struct SnowGolem; @@ -9026,9 +9026,9 @@ impl Default for StrayMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct StriderBoostTime(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Suffocating(pub bool); #[derive(Component)] pub struct Strider; @@ -9114,7 +9114,7 @@ impl Default for StriderMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct TadpoleFromBucket(pub bool); #[derive(Component)] pub struct Tadpole; @@ -9186,15 +9186,15 @@ impl Default for TadpoleMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Text(pub FormattedText); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct LineWidth(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct BackgroundColor(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct TextOpacity(pub u8); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct StyleFlags(pub u8); #[derive(Component)] pub struct TextDisplay; @@ -9303,9 +9303,9 @@ impl Default for TextDisplayMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Fuse(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct TntBlockState(pub azalea_block::BlockState); #[derive(Component)] pub struct Tnt; @@ -9511,9 +9511,9 @@ impl Default for TraderLlamaMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Loyalty(pub u8); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Foil(pub bool); #[derive(Component)] pub struct Trident; @@ -9577,7 +9577,7 @@ impl Default for TridentMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct TropicalFishTypeVariant(pub i32); #[derive(Component)] pub struct TropicalFish; @@ -9653,9 +9653,9 @@ impl Default for TropicalFishMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct HasEgg(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct LayingEgg(pub bool); #[derive(Component)] pub struct Turtle; @@ -9741,7 +9741,7 @@ impl Default for TurtleMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct VexFlags(pub u8); #[derive(Component)] pub struct Vex; @@ -9816,9 +9816,9 @@ impl Default for VexMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct AbstractVillagerUnhappyCounter(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct VillagerVillagerData(pub VillagerData); #[derive(Component)] pub struct Villager; @@ -10053,7 +10053,7 @@ impl Default for WanderingTraderMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ClientAngerLevel(pub i32); #[derive(Component)] pub struct Warden; @@ -10173,7 +10173,7 @@ impl Default for WindChargeMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct WitchUsingItem(pub bool); #[derive(Component)] pub struct Witch; @@ -10254,13 +10254,13 @@ impl Default for WitchMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct TargetA(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct TargetB(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct TargetC(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Inv(pub i32); #[derive(Component)] pub struct Wither; @@ -10418,7 +10418,7 @@ impl Default for WitherSkeletonMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Dangerous(pub bool); #[derive(Component)] pub struct WitherSkull; @@ -10470,15 +10470,15 @@ impl Default for WitherSkullMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct WolfInterested(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct WolfCollarColor(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct WolfRemainingAngerTime(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct WolfVariant(pub azalea_registry::CowVariant); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct SoundVariant(pub azalea_registry::WolfVariant); #[derive(Component)] pub struct Wolf; @@ -10585,7 +10585,7 @@ impl Default for WolfMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ZoglinBaby(pub bool); #[derive(Component)] pub struct Zoglin; @@ -10824,9 +10824,9 @@ impl Default for ZombieHorseMetadataBundle { } } -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct Converting(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] +#[derive(Component, Deref, DerefMut, Clone, PartialEq)] pub struct ZombieVillagerVillagerData(pub VillagerData); #[derive(Component)] pub struct ZombieVillager; diff --git a/codegen/lib/code/entity.py b/codegen/lib/code/entity.py index 31cf71a8..eb2677ad 100644 --- a/codegen/lib/code/entity.py +++ b/codegen/lib/code/entity.py @@ -262,14 +262,16 @@ impl From<EntityDataValue> for UpdateMetadataError { metadata_type_data = metadata_types[type_id] rust_type = metadata_type_data["type"] - code.append("#[derive(Component, Deref, DerefMut, Clone)]") + code.append("#[derive(Component, Deref, DerefMut, Clone, PartialEq)]") code.append(f"pub struct {struct_name}(pub {rust_type});") else: # if it's a bitfield just make a struct for each bit for mask, name in name_or_bitfield.items(): name = maybe_rename_field(name, index) struct_name = upper_first_letter(to_camel_case(name)) - code.append("#[derive(Component, Deref, DerefMut, Clone, Copy)]") + code.append( + "#[derive(Component, Deref, DerefMut, Clone, Copy, PartialEq)]" + ) code.append(f"pub struct {struct_name}(pub bool);") # add the entity struct and Bundle struct |
