diff options
| author | mat <27899617+mat-1@users.noreply.github.com> | 2025-03-25 11:17:39 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-25 11:17:39 -0500 |
| commit | ef357fdf3667f3ded03203fc0f7cdec48a01ad8f (patch) | |
| tree | 6e7429c62a22fec1988278f63554c93bdd905a5d /azalea-entity | |
| parent | 8af265e48bf9f3d5263c074d034770e4216bb3f3 (diff) | |
| download | azalea-drasl-ef357fdf3667f3ded03203fc0f7cdec48a01ad8f.tar.xz | |
1.21.5 (#198)
* 25w02a
* move item_components codegen to a different module
* remove outdated test
* 25w03a
* start updating to 24w09b
* 1.21.5-pre2
* fix broken packets
* 1.21.5-rc2
* merge main
* delete unused acket_handling
* 1.21.5
Diffstat (limited to 'azalea-entity')
| -rwxr-xr-x | azalea-entity/src/data.rs | 6 | ||||
| -rwxr-xr-x | azalea-entity/src/dimensions.rs | 3 | ||||
| -rw-r--r-- | azalea-entity/src/metadata.rs | 473 | ||||
| -rwxr-xr-x | azalea-entity/src/particle.rs | 4 |
4 files changed, 255 insertions, 231 deletions
diff --git a/azalea-entity/src/data.rs b/azalea-entity/src/data.rs index 67476d8b..c92d1c95 100755 --- a/azalea-entity/src/data.rs +++ b/azalea-entity/src/data.rs @@ -70,7 +70,7 @@ pub enum EntityDataValue { BlockPos(BlockPos), OptionalBlockPos(Option<BlockPos>), Direction(Direction), - OptionalUuid(Option<Uuid>), + OptionalLivingEntityReference(Option<Uuid>), BlockState(azalea_block::BlockState), /// If this is air, that means it's absent, OptionalBlockState(azalea_block::BlockState), @@ -82,8 +82,12 @@ pub enum EntityDataValue { OptionalUnsignedInt(OptionalUnsignedInt), Pose(Pose), CatVariant(azalea_registry::CatVariant), + ChickenVariant(azalea_registry::ChickenVariant), + CowVariant(azalea_registry::CowVariant), WolfVariant(azalea_registry::WolfVariant), + WolfSoundVariant(azalea_registry::WolfSoundVariant), FrogVariant(azalea_registry::FrogVariant), + PigVariant(azalea_registry::PigVariant), OptionalGlobalPos(Option<GlobalPos>), PaintingVariant(azalea_registry::PaintingVariant), SnifferState(SnifferStateKind), diff --git a/azalea-entity/src/dimensions.rs b/azalea-entity/src/dimensions.rs index 12a815d1..8d9a1eae 100755 --- a/azalea-entity/src/dimensions.rs +++ b/azalea-entity/src/dimensions.rs @@ -103,6 +103,7 @@ impl From<EntityKind> for EntityDimensions { EntityKind::JungleChestBoat => EntityDimensions::new(1.375, 0.5625), EntityKind::LeashKnot => EntityDimensions::new(0.375, 0.5), EntityKind::LightningBolt => EntityDimensions::new(0.0, 0.0), + EntityKind::LingeringPotion => EntityDimensions::new(0.25, 0.25), EntityKind::Llama => EntityDimensions::new(0.9, 1.87), EntityKind::LlamaSpit => EntityDimensions::new(0.25, 0.25), EntityKind::MagmaCube => EntityDimensions::new(0.52, 0.52), @@ -128,7 +129,6 @@ impl From<EntityKind> for EntityDimensions { EntityKind::Pillager => EntityDimensions::new(0.6, 1.95), EntityKind::Player => EntityDimensions::new(0.6, 1.8), EntityKind::PolarBear => EntityDimensions::new(1.4, 1.4), - EntityKind::Potion => EntityDimensions::new(0.25, 0.25), EntityKind::Pufferfish => EntityDimensions::new(0.7, 0.7), EntityKind::Rabbit => EntityDimensions::new(0.4, 0.5), EntityKind::Ravager => EntityDimensions::new(1.95, 2.2), @@ -147,6 +147,7 @@ impl From<EntityKind> for EntityDimensions { EntityKind::SpawnerMinecart => EntityDimensions::new(0.98, 0.7), EntityKind::SpectralArrow => EntityDimensions::new(0.5, 0.5), EntityKind::Spider => EntityDimensions::new(1.4, 0.9), + EntityKind::SplashPotion => EntityDimensions::new(0.25, 0.25), EntityKind::SpruceBoat => EntityDimensions::new(1.375, 0.5625), EntityKind::SpruceChestBoat => EntityDimensions::new(1.375, 0.5625), EntityKind::Squid => EntityDimensions::new(0.8, 0.8), diff --git a/azalea-entity/src/metadata.rs b/azalea-entity/src/metadata.rs index cac64999..e6504194 100644 --- a/azalea-entity/src/metadata.rs +++ b/azalea-entity/src/metadata.rs @@ -9,6 +9,7 @@ use azalea_core::{ position::{BlockPos, Vec3}, }; use azalea_inventory::ItemStack; +use azalea_registry::DataRegistry; use bevy_ecs::{bundle::Bundle, component::Component}; use derive_more::{Deref, DerefMut}; use thiserror::Error; @@ -1496,8 +1497,6 @@ pub struct Eating(pub bool); pub struct AbstractHorseStanding(pub bool); #[derive(Component, Deref, DerefMut, Clone, Copy)] pub struct Bred(pub bool); -#[derive(Component, Deref, DerefMut, Clone, Copy)] -pub struct Saddled(pub bool); #[derive(Component, Deref, DerefMut, Clone)] pub struct Dash(pub bool); #[derive(Component, Deref, DerefMut, Clone)] @@ -1584,7 +1583,6 @@ impl Default for CamelMetadataBundle { eating: Eating(false), abstract_horse_standing: AbstractHorseStanding(false), bred: Bred(false), - saddled: Saddled(false), }, dash: Dash(false), last_pose_change_tick: LastPoseChangeTick(0), @@ -1696,7 +1694,7 @@ impl Default for CatMetadataBundle { in_sitting_pose: InSittingPose(false), owneruuid: Owneruuid(None), }, - cat_variant: CatVariant(azalea_registry::CatVariant::Tabby), + cat_variant: CatVariant(azalea_registry::CatVariant::new_raw(0)), is_lying: IsLying(false), relax_state_one: RelaxStateOne(false), cat_collar_color: CatCollarColor(Default::default()), @@ -1893,11 +1891,9 @@ impl Default for CherryChestBoatMetadataBundle { } #[derive(Component, Deref, DerefMut, Clone)] -pub struct DisplayBlock(pub i32); +pub struct CustomDisplayBlock(pub azalea_block::BlockState); #[derive(Component, Deref, DerefMut, Clone)] pub struct DisplayOffset(pub i32); -#[derive(Component, Deref, DerefMut, Clone)] -pub struct CustomDisplay(pub bool); #[derive(Component)] pub struct ChestMinecart; impl ChestMinecart { @@ -1906,7 +1902,7 @@ impl ChestMinecart { d: EntityDataItem, ) -> Result<(), UpdateMetadataError> { match d.index { - 0..=13 => AbstractMinecart::apply_metadata(entity, d)?, + 0..=12 => AbstractMinecart::apply_metadata(entity, d)?, _ => {} } Ok(()) @@ -1947,14 +1943,15 @@ impl Default for ChestMinecartMetadataBundle { hurtdir: Hurtdir(1), damage: Damage(0.0), }, - display_block: DisplayBlock(Default::default()), - display_offset: DisplayOffset(6), - custom_display: CustomDisplay(false), + custom_display_block: CustomDisplayBlock(azalea_block::BlockState::AIR), + display_offset: DisplayOffset(Default::default()), }, } } } +#[derive(Component, Deref, DerefMut, Clone)] +pub struct ChickenVariant(pub azalea_registry::PigVariant); #[derive(Component)] pub struct Chicken; impl Chicken { @@ -1964,6 +1961,9 @@ impl Chicken { ) -> Result<(), UpdateMetadataError> { match d.index { 0..=16 => AbstractAnimal::apply_metadata(entity, d)?, + 17 => { + entity.insert(ChickenVariant(d.value.into_pig_variant()?)); + } _ => {} } Ok(()) @@ -1974,6 +1974,7 @@ impl Chicken { pub struct ChickenMetadataBundle { _marker: Chicken, parent: AbstractAnimalMetadataBundle, + chicken_variant: ChickenVariant, } impl Default for ChickenMetadataBundle { fn default() -> Self { @@ -2023,6 +2024,7 @@ impl Default for ChickenMetadataBundle { abstract_ageable_baby: AbstractAgeableBaby(false), }, }, + chicken_variant: ChickenVariant(azalea_registry::PigVariant::new_raw(0)), } } } @@ -2110,11 +2112,11 @@ impl CommandBlockMinecart { d: EntityDataItem, ) -> Result<(), UpdateMetadataError> { match d.index { - 0..=13 => AbstractMinecart::apply_metadata(entity, d)?, - 14 => { + 0..=12 => AbstractMinecart::apply_metadata(entity, d)?, + 13 => { entity.insert(CommandName(d.value.into_string()?)); } - 15 => { + 14 => { entity.insert(LastOutput(d.value.into_formatted_text()?)); } _ => {} @@ -2159,9 +2161,8 @@ impl Default for CommandBlockMinecartMetadataBundle { hurtdir: Hurtdir(1), damage: Damage(0.0), }, - display_block: DisplayBlock(Default::default()), - display_offset: DisplayOffset(6), - custom_display: CustomDisplay(false), + custom_display_block: CustomDisplayBlock(azalea_block::BlockState::AIR), + display_offset: DisplayOffset(Default::default()), }, command_name: CommandName("".to_string()), last_output: LastOutput(Default::default()), @@ -2169,6 +2170,8 @@ impl Default for CommandBlockMinecartMetadataBundle { } } +#[derive(Component, Deref, DerefMut, Clone)] +pub struct CowVariant(pub azalea_registry::ChickenVariant); #[derive(Component)] pub struct Cow; impl Cow { @@ -2178,6 +2181,9 @@ impl Cow { ) -> Result<(), UpdateMetadataError> { match d.index { 0..=16 => AbstractAnimal::apply_metadata(entity, d)?, + 17 => { + entity.insert(CowVariant(d.value.into_chicken_variant()?)); + } _ => {} } Ok(()) @@ -2188,6 +2194,7 @@ impl Cow { pub struct CowMetadataBundle { _marker: Cow, parent: AbstractAnimalMetadataBundle, + cow_variant: CowVariant, } impl Default for CowMetadataBundle { fn default() -> Self { @@ -2237,6 +2244,7 @@ impl Default for CowMetadataBundle { abstract_ageable_baby: AbstractAgeableBaby(false), }, }, + cow_variant: CowVariant(azalea_registry::ChickenVariant::new_raw(0)), } } } @@ -2248,7 +2256,7 @@ pub struct IsActive(pub bool); #[derive(Component, Deref, DerefMut, Clone)] pub struct IsTearingDown(pub bool); #[derive(Component, Deref, DerefMut, Clone)] -pub struct CreakingHomePos(pub Option<BlockPos>); +pub struct HomePos(pub Option<BlockPos>); #[derive(Component)] pub struct Creaking; impl Creaking { @@ -2268,7 +2276,7 @@ impl Creaking { entity.insert(IsTearingDown(d.value.into_boolean()?)); } 19 => { - entity.insert(CreakingHomePos(d.value.into_optional_block_pos()?)); + entity.insert(HomePos(d.value.into_optional_block_pos()?)); } _ => {} } @@ -2283,7 +2291,7 @@ pub struct CreakingMetadataBundle { can_move: CanMove, is_active: IsActive, is_tearing_down: IsTearingDown, - creaking_home_pos: CreakingHomePos, + home_pos: HomePos, } impl Default for CreakingMetadataBundle { fn default() -> Self { @@ -2332,7 +2340,7 @@ impl Default for CreakingMetadataBundle { can_move: CanMove(true), is_active: IsActive(false), is_tearing_down: IsTearingDown(false), - creaking_home_pos: CreakingHomePos(None), + home_pos: HomePos(None), } } } @@ -2541,8 +2549,6 @@ impl Default for DarkOakChestBoatMetadataBundle { } #[derive(Component, Deref, DerefMut, Clone)] -pub struct TreasurePos(pub BlockPos); -#[derive(Component, Deref, DerefMut, Clone)] pub struct GotFish(pub bool); #[derive(Component, Deref, DerefMut, Clone)] pub struct MoistnessLevel(pub i32); @@ -2556,12 +2562,9 @@ impl Dolphin { match d.index { 0..=16 => AbstractAgeable::apply_metadata(entity, d)?, 17 => { - entity.insert(TreasurePos(d.value.into_block_pos()?)); - } - 18 => { entity.insert(GotFish(d.value.into_boolean()?)); } - 19 => { + 18 => { entity.insert(MoistnessLevel(d.value.into_int()?)); } _ => {} @@ -2574,7 +2577,6 @@ impl Dolphin { pub struct DolphinMetadataBundle { _marker: Dolphin, parent: AbstractAgeableMetadataBundle, - treasure_pos: TreasurePos, got_fish: GotFish, moistness_level: MoistnessLevel, } @@ -2623,7 +2625,6 @@ impl Default for DolphinMetadataBundle { }, abstract_ageable_baby: AbstractAgeableBaby(false), }, - treasure_pos: TreasurePos(BlockPos::new(0, 0, 0)), got_fish: GotFish(false), moistness_level: MoistnessLevel(2400), } @@ -2710,7 +2711,6 @@ impl Default for DonkeyMetadataBundle { eating: Eating(false), abstract_horse_standing: AbstractHorseStanding(false), bred: Bred(false), - saddled: Saddled(false), }, chest: Chest(false), }, @@ -3485,6 +3485,8 @@ impl Default for ExperienceBottleMetadataBundle { } } +#[derive(Component, Deref, DerefMut, Clone)] +pub struct Value(pub i32); #[derive(Component)] pub struct ExperienceOrb; impl ExperienceOrb { @@ -3494,6 +3496,9 @@ impl ExperienceOrb { ) -> Result<(), UpdateMetadataError> { match d.index { 0..=7 => AbstractEntity::apply_metadata(entity, d)?, + 8 => { + entity.insert(Value(d.value.into_int()?)); + } _ => {} } Ok(()) @@ -3504,6 +3509,7 @@ impl ExperienceOrb { pub struct ExperienceOrbMetadataBundle { _marker: ExperienceOrb, parent: AbstractEntityMetadataBundle, + value: Value, } impl Default for ExperienceOrbMetadataBundle { fn default() -> Self { @@ -3526,6 +3532,7 @@ impl Default for ExperienceOrbMetadataBundle { pose: Pose::default(), ticks_frozen: TicksFrozen(Default::default()), }, + value: Value(0), } } } @@ -3854,10 +3861,10 @@ impl Fox { entity.insert(FoxInterested(bitfield & 0x8 != 0)); } 19 => { - entity.insert(TrustedId0(d.value.into_optional_uuid()?)); + entity.insert(TrustedId0(d.value.into_optional_living_entity_reference()?)); } 20 => { - entity.insert(TrustedId1(d.value.into_optional_uuid()?)); + entity.insert(TrustedId1(d.value.into_optional_living_entity_reference()?)); } _ => {} } @@ -3928,7 +3935,7 @@ impl Default for FoxMetadataBundle { abstract_ageable_baby: AbstractAgeableBaby(false), }, }, - fox_kind: FoxKind(0), + fox_kind: FoxKind(Default::default()), fox_sitting: FoxSitting(false), faceplanted: Faceplanted(false), defending: Defending(false), @@ -3943,7 +3950,7 @@ impl Default for FoxMetadataBundle { } #[derive(Component, Deref, DerefMut, Clone)] -pub struct FrogVariant(pub azalea_registry::FrogVariant); +pub struct FrogVariant(pub azalea_registry::WolfSoundVariant); #[derive(Component, Deref, DerefMut, Clone)] pub struct TongueTarget(pub OptionalUnsignedInt); #[derive(Component)] @@ -3956,7 +3963,7 @@ impl Frog { match d.index { 0..=16 => AbstractAnimal::apply_metadata(entity, d)?, 17 => { - entity.insert(FrogVariant(d.value.into_frog_variant()?)); + entity.insert(FrogVariant(d.value.into_wolf_sound_variant()?)); } 18 => { entity.insert(TongueTarget(d.value.into_optional_unsigned_int()?)); @@ -4022,7 +4029,7 @@ impl Default for FrogMetadataBundle { abstract_ageable_baby: AbstractAgeableBaby(false), }, }, - frog_variant: FrogVariant(azalea_registry::FrogVariant::Temperate), + frog_variant: FrogVariant(azalea_registry::WolfSoundVariant::new_raw(0)), tongue_target: TongueTarget(OptionalUnsignedInt(None)), } } @@ -4038,8 +4045,8 @@ impl FurnaceMinecart { d: EntityDataItem, ) -> Result<(), UpdateMetadataError> { match d.index { - 0..=13 => AbstractMinecart::apply_metadata(entity, d)?, - 14 => { + 0..=12 => AbstractMinecart::apply_metadata(entity, d)?, + 13 => { entity.insert(Fuel(d.value.into_boolean()?)); } _ => {} @@ -4083,9 +4090,8 @@ impl Default for FurnaceMinecartMetadataBundle { hurtdir: Hurtdir(1), damage: Damage(0.0), }, - display_block: DisplayBlock(Default::default()), - display_offset: DisplayOffset(6), - custom_display: CustomDisplay(false), + custom_display_block: CustomDisplayBlock(azalea_block::BlockState::AIR), + display_offset: DisplayOffset(Default::default()), }, fuel: Fuel(false), } @@ -4620,7 +4626,7 @@ impl HopperMinecart { d: EntityDataItem, ) -> Result<(), UpdateMetadataError> { match d.index { - 0..=13 => AbstractMinecart::apply_metadata(entity, d)?, + 0..=12 => AbstractMinecart::apply_metadata(entity, d)?, _ => {} } Ok(()) @@ -4661,9 +4667,8 @@ impl Default for HopperMinecartMetadataBundle { hurtdir: Hurtdir(1), damage: Damage(0.0), }, - display_block: DisplayBlock(Default::default()), - display_offset: DisplayOffset(6), - custom_display: CustomDisplay(false), + custom_display_block: CustomDisplayBlock(azalea_block::BlockState::AIR), + display_offset: DisplayOffset(Default::default()), }, } } @@ -4749,7 +4754,6 @@ impl Default for HorseMetadataBundle { eating: Eating(false), abstract_horse_standing: AbstractHorseStanding(false), bred: Bred(false), - saddled: Saddled(false), }, horse_type_variant: HorseTypeVariant(0), } @@ -5452,6 +5456,57 @@ impl Default for LightningBoltMetadataBundle { } } +#[derive(Component)] +pub struct LingeringPotion; +impl LingeringPotion { + pub fn apply_metadata( + entity: &mut bevy_ecs::system::EntityCommands, + d: EntityDataItem, + ) -> Result<(), UpdateMetadataError> { + match d.index { + 0..=8 => AbstractThrownItemProjectile::apply_metadata(entity, d)?, + _ => {} + } + Ok(()) + } +} + +#[derive(Bundle)] +pub struct LingeringPotionMetadataBundle { + _marker: LingeringPotion, + parent: AbstractThrownItemProjectileMetadataBundle, +} +impl Default for LingeringPotionMetadataBundle { + fn default() -> Self { + Self { + _marker: LingeringPotion, + parent: AbstractThrownItemProjectileMetadataBundle { + _marker: AbstractThrownItemProjectile, + parent: AbstractEntityMetadataBundle { + _marker: AbstractEntity, + on_fire: OnFire(false), + shift_key_down: ShiftKeyDown(false), + sprinting: Sprinting(false), + swimming: Swimming(false), + currently_glowing: CurrentlyGlowing(false), + invisible: Invisible(false), + fall_flying: FallFlying(false), + air_supply: AirSupply(Default::default()), + custom_name: CustomName(Default::default()), + custom_name_visible: CustomNameVisible(Default::default()), + silent: Silent(Default::default()), + no_gravity: NoGravity(Default::default()), + pose: Pose::default(), + ticks_frozen: TicksFrozen(Default::default()), + }, + abstract_thrown_item_projectile_item_stack: AbstractThrownItemProjectileItemStack( + Default::default(), + ), + }, + } + } +} + #[derive(Component, Deref, DerefMut, Clone)] pub struct Strength(pub i32); #[derive(Component, Deref, DerefMut, Clone)] @@ -5542,7 +5597,6 @@ impl Default for LlamaMetadataBundle { eating: Eating(false), abstract_horse_standing: AbstractHorseStanding(false), bred: Bred(false), - saddled: Saddled(false), }, chest: Chest(false), }, @@ -5832,7 +5886,7 @@ impl Minecart { d: EntityDataItem, ) -> Result<(), UpdateMetadataError> { match d.index { - 0..=13 => AbstractMinecart::apply_metadata(entity, d)?, + 0..=12 => AbstractMinecart::apply_metadata(entity, d)?, _ => {} } Ok(()) @@ -5873,16 +5927,15 @@ impl Default for MinecartMetadataBundle { hurtdir: Hurtdir(1), damage: Damage(0.0), }, - display_block: DisplayBlock(Default::default()), - display_offset: DisplayOffset(6), - custom_display: CustomDisplay(false), + custom_display_block: CustomDisplayBlock(azalea_block::BlockState::AIR), + display_offset: DisplayOffset(Default::default()), }, } } } #[derive(Component, Deref, DerefMut, Clone)] -pub struct MooshroomKind(pub String); +pub struct MooshroomKind(pub i32); #[derive(Component)] pub struct Mooshroom; impl Mooshroom { @@ -5891,9 +5944,9 @@ impl Mooshroom { d: EntityDataItem, ) -> Result<(), UpdateMetadataError> { match d.index { - 0..=16 => Cow::apply_metadata(entity, d)?, + 0..=16 => AbstractAnimal::apply_metadata(entity, d)?, 17 => { - entity.insert(MooshroomKind(d.value.into_string()?)); + entity.insert(MooshroomKind(d.value.into_int()?)); } _ => {} } @@ -5904,58 +5957,55 @@ impl Mooshroom { #[derive(Bundle)] pub struct MooshroomMetadataBundle { _marker: Mooshroom, - parent: CowMetadataBundle, + parent: AbstractAnimalMetadataBundle, mooshroom_kind: MooshroomKind, } impl Default for MooshroomMetadataBundle { fn default() -> Self { Self { _marker: Mooshroom, - parent: CowMetadataBundle { - _marker: Cow, - parent: AbstractAnimalMetadataBundle { - _marker: AbstractAnimal, - parent: AbstractAgeableMetadataBundle { - _marker: AbstractAgeable, - parent: AbstractCreatureMetadataBundle { - _marker: AbstractCreature, - parent: AbstractInsentientMetadataBundle { - _marker: AbstractInsentient, - parent: AbstractLivingMetadataBundle { - _marker: AbstractLiving, - parent: AbstractEntityMetadataBundle { - _marker: AbstractEntity, - on_fire: OnFire(false), - shift_key_down: ShiftKeyDown(false), - sprinting: Sprinting(false), - swimming: Swimming(false), - currently_glowing: CurrentlyGlowing(false), - invisible: Invisible(false), - fall_flying: FallFlying(false), - air_supply: AirSupply(Default::default()), - custom_name: CustomName(Default::default()), - custom_name_visible: CustomNameVisible(Default::default()), - silent: Silent(Default::default()), - no_gravity: NoGravity(Default::default()), - pose: Pose::default(), - ticks_frozen: TicksFrozen(Default::default()), - }, - auto_spin_attack: AutoSpinAttack(false), - abstract_living_using_item: AbstractLivingUsingItem(false), - health: Health(1.0), - effect_particles: EffectParticles(Default::default()), - effect_ambience: EffectAmbience(false), - arrow_count: ArrowCount(0), - stinger_count: StingerCount(0), - sleeping_pos: SleepingPos(None), + parent: AbstractAnimalMetadataBundle { + _marker: AbstractAnimal, + parent: AbstractAgeableMetadataBundle { + _marker: AbstractAgeable, + parent: AbstractCreatureMetadataBundle { + _marker: AbstractCreature, + parent: AbstractInsentientMetadataBundle { + _marker: AbstractInsentient, + parent: AbstractLivingMetadataBundle { + _marker: AbstractLiving, + parent: AbstractEntityMetadataBundle { + _marker: AbstractEntity, + on_fire: OnFire(false), + shift_key_down: ShiftKeyDown(false), + sprinting: Sprinting(false), + swimming: Swimming(false), + currently_glowing: CurrentlyGlowing(false), + invisible: Invisible(false), + fall_flying: FallFlying(false), + air_supply: AirSupply(Default::default()), + custom_name: CustomName(Default::default()), + custom_name_visible: CustomNameVisible(Default::default()), + silent: Silent(Default::default()), + no_gravity: NoGravity(Default::default()), + pose: Pose::default(), + ticks_frozen: TicksFrozen(Default::default()), }, - no_ai: NoAi(false), - left_handed: LeftHanded(false), - aggressive: Aggressive(false), + auto_spin_attack: AutoSpinAttack(false), + abstract_living_using_item: AbstractLivingUsingItem(false), + health: Health(1.0), + effect_particles: EffectParticles(Default::default()), + effect_ambience: EffectAmbience(false), + arrow_count: ArrowCount(0), + stinger_count: StingerCount(0), + sleeping_pos: SleepingPos(None), }, + no_ai: NoAi(false), + left_handed: LeftHanded(false), + aggressive: Aggressive(false), }, - abstract_ageable_baby: AbstractAgeableBaby(false), }, + abstract_ageable_baby: AbstractAgeableBaby(false), }, }, mooshroom_kind: MooshroomKind(Default::default()), @@ -6041,7 +6091,6 @@ impl Default for MuleMetadataBundle { eating: Eating(false), abstract_horse_standing: AbstractHorseStanding(false), bred: Bred(false), - saddled: Saddled(false), }, chest: Chest(false), }, @@ -6341,7 +6390,7 @@ impl Default for PaintingMetadataBundle { pose: Pose::default(), ticks_frozen: TicksFrozen(Default::default()), }, - painting_variant: PaintingVariant(azalea_registry::PaintingVariant::Kebab), + painting_variant: PaintingVariant(azalea_registry::PaintingVariant::new_raw(0)), } } } @@ -6670,7 +6719,7 @@ impl Default for ParrotMetadataBundle { in_sitting_pose: InSittingPose(false), owneruuid: Owneruuid(None), }, - parrot_variant: ParrotVariant(0), + parrot_variant: ParrotVariant(Default::default()), } } } @@ -6745,9 +6794,9 @@ impl Default for PhantomMetadataBundle { } #[derive(Component, Deref, DerefMut, Clone)] -pub struct PigSaddle(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] pub struct PigBoostTime(pub i32); +#[derive(Component, Deref, DerefMut, Clone)] +pub struct PigVariant(pub azalea_registry::FrogVariant); #[derive(Component)] pub struct Pig; impl Pig { @@ -6758,10 +6807,10 @@ impl Pig { match d.index { 0..=16 => AbstractAnimal::apply_metadata(entity, d)?, 17 => { - entity.insert(PigSaddle(d.value.into_boolean()?)); + entity.insert(PigBoostTime(d.value.into_int()?)); } 18 => { - entity.insert(PigBoostTime(d.value.into_int()?)); + entity.insert(PigVariant(d.value.into_frog_variant()?)); } _ => {} } @@ -6773,8 +6822,8 @@ impl Pig { pub struct PigMetadataBundle { _marker: Pig, parent: AbstractAnimalMetadataBundle, - pig_saddle: PigSaddle, pig_boost_time: PigBoostTime, + pig_variant: PigVariant, } impl Default for PigMetadataBundle { fn default() -> Self { @@ -6824,8 +6873,8 @@ impl Default for PigMetadataBundle { abstract_ageable_baby: AbstractAgeableBaby(false), }, }, - pig_saddle: PigSaddle(false), pig_boost_time: PigBoostTime(0), + pig_variant: PigVariant(azalea_registry::FrogVariant::new_raw(0)), } } } @@ -7253,57 +7302,6 @@ impl Default for PolarBearMetadataBundle { } } -#[derive(Component)] -pub struct Potion; -impl Potion { - pub fn apply_metadata( - entity: &mut bevy_ecs::system::EntityCommands, - d: EntityDataItem, - ) -> Result<(), UpdateMetadataError> { - match d.index { - 0..=8 => AbstractThrownItemProjectile::apply_metadata(entity, d)?, - _ => {} - } - Ok(()) - } -} - -#[derive(Bundle)] -pub struct PotionMetadataBundle { - _marker: Potion, - parent: AbstractThrownItemProjectileMetadataBundle, -} -impl Default for PotionMetadataBundle { - fn default() -> Self { - Self { - _marker: Potion, - parent: AbstractThrownItemProjectileMetadataBundle { - _marker: AbstractThrownItemProjectile, - parent: AbstractEntityMetadataBundle { - _marker: AbstractEntity, - on_fire: OnFire(false), - shift_key_down: ShiftKeyDown(false), - sprinting: Sprinting(false), - swimming: Swimming(false), - currently_glowing: CurrentlyGlowing(false), - invisible: Invisible(false), - fall_flying: FallFlying(false), - air_supply: AirSupply(Default::default()), - custom_name: CustomName(Default::default()), - custom_name_visible: CustomNameVisible(Default::default()), - silent: Silent(Default::default()), - no_gravity: NoGravity(Default::default()), - pose: Pose::default(), - ticks_frozen: TicksFrozen(Default::default()), - }, - abstract_thrown_item_projectile_item_stack: AbstractThrownItemProjectileItemStack( - Default::default(), - ), - }, - } - } -} - #[derive(Component, Deref, DerefMut, Clone)] pub struct PufferfishFromBucket(pub bool); #[derive(Component, Deref, DerefMut, Clone)] @@ -8038,7 +8036,6 @@ impl Default for SkeletonHorseMetadataBundle { eating: Eating(false), abstract_horse_standing: AbstractHorseStanding(false), bred: Bred(false), - saddled: Saddled(false), }, } } @@ -8381,7 +8378,7 @@ impl SpawnerMinecart { d: EntityDataItem, ) -> Result<(), UpdateMetadataError> { match d.index { - 0..=13 => AbstractMinecart::apply_metadata(entity, d)?, + 0..=12 => AbstractMinecart::apply_metadata(entity, d)?, _ => {} } Ok(()) @@ -8422,9 +8419,8 @@ impl Default for SpawnerMinecartMetadataBundle { hurtdir: Hurtdir(1), damage: Damage(0.0), }, - display_block: DisplayBlock(Default::default()), - display_offset: DisplayOffset(6), - custom_display: CustomDisplay(false), + custom_display_block: CustomDisplayBlock(azalea_block::BlockState::AIR), + display_offset: DisplayOffset(Default::default()), }, } } @@ -8557,6 +8553,57 @@ impl Default for SpiderMetadataBundle { } #[derive(Component)] +pub struct SplashPotion; +impl SplashPotion { + pub fn apply_metadata( + entity: &mut bevy_ecs::system::EntityCommands, + d: EntityDataItem, + ) -> Result<(), UpdateMetadataError> { + match d.index { + 0..=8 => AbstractThrownItemProjectile::apply_metadata(entity, d)?, + _ => {} + } + Ok(()) + } +} + +#[derive(Bundle)] +pub struct SplashPotionMetadataBundle { + _marker: SplashPotion, + parent: AbstractThrownItemProjectileMetadataBundle, +} +impl Default for SplashPotionMetadataBundle { + fn default() -> Self { + Self { + _marker: SplashPotion, + parent: AbstractThrownItemProjectileMetadataBundle { + _marker: AbstractThrownItemProjectile, + parent: AbstractEntityMetadataBundle { + _marker: AbstractEntity, + on_fire: OnFire(false), + shift_key_down: ShiftKeyDown(false), + sprinting: Sprinting(false), + swimming: Swimming(false), + currently_glowing: CurrentlyGlowing(false), + invisible: Invisible(false), + fall_flying: FallFlying(false), + air_supply: AirSupply(Default::default()), + custom_name: CustomName(Default::default()), + custom_name_visible: CustomNameVisible(Default::default()), + silent: Silent(Default::default()), + no_gravity: NoGravity(Default::default()), + pose: Pose::default(), + ticks_frozen: TicksFrozen(Default::default()), + }, + abstract_thrown_item_projectile_item_stack: AbstractThrownItemProjectileItemStack( + Default::default(), + ), + }, + } + } +} + +#[derive(Component)] pub struct SpruceBoat; impl SpruceBoat { pub fn apply_metadata( @@ -8811,8 +8858,6 @@ impl Default for StrayMetadataBundle { pub struct StriderBoostTime(pub i32); #[derive(Component, Deref, DerefMut, Clone)] pub struct Suffocating(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] -pub struct StriderSaddle(pub bool); #[derive(Component)] pub struct Strider; impl Strider { @@ -8828,9 +8873,6 @@ impl Strider { 18 => { entity.insert(Suffocating(d.value.into_boolean()?)); } - 19 => { - entity.insert(StriderSaddle(d.value.into_boolean()?)); - } _ => {} } Ok(()) @@ -8843,7 +8885,6 @@ pub struct StriderMetadataBundle { parent: AbstractAnimalMetadataBundle, strider_boost_time: StriderBoostTime, suffocating: Suffocating, - strider_saddle: StriderSaddle, } impl Default for StriderMetadataBundle { fn default() -> Self { @@ -8895,7 +8936,6 @@ impl Default for StriderMetadataBundle { }, strider_boost_time: StriderBoostTime(0), suffocating: Suffocating(false), - strider_saddle: StriderSaddle(false), } } } @@ -9156,7 +9196,7 @@ impl TntMinecart { d: EntityDataItem, ) -> Result<(), UpdateMetadataError> { match d.index { - 0..=13 => AbstractMinecart::apply_metadata(entity, d)?, + 0..=12 => AbstractMinecart::apply_metadata(entity, d)?, _ => {} } Ok(()) @@ -9197,9 +9237,8 @@ impl Default for TntMinecartMetadataBundle { hurtdir: Hurtdir(1), damage: Damage(0.0), }, - display_block: DisplayBlock(Default::default()), - display_offset: DisplayOffset(6), - custom_display: CustomDisplay(false), + custom_display_block: CustomDisplayBlock(azalea_block::BlockState::AIR), + display_offset: DisplayOffset(Default::default()), }, } } @@ -9287,7 +9326,6 @@ impl Default for TraderLlamaMetadataBundle { eating: Eating(false), abstract_horse_standing: AbstractHorseStanding(false), bred: Bred(false), - saddled: Saddled(false), }, chest: Chest(false), }, @@ -9435,23 +9473,15 @@ impl Default for TropicalFishMetadataBundle { }, abstract_fish_from_bucket: AbstractFishFromBucket(false), }, - tropical_fish_type_variant: TropicalFishTypeVariant(0), + tropical_fish_type_variant: TropicalFishTypeVariant(Default::default()), } } } #[derive(Component, Deref, DerefMut, Clone)] -pub struct TurtleHomePos(pub BlockPos); -#[derive(Component, Deref, DerefMut, Clone)] pub struct HasEgg(pub bool); #[derive(Component, Deref, DerefMut, Clone)] pub struct LayingEgg(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] -pub struct TravelPos(pub BlockPos); -#[derive(Component, Deref, DerefMut, Clone)] -pub struct GoingHome(pub bool); -#[derive(Component, Deref, DerefMut, Clone)] -pub struct Travelling(pub bool); #[derive(Component)] pub struct Turtle; impl Turtle { @@ -9462,23 +9492,11 @@ impl Turtle { match d.index { 0..=16 => AbstractAnimal::apply_metadata(entity, d)?, 17 => { - entity.insert(TurtleHomePos(d.value.into_block_pos()?)); - } - 18 => { entity.insert(HasEgg(d.value.into_boolean()?)); } - 19 => { + 18 => { entity.insert(LayingEgg(d.value.into_boolean()?)); } - 20 => { - entity.insert(TravelPos(d.value.into_block_pos()?)); - } - 21 => { - entity.insert(GoingHome(d.value.into_boolean()?)); - } - 22 => { - entity.insert(Travelling(d.value.into_boolean()?)); - } _ => {} } Ok(()) @@ -9489,12 +9507,8 @@ impl Turtle { pub struct TurtleMetadataBundle { _marker: Turtle, parent: AbstractAnimalMetadataBundle, - turtle_home_pos: TurtleHomePos, has_egg: HasEgg, laying_egg: LayingEgg, - travel_pos: TravelPos, - going_home: GoingHome, - travelling: Travelling, } impl Default for TurtleMetadataBundle { fn default() -> Self { @@ -9544,12 +9558,8 @@ impl Default for TurtleMetadataBundle { abstract_ageable_baby: AbstractAgeableBaby(false), }, }, - turtle_home_pos: TurtleHomePos(BlockPos::new(0, 0, 0)), has_egg: HasEgg(false), laying_egg: LayingEgg(false), - travel_pos: TravelPos(BlockPos::new(0, 0, 0)), - going_home: GoingHome(false), - travelling: Travelling(false), } } } @@ -10282,7 +10292,9 @@ pub struct WolfCollarColor(pub i32); #[derive(Component, Deref, DerefMut, Clone)] pub struct WolfRemainingAngerTime(pub i32); #[derive(Component, Deref, DerefMut, Clone)] -pub struct WolfVariant(pub azalea_registry::WolfVariant); +pub struct WolfVariant(pub azalea_registry::CowVariant); +#[derive(Component, Deref, DerefMut, Clone)] +pub struct SoundVariant(pub azalea_registry::WolfVariant); #[derive(Component)] pub struct Wolf; impl Wolf { @@ -10302,7 +10314,10 @@ impl Wolf { entity.insert(WolfRemainingAngerTime(d.value.into_int()?)); } 22 => { - entity.insert(WolfVariant(d.value.into_wolf_variant()?)); + entity.insert(WolfVariant(d.value.into_cow_variant()?)); + } + 23 => { + entity.insert(SoundVariant(d.value.into_wolf_variant()?)); } _ => {} } @@ -10318,6 +10333,7 @@ pub struct WolfMetadataBundle { wolf_collar_color: WolfCollarColor, wolf_remaining_anger_time: WolfRemainingAngerTime, wolf_variant: WolfVariant, + sound_variant: SoundVariant, } impl Default for WolfMetadataBundle { fn default() -> Self { @@ -10376,7 +10392,8 @@ impl Default for WolfMetadataBundle { wolf_interested: WolfInterested(false), wolf_collar_color: WolfCollarColor(Default::default()), wolf_remaining_anger_time: WolfRemainingAngerTime(0), - wolf_variant: WolfVariant(Default::default()), + wolf_variant: WolfVariant(azalea_registry::CowVariant::new_raw(0)), + sound_variant: SoundVariant(azalea_registry::WolfVariant::new_raw(0)), } } } @@ -10613,7 +10630,6 @@ impl Default for ZombieHorseMetadataBundle { eating: Eating(false), abstract_horse_standing: AbstractHorseStanding(false), bred: Bred(false), - saddled: Saddled(false), }, } } @@ -11132,7 +11148,6 @@ impl Default for AbstractChestedHorseMetadataBundle { eating: Eating(false), abstract_horse_standing: AbstractHorseStanding(false), bred: Bred(false), - saddled: Saddled(false), }, chest: Chest(false), } @@ -11512,7 +11527,6 @@ impl AbstractHorse { entity.insert(Eating(bitfield & 0x10 != 0)); entity.insert(AbstractHorseStanding(bitfield & 0x20 != 0)); entity.insert(Bred(bitfield & 0x8 != 0)); - entity.insert(Saddled(bitfield & 0x4 != 0)); } _ => {} } @@ -11528,7 +11542,6 @@ pub struct AbstractHorseMetadataBundle { eating: Eating, abstract_horse_standing: AbstractHorseStanding, bred: Bred, - saddled: Saddled, } impl Default for AbstractHorseMetadataBundle { fn default() -> Self { @@ -11582,7 +11595,6 @@ impl Default for AbstractHorseMetadataBundle { eating: Eating(false), abstract_horse_standing: AbstractHorseStanding(false), bred: Bred(false), - saddled: Saddled(false), } } } @@ -11749,14 +11761,11 @@ impl AbstractMinecart { match d.index { 0..=10 => AbstractVehicle::apply_metadata(entity, d)?, 11 => { - entity.insert(DisplayBlock(d.value.into_int()?)); + entity.insert(CustomDisplayBlock(d.value.into_optional_block_state()?)); } 12 => { entity.insert(DisplayOffset(d.value.into_int()?)); } - 13 => { - entity.insert(CustomDisplay(d.value.into_boolean()?)); - } _ => {} } Ok(()) @@ -11767,9 +11776,8 @@ impl AbstractMinecart { pub struct AbstractMinecartMetadataBundle { _marker: AbstractMinecart, parent: AbstractVehicleMetadataBundle, - display_block: DisplayBlock, + custom_display_block: CustomDisplayBlock, display_offset: DisplayOffset, - custom_display: CustomDisplay, } impl Default for AbstractMinecartMetadataBundle { fn default() -> Self { @@ -11798,9 +11806,8 @@ impl Default for AbstractMinecartMetadataBundle { hurtdir: Hurtdir(1), damage: Damage(0.0), }, - display_block: DisplayBlock(Default::default()), - display_offset: DisplayOffset(6), - custom_display: CustomDisplay(false), + custom_display_block: CustomDisplayBlock(azalea_block::BlockState::AIR), + display_offset: DisplayOffset(Default::default()), } } } @@ -12108,7 +12115,7 @@ impl AbstractTameable { entity.insert(InSittingPose(bitfield & 0x1 != 0)); } 18 => { - entity.insert(Owneruuid(d.value.into_optional_uuid()?)); + entity.insert(Owneruuid(d.value.into_optional_living_entity_reference()?)); } _ => {} } @@ -12753,6 +12760,11 @@ pub fn apply_metadata( LightningBolt::apply_metadata(entity, d)?; } } + azalea_registry::EntityKind::LingeringPotion => { + for d in items { + LingeringPotion::apply_metadata(entity, d)?; + } + } azalea_registry::EntityKind::Llama => { for d in items { Llama::apply_metadata(entity, d)?; @@ -12878,11 +12890,6 @@ pub fn apply_metadata( PolarBear::apply_metadata(entity, d)?; } } - azalea_registry::EntityKind::Potion => { - for d in items { - Potion::apply_metadata(entity, d)?; - } - } azalea_registry::EntityKind::Pufferfish => { for d in items { Pufferfish::apply_metadata(entity, d)?; @@ -12973,6 +12980,11 @@ pub fn apply_metadata( Spider::apply_metadata(entity, d)?; } } + azalea_registry::EntityKind::SplashPotion => { + for d in items { + SplashPotion::apply_metadata(entity, d)?; + } + } azalea_registry::EntityKind::SpruceBoat => { for d in items { SpruceBoat::apply_metadata(entity, d)?; @@ -13355,6 +13367,9 @@ pub fn apply_default_metadata( azalea_registry::EntityKind::LightningBolt => { entity.insert(LightningBoltMetadataBundle::default()); } + azalea_registry::EntityKind::LingeringPotion => { + entity.insert(LingeringPotionMetadataBundle::default()); + } azalea_registry::EntityKind::Llama => { entity.insert(LlamaMetadataBundle::default()); } @@ -13430,9 +13445,6 @@ pub fn apply_default_metadata( azalea_registry::EntityKind::PolarBear => { entity.insert(PolarBearMetadataBundle::default()); } - azalea_registry::EntityKind::Potion => { - entity.insert(PotionMetadataBundle::default()); - } azalea_registry::EntityKind::Pufferfish => { entity.insert(PufferfishMetadataBundle::default()); } @@ -13487,6 +13499,9 @@ pub fn apply_default_metadata( azalea_registry::EntityKind::Spider => { entity.insert(SpiderMetadataBundle::default()); } + azalea_registry::EntityKind::SplashPotion => { + entity.insert(SplashPotionMetadataBundle::default()); + } azalea_registry::EntityKind::SpruceBoat => { entity.insert(SpruceBoatMetadataBundle::default()); } diff --git a/azalea-entity/src/particle.rs b/azalea-entity/src/particle.rs index 497f4cef..6bc1ef6f 100755 --- a/azalea-entity/src/particle.rs +++ b/azalea-entity/src/particle.rs @@ -45,6 +45,7 @@ pub enum Particle { Infested, CherryLeaves, PaleOakLeaves, + TintedLeaves, SculkSoul, SculkCharge(SculkChargeParticle), SculkChargePop, @@ -122,6 +123,7 @@ pub enum Particle { RaidOmen, TrialOmen, BlockCrumble, + Firefly, } impl From<ParticleKind> for Particle { @@ -164,6 +166,7 @@ impl From<ParticleKind> for Particle { ParticleKind::Flame => Self::Flame, ParticleKind::CherryLeaves => Self::CherryLeaves, ParticleKind::PaleOakLeaves => Self::PaleOakLeaves, + ParticleKind::TintedLeaves => Self::TintedLeaves, ParticleKind::SculkSoul => Self::SculkSoul, ParticleKind::SculkCharge => Self::SculkCharge(SculkChargeParticle::default()), ParticleKind::SculkChargePop => Self::SculkChargePop, @@ -245,6 +248,7 @@ impl From<ParticleKind> for Particle { ParticleKind::TrialOmen => Self::TrialOmen, ParticleKind::Trail => Self::Trail, ParticleKind::BlockCrumble => Self::BlockCrumble, + ParticleKind::Firefly => Self::Firefly, } } } |
