aboutsummaryrefslogtreecommitdiff
path: root/azalea-entity/src/metadata.rs
diff options
context:
space:
mode:
authormat <27899617+mat-1@users.noreply.github.com>2025-03-25 11:17:39 -0500
committerGitHub <noreply@github.com>2025-03-25 11:17:39 -0500
commitef357fdf3667f3ded03203fc0f7cdec48a01ad8f (patch)
tree6e7429c62a22fec1988278f63554c93bdd905a5d /azalea-entity/src/metadata.rs
parent8af265e48bf9f3d5263c074d034770e4216bb3f3 (diff)
downloadazalea-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/src/metadata.rs')
-rw-r--r--azalea-entity/src/metadata.rs473
1 files changed, 244 insertions, 229 deletions
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());
}