aboutsummaryrefslogtreecommitdiff
path: root/azalea-entity
diff options
context:
space:
mode:
authormat <27899617+mat-1@users.noreply.github.com>2025-08-14 20:40:13 -0500
committerGitHub <noreply@github.com>2025-08-14 20:40:13 -0500
commite74ed047dbaf3877db4a89a2d589e992abd0bb11 (patch)
tree0a728c8be167a1d59a5492ed9df666f41cf12e57 /azalea-entity
parent6695132ddb31780786c67b8b9ff5df8ab3891438 (diff)
downloadazalea-drasl-e74ed047dbaf3877db4a89a2d589e992abd0bb11.tar.xz
Sneaking (#237)
* start implementing sneaking * fix horizontal_collision being inverted and cleanup * clippy * change dimensions and eye height based on pose * proper support for automatically crouching in certain cases * fix anticheat issues * add line to changelog and update a comment
Diffstat (limited to 'azalea-entity')
-rw-r--r--azalea-entity/src/attributes.rs34
-rw-r--r--azalea-entity/src/data.rs12
-rw-r--r--azalea-entity/src/dimensions.rs242
-rw-r--r--azalea-entity/src/lib.rs95
-rw-r--r--azalea-entity/src/metadata.rs458
-rw-r--r--azalea-entity/src/plugin/mod.rs53
6 files changed, 538 insertions, 356 deletions
diff --git a/azalea-entity/src/attributes.rs b/azalea-entity/src/attributes.rs
index c2a22e9b..021fcd56 100644
--- a/azalea-entity/src/attributes.rs
+++ b/azalea-entity/src/attributes.rs
@@ -9,23 +9,26 @@ use thiserror::Error;
#[derive(Clone, Debug, Component)]
pub struct Attributes {
- pub speed: AttributeInstance,
+ pub movement_speed: AttributeInstance,
pub sneaking_speed: AttributeInstance,
pub attack_speed: AttributeInstance,
pub water_movement_efficiency: AttributeInstance,
pub block_interaction_range: AttributeInstance,
pub entity_interaction_range: AttributeInstance,
+
+ pub step_height: AttributeInstance,
}
#[derive(Clone, Debug)]
pub struct AttributeInstance {
pub base: f64,
modifiers_by_id: HashMap<ResourceLocation, AttributeModifier>,
+ // TODO: add cache
}
#[derive(Clone, Debug, Error)]
-#[error("A modifier with this UUID is already present.")]
+#[error("A modifier with this ID is already present.")]
pub struct AlreadyPresentError;
impl AttributeInstance {
@@ -40,13 +43,12 @@ impl AttributeInstance {
let mut total = self.base;
for modifier in self.modifiers_by_id.values() {
match modifier.operation {
- AttributeModifierOperation::Addition => total += modifier.amount,
- AttributeModifierOperation::MultiplyBase => total += self.base * modifier.amount,
- _ => {}
- }
- if let AttributeModifierOperation::MultiplyTotal = modifier.operation {
- total *= 1.0 + modifier.amount;
- }
+ AttributeModifierOperation::AddValue => total += modifier.amount,
+ AttributeModifierOperation::AddMultipliedBase => {
+ total += modifier.amount * self.base
+ }
+ AttributeModifierOperation::AddMultipliedTotal => total *= 1. + modifier.amount,
+ };
}
total
}
@@ -85,30 +87,30 @@ pub struct AttributeModifier {
#[derive(Clone, Debug, Copy, AzBuf)]
pub enum AttributeModifierOperation {
- Addition,
- MultiplyBase,
- MultiplyTotal,
+ AddValue,
+ AddMultipliedBase,
+ AddMultipliedTotal,
}
pub fn sprinting_modifier() -> AttributeModifier {
AttributeModifier {
id: ResourceLocation::new("sprinting"),
amount: 0.3f32 as f64,
- operation: AttributeModifierOperation::MultiplyTotal,
+ operation: AttributeModifierOperation::AddMultipliedTotal,
}
}
pub fn base_attack_speed_modifier(amount: f64) -> AttributeModifier {
AttributeModifier {
id: ResourceLocation::new("base_attack_speed"),
amount,
- operation: AttributeModifierOperation::Addition,
+ operation: AttributeModifierOperation::AddValue,
}
}
pub fn creative_block_interaction_range_modifier() -> AttributeModifier {
AttributeModifier {
id: ResourceLocation::new("creative_mode_block_range"),
amount: 0.5,
- operation: AttributeModifierOperation::Addition,
+ operation: AttributeModifierOperation::AddValue,
}
}
@@ -116,6 +118,6 @@ pub fn creative_entity_interaction_range_modifier() -> AttributeModifier {
AttributeModifier {
id: ResourceLocation::new("creative_mode_entity_range"),
amount: 2.0,
- operation: AttributeModifierOperation::Addition,
+ operation: AttributeModifierOperation::AddValue,
}
}
diff --git a/azalea-entity/src/data.rs b/azalea-entity/src/data.rs
index 436c6571..35e8b4c5 100644
--- a/azalea-entity/src/data.rs
+++ b/azalea-entity/src/data.rs
@@ -152,9 +152,19 @@ pub enum Pose {
Sleeping,
Swimming,
SpinAttack,
- Sneaking,
+ Crouching,
LongJumping,
Dying,
+ Croaking,
+ UsingTongue,
+ Sitting,
+ Roaring,
+ Sniffing,
+ Emerging,
+ Digging,
+ Sliding,
+ Shooting,
+ Inhaling,
}
#[derive(Debug, Clone, AzBuf)]
diff --git a/azalea-entity/src/dimensions.rs b/azalea-entity/src/dimensions.rs
index 68e9903d..92c03e61 100644
--- a/azalea-entity/src/dimensions.rs
+++ b/azalea-entity/src/dimensions.rs
@@ -1,15 +1,43 @@
use azalea_core::{aabb::AABB, position::Vec3};
use azalea_registry::EntityKind;
+use bevy_ecs::component::Component;
-#[derive(Debug, Default, Clone)]
+use crate::Pose;
+
+/// A component that contains the size of an entity and their eye height.
+#[derive(Component, Debug, Default, Clone)]
pub struct EntityDimensions {
pub width: f32,
pub height: f32,
+ /// The offset of the entity's eyes from their coordinates.
+ ///
+ /// This is used to calculate the camera position for players, when
+ /// spectating an entity, and when raycasting from the entity.
+ ///
+ /// The default eye height for a player is 1.62 blocks.
+ pub eye_height: f32,
+ /// Whether the entity isn't allowed to be scaled.
+ pub fixed: bool,
}
impl EntityDimensions {
- pub fn new(width: f32, height: f32) -> Self {
- Self { width, height }
+ pub const fn new(width: f32, height: f32) -> Self {
+ Self {
+ width,
+ height,
+ eye_height: default_eye_height(height),
+ fixed: false,
+ }
+ }
+ pub const fn fixed(self) -> Self {
+ Self {
+ fixed: true,
+ ..self
+ }
+ }
+
+ pub const fn eye_height(self, eye_height: f32) -> Self {
+ Self { eye_height, ..self }
}
pub fn make_bounding_box(&self, pos: Vec3) -> AABB {
@@ -22,55 +50,59 @@ impl EntityDimensions {
}
}
+const fn default_eye_height(height: f32) -> f32 {
+ height * 0.85
+}
+
impl From<EntityKind> for EntityDimensions {
fn from(entity: EntityKind) -> Self {
// this match statement is automatically generated by codegen/genentities.py,
// don't edit it manually!
match entity {
- EntityKind::AcaciaBoat => EntityDimensions::new(1.375, 0.5625),
- EntityKind::AcaciaChestBoat => EntityDimensions::new(1.375, 0.5625),
- EntityKind::Allay => EntityDimensions::new(0.35, 0.6),
+ EntityKind::AcaciaBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
+ EntityKind::AcaciaChestBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
+ EntityKind::Allay => EntityDimensions::new(0.35, 0.6).eye_height(0.36),
EntityKind::AreaEffectCloud => EntityDimensions::new(6.0, 0.5),
- EntityKind::Armadillo => EntityDimensions::new(0.7, 0.65),
- EntityKind::ArmorStand => EntityDimensions::new(0.5, 1.975),
- EntityKind::Arrow => EntityDimensions::new(0.5, 0.5),
- EntityKind::Axolotl => EntityDimensions::new(0.75, 0.42),
- EntityKind::BambooChestRaft => EntityDimensions::new(1.375, 0.5625),
- EntityKind::BambooRaft => EntityDimensions::new(1.375, 0.5625),
- EntityKind::Bat => EntityDimensions::new(0.5, 0.9),
- EntityKind::Bee => EntityDimensions::new(0.7, 0.6),
- EntityKind::BirchBoat => EntityDimensions::new(1.375, 0.5625),
- EntityKind::BirchChestBoat => EntityDimensions::new(1.375, 0.5625),
+ EntityKind::Armadillo => EntityDimensions::new(0.7, 0.65).eye_height(0.26),
+ EntityKind::ArmorStand => EntityDimensions::new(0.5, 1.975).eye_height(1.7775),
+ EntityKind::Arrow => EntityDimensions::new(0.5, 0.5).eye_height(0.13),
+ EntityKind::Axolotl => EntityDimensions::new(0.75, 0.42).eye_height(0.2751),
+ EntityKind::BambooChestRaft => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
+ EntityKind::BambooRaft => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
+ EntityKind::Bat => EntityDimensions::new(0.5, 0.9).eye_height(0.45),
+ EntityKind::Bee => EntityDimensions::new(0.7, 0.6).eye_height(0.3),
+ EntityKind::BirchBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
+ EntityKind::BirchChestBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
EntityKind::Blaze => EntityDimensions::new(0.6, 1.8),
EntityKind::BlockDisplay => EntityDimensions::new(0.0, 0.0),
- EntityKind::Bogged => EntityDimensions::new(0.6, 1.99),
- EntityKind::Breeze => EntityDimensions::new(0.6, 1.77),
- EntityKind::BreezeWindCharge => EntityDimensions::new(0.3125, 0.3125),
- EntityKind::Camel => EntityDimensions::new(1.7, 2.375),
- EntityKind::Cat => EntityDimensions::new(0.6, 0.7),
- EntityKind::CaveSpider => EntityDimensions::new(0.7, 0.5),
- EntityKind::CherryBoat => EntityDimensions::new(1.375, 0.5625),
- EntityKind::CherryChestBoat => EntityDimensions::new(1.375, 0.5625),
+ EntityKind::Bogged => EntityDimensions::new(0.6, 1.99).eye_height(1.74),
+ EntityKind::Breeze => EntityDimensions::new(0.6, 1.77).eye_height(1.3452),
+ EntityKind::BreezeWindCharge => EntityDimensions::new(0.3125, 0.3125).eye_height(0.0),
+ EntityKind::Camel => EntityDimensions::new(1.7, 2.375).eye_height(2.275),
+ EntityKind::Cat => EntityDimensions::new(0.6, 0.7).eye_height(0.35),
+ EntityKind::CaveSpider => EntityDimensions::new(0.7, 0.5).eye_height(0.45),
+ EntityKind::CherryBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
+ EntityKind::CherryChestBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
EntityKind::ChestMinecart => EntityDimensions::new(0.98, 0.7),
- EntityKind::Chicken => EntityDimensions::new(0.4, 0.7),
- EntityKind::Cod => EntityDimensions::new(0.5, 0.3),
+ EntityKind::Chicken => EntityDimensions::new(0.4, 0.7).eye_height(0.644),
+ EntityKind::Cod => EntityDimensions::new(0.5, 0.3).eye_height(0.195),
EntityKind::CommandBlockMinecart => EntityDimensions::new(0.98, 0.7),
- EntityKind::Cow => EntityDimensions::new(0.9, 1.4),
- EntityKind::Creaking => EntityDimensions::new(0.9, 2.7),
+ EntityKind::Cow => EntityDimensions::new(0.9, 1.4).eye_height(1.3),
+ EntityKind::Creaking => EntityDimensions::new(0.9, 2.7).eye_height(2.3),
EntityKind::Creeper => EntityDimensions::new(0.6, 1.7),
- EntityKind::DarkOakBoat => EntityDimensions::new(1.375, 0.5625),
- EntityKind::DarkOakChestBoat => EntityDimensions::new(1.375, 0.5625),
- EntityKind::Dolphin => EntityDimensions::new(0.9, 0.6),
- EntityKind::Donkey => EntityDimensions::new(1.39648, 1.5),
+ EntityKind::DarkOakBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
+ EntityKind::DarkOakChestBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
+ EntityKind::Dolphin => EntityDimensions::new(0.9, 0.6).eye_height(0.3),
+ EntityKind::Donkey => EntityDimensions::new(1.39648, 1.5).eye_height(1.425),
EntityKind::DragonFireball => EntityDimensions::new(1.0, 1.0),
- EntityKind::Drowned => EntityDimensions::new(0.6, 1.95),
+ EntityKind::Drowned => EntityDimensions::new(0.6, 1.95).eye_height(1.74),
EntityKind::Egg => EntityDimensions::new(0.25, 0.25),
- EntityKind::ElderGuardian => EntityDimensions::new(1.9975, 1.9975),
+ EntityKind::ElderGuardian => EntityDimensions::new(1.9975, 1.9975).eye_height(0.99875),
EntityKind::EndCrystal => EntityDimensions::new(2.0, 2.0),
EntityKind::EnderDragon => EntityDimensions::new(16.0, 8.0),
EntityKind::EnderPearl => EntityDimensions::new(0.25, 0.25),
- EntityKind::Enderman => EntityDimensions::new(0.6, 2.9),
- EntityKind::Endermite => EntityDimensions::new(0.4, 0.3),
+ EntityKind::Enderman => EntityDimensions::new(0.6, 2.9).eye_height(2.55),
+ EntityKind::Endermite => EntityDimensions::new(0.4, 0.3).eye_height(0.13),
EntityKind::Evoker => EntityDimensions::new(0.6, 1.95),
EntityKind::EvokerFangs => EntityDimensions::new(0.5, 0.8),
EntityKind::ExperienceBottle => EntityDimensions::new(0.25, 0.25),
@@ -80,104 +112,120 @@ impl From<EntityKind> for EntityDimensions {
EntityKind::Fireball => EntityDimensions::new(1.0, 1.0),
EntityKind::FireworkRocket => EntityDimensions::new(0.25, 0.25),
EntityKind::FishingBobber => EntityDimensions::new(0.25, 0.25),
- EntityKind::Fox => EntityDimensions::new(0.6, 0.7),
+ EntityKind::Fox => EntityDimensions::new(0.6, 0.7).eye_height(0.4),
EntityKind::Frog => EntityDimensions::new(0.5, 0.5),
EntityKind::FurnaceMinecart => EntityDimensions::new(0.98, 0.7),
- EntityKind::Ghast => EntityDimensions::new(4.0, 4.0),
- EntityKind::Giant => EntityDimensions::new(3.6, 12.0),
- EntityKind::GlowItemFrame => EntityDimensions::new(0.5, 0.5),
- EntityKind::GlowSquid => EntityDimensions::new(0.8, 0.8),
+ EntityKind::Ghast => EntityDimensions::new(4.0, 4.0).eye_height(2.6),
+ EntityKind::Giant => EntityDimensions::new(3.6, 12.0).eye_height(10.44),
+ EntityKind::GlowItemFrame => EntityDimensions::new(0.5, 0.5).eye_height(0.0),
+ EntityKind::GlowSquid => EntityDimensions::new(0.8, 0.8).eye_height(0.4),
EntityKind::Goat => EntityDimensions::new(0.9, 1.3),
- EntityKind::Guardian => EntityDimensions::new(0.85, 0.85),
- EntityKind::HappyGhast => EntityDimensions::new(4.0, 4.0),
+ EntityKind::Guardian => EntityDimensions::new(0.85, 0.85).eye_height(0.425),
+ EntityKind::HappyGhast => EntityDimensions::new(4.0, 4.0).eye_height(2.6),
EntityKind::Hoglin => EntityDimensions::new(1.39648, 1.4),
EntityKind::HopperMinecart => EntityDimensions::new(0.98, 0.7),
- EntityKind::Horse => EntityDimensions::new(1.39648, 1.6),
- EntityKind::Husk => EntityDimensions::new(0.6, 1.95),
+ EntityKind::Horse => EntityDimensions::new(1.39648, 1.6).eye_height(1.52),
+ EntityKind::Husk => EntityDimensions::new(0.6, 1.95).eye_height(1.74),
EntityKind::Illusioner => EntityDimensions::new(0.6, 1.95),
EntityKind::Interaction => EntityDimensions::new(0.0, 0.0),
EntityKind::IronGolem => EntityDimensions::new(1.4, 2.7),
- EntityKind::Item => EntityDimensions::new(0.25, 0.25),
+ EntityKind::Item => EntityDimensions::new(0.25, 0.25).eye_height(0.2125),
EntityKind::ItemDisplay => EntityDimensions::new(0.0, 0.0),
- EntityKind::ItemFrame => EntityDimensions::new(0.5, 0.5),
- EntityKind::JungleBoat => EntityDimensions::new(1.375, 0.5625),
- EntityKind::JungleChestBoat => EntityDimensions::new(1.375, 0.5625),
- EntityKind::LeashKnot => EntityDimensions::new(0.375, 0.5),
+ EntityKind::ItemFrame => EntityDimensions::new(0.5, 0.5).eye_height(0.0),
+ EntityKind::JungleBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
+ EntityKind::JungleChestBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
+ EntityKind::LeashKnot => EntityDimensions::new(0.375, 0.5).eye_height(0.0625),
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::Llama => EntityDimensions::new(0.9, 1.87).eye_height(1.7765),
EntityKind::LlamaSpit => EntityDimensions::new(0.25, 0.25),
- EntityKind::MagmaCube => EntityDimensions::new(0.52, 0.52),
- EntityKind::MangroveBoat => EntityDimensions::new(1.375, 0.5625),
- EntityKind::MangroveChestBoat => EntityDimensions::new(1.375, 0.5625),
+ EntityKind::MagmaCube => EntityDimensions::new(0.52, 0.52).eye_height(0.325),
+ EntityKind::MangroveBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
+ EntityKind::MangroveChestBoat => {
+ EntityDimensions::new(1.375, 0.5625).eye_height(0.5625)
+ }
EntityKind::Marker => EntityDimensions::new(0.0, 0.0),
EntityKind::Minecart => EntityDimensions::new(0.98, 0.7),
- EntityKind::Mooshroom => EntityDimensions::new(0.9, 1.4),
- EntityKind::Mule => EntityDimensions::new(1.39648, 1.6),
- EntityKind::OakBoat => EntityDimensions::new(1.375, 0.5625),
- EntityKind::OakChestBoat => EntityDimensions::new(1.375, 0.5625),
+ EntityKind::Mooshroom => EntityDimensions::new(0.9, 1.4).eye_height(1.3),
+ EntityKind::Mule => EntityDimensions::new(1.39648, 1.6).eye_height(1.52),
+ EntityKind::OakBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
+ EntityKind::OakChestBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
EntityKind::Ocelot => EntityDimensions::new(0.6, 0.7),
EntityKind::OminousItemSpawner => EntityDimensions::new(0.25, 0.25),
EntityKind::Painting => EntityDimensions::new(0.5, 0.5),
- EntityKind::PaleOakBoat => EntityDimensions::new(1.375, 0.5625),
- EntityKind::PaleOakChestBoat => EntityDimensions::new(1.375, 0.5625),
+ EntityKind::PaleOakBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
+ EntityKind::PaleOakChestBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
EntityKind::Panda => EntityDimensions::new(1.3, 1.25),
- EntityKind::Parrot => EntityDimensions::new(0.5, 0.9),
- EntityKind::Phantom => EntityDimensions::new(0.9, 0.5),
+ EntityKind::Parrot => EntityDimensions::new(0.5, 0.9).eye_height(0.54),
+ EntityKind::Phantom => EntityDimensions::new(0.9, 0.5).eye_height(0.175),
EntityKind::Pig => EntityDimensions::new(0.9, 0.9),
- EntityKind::Piglin => EntityDimensions::new(0.6, 1.95),
- EntityKind::PiglinBrute => EntityDimensions::new(0.6, 1.95),
+ EntityKind::Piglin => EntityDimensions::new(0.6, 1.95).eye_height(1.79),
+ EntityKind::PiglinBrute => EntityDimensions::new(0.6, 1.95).eye_height(1.79),
EntityKind::Pillager => EntityDimensions::new(0.6, 1.95),
- EntityKind::Player => EntityDimensions::new(0.6, 1.8),
+ EntityKind::Player => EntityDimensions::new(0.6, 1.8).eye_height(1.62),
EntityKind::PolarBear => EntityDimensions::new(1.4, 1.4),
- EntityKind::Pufferfish => EntityDimensions::new(0.7, 0.7),
+ EntityKind::Pufferfish => EntityDimensions::new(0.7, 0.7).eye_height(0.455),
EntityKind::Rabbit => EntityDimensions::new(0.4, 0.5),
EntityKind::Ravager => EntityDimensions::new(1.95, 2.2),
- EntityKind::Salmon => EntityDimensions::new(0.7, 0.4),
- EntityKind::Sheep => EntityDimensions::new(0.9, 1.3),
- EntityKind::Shulker => EntityDimensions::new(1.0, 1.0),
+ EntityKind::Salmon => EntityDimensions::new(0.7, 0.4).eye_height(0.26),
+ EntityKind::Sheep => EntityDimensions::new(0.9, 1.3).eye_height(1.235),
+ EntityKind::Shulker => EntityDimensions::new(1.0, 1.0).eye_height(0.5),
EntityKind::ShulkerBullet => EntityDimensions::new(0.3125, 0.3125),
- EntityKind::Silverfish => EntityDimensions::new(0.4, 0.3),
- EntityKind::Skeleton => EntityDimensions::new(0.6, 1.99),
- EntityKind::SkeletonHorse => EntityDimensions::new(1.39648, 1.6),
- EntityKind::Slime => EntityDimensions::new(0.52, 0.52),
+ EntityKind::Silverfish => EntityDimensions::new(0.4, 0.3).eye_height(0.13),
+ EntityKind::Skeleton => EntityDimensions::new(0.6, 1.99).eye_height(1.74),
+ EntityKind::SkeletonHorse => EntityDimensions::new(1.39648, 1.6).eye_height(1.52),
+ EntityKind::Slime => EntityDimensions::new(0.52, 0.52).eye_height(0.325),
EntityKind::SmallFireball => EntityDimensions::new(0.3125, 0.3125),
- EntityKind::Sniffer => EntityDimensions::new(1.9, 1.75),
- EntityKind::SnowGolem => EntityDimensions::new(0.7, 1.9),
+ EntityKind::Sniffer => EntityDimensions::new(1.9, 1.75).eye_height(1.05),
+ EntityKind::SnowGolem => EntityDimensions::new(0.7, 1.9).eye_height(1.7),
EntityKind::Snowball => EntityDimensions::new(0.25, 0.25),
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::SpectralArrow => EntityDimensions::new(0.5, 0.5).eye_height(0.13),
+ EntityKind::Spider => EntityDimensions::new(1.4, 0.9).eye_height(0.65),
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),
- EntityKind::Stray => EntityDimensions::new(0.6, 1.99),
+ EntityKind::SpruceBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
+ EntityKind::SpruceChestBoat => EntityDimensions::new(1.375, 0.5625).eye_height(0.5625),
+ EntityKind::Squid => EntityDimensions::new(0.8, 0.8).eye_height(0.4),
+ EntityKind::Stray => EntityDimensions::new(0.6, 1.99).eye_height(1.74),
EntityKind::Strider => EntityDimensions::new(0.9, 1.7),
- EntityKind::Tadpole => EntityDimensions::new(0.4, 0.3),
+ EntityKind::Tadpole => EntityDimensions::new(0.4, 0.3).eye_height(0.195),
EntityKind::TextDisplay => EntityDimensions::new(0.0, 0.0),
- EntityKind::Tnt => EntityDimensions::new(0.98, 0.98),
+ EntityKind::Tnt => EntityDimensions::new(0.98, 0.98).eye_height(0.15),
EntityKind::TntMinecart => EntityDimensions::new(0.98, 0.7),
- EntityKind::TraderLlama => EntityDimensions::new(0.9, 1.87),
- EntityKind::Trident => EntityDimensions::new(0.5, 0.5),
- EntityKind::TropicalFish => EntityDimensions::new(0.5, 0.4),
+ EntityKind::TraderLlama => EntityDimensions::new(0.9, 1.87).eye_height(1.7765),
+ EntityKind::Trident => EntityDimensions::new(0.5, 0.5).eye_height(0.13),
+ EntityKind::TropicalFish => EntityDimensions::new(0.5, 0.4).eye_height(0.26),
EntityKind::Turtle => EntityDimensions::new(1.2, 0.4),
- EntityKind::Vex => EntityDimensions::new(0.4, 0.8),
- EntityKind::Villager => EntityDimensions::new(0.6, 1.95),
+ EntityKind::Vex => EntityDimensions::new(0.4, 0.8).eye_height(0.51875),
+ EntityKind::Villager => EntityDimensions::new(0.6, 1.95).eye_height(1.62),
EntityKind::Vindicator => EntityDimensions::new(0.6, 1.95),
- EntityKind::WanderingTrader => EntityDimensions::new(0.6, 1.95),
+ EntityKind::WanderingTrader => EntityDimensions::new(0.6, 1.95).eye_height(1.62),
EntityKind::Warden => EntityDimensions::new(0.9, 2.9),
- EntityKind::WindCharge => EntityDimensions::new(0.3125, 0.3125),
- EntityKind::Witch => EntityDimensions::new(0.6, 1.95),
+ EntityKind::WindCharge => EntityDimensions::new(0.3125, 0.3125).eye_height(0.0),
+ EntityKind::Witch => EntityDimensions::new(0.6, 1.95).eye_height(1.62),
EntityKind::Wither => EntityDimensions::new(0.9, 3.5),
- EntityKind::WitherSkeleton => EntityDimensions::new(0.7, 2.4),
+ EntityKind::WitherSkeleton => EntityDimensions::new(0.7, 2.4).eye_height(2.1),
EntityKind::WitherSkull => EntityDimensions::new(0.3125, 0.3125),
- EntityKind::Wolf => EntityDimensions::new(0.6, 0.85),
+ EntityKind::Wolf => EntityDimensions::new(0.6, 0.85).eye_height(0.68),
EntityKind::Zoglin => EntityDimensions::new(1.39648, 1.4),
- EntityKind::Zombie => EntityDimensions::new(0.6, 1.95),
- EntityKind::ZombieHorse => EntityDimensions::new(1.39648, 1.6),
- EntityKind::ZombieVillager => EntityDimensions::new(0.6, 1.95),
- EntityKind::ZombifiedPiglin => EntityDimensions::new(0.6, 1.95),
+ EntityKind::Zombie => EntityDimensions::new(0.6, 1.95).eye_height(1.74),
+ EntityKind::ZombieHorse => EntityDimensions::new(1.39648, 1.6).eye_height(1.52),
+ EntityKind::ZombieVillager => EntityDimensions::new(0.6, 1.95).eye_height(1.74),
+ EntityKind::ZombifiedPiglin => EntityDimensions::new(0.6, 1.95).eye_height(1.79),
}
}
}
+
+/// Calculate the dimensions that an entity with the given kind and pose would
+/// have.i
+pub fn calculate_dimensions(kind: EntityKind, pose: Pose) -> EntityDimensions {
+ match (kind, pose) {
+ (_, Pose::Sleeping) => EntityDimensions::new(0.2, 0.2).fixed().eye_height(0.2),
+ (EntityKind::Player, Pose::FallFlying) => EntityDimensions::new(0.6, 0.6).eye_height(0.4),
+ (EntityKind::Player, Pose::Swimming) => EntityDimensions::new(0.6, 0.6).eye_height(0.4),
+ (EntityKind::Player, Pose::SpinAttack) => EntityDimensions::new(0.6, 0.6).eye_height(0.4),
+ (EntityKind::Player, Pose::Crouching) => EntityDimensions::new(0.6, 1.5).eye_height(1.27),
+ (EntityKind::Player, Pose::Dying) => EntityDimensions::new(0.2, 1.2).eye_height(1.62),
+ _ => EntityDimensions::from(kind),
+ }
+}
diff --git a/azalea-entity/src/lib.rs b/azalea-entity/src/lib.rs
index 645a5534..30e00ccb 100644
--- a/azalea-entity/src/lib.rs
+++ b/azalea-entity/src/lib.rs
@@ -2,7 +2,7 @@
pub mod attributes;
mod data;
-mod dimensions;
+pub mod dimensions;
mod effects;
mod enchantments;
pub mod metadata;
@@ -31,12 +31,12 @@ use azalea_world::{ChunkStorage, InstanceName};
use bevy_ecs::{bundle::Bundle, component::Component};
pub use data::*;
use derive_more::{Deref, DerefMut};
-pub use dimensions::EntityDimensions;
use plugin::indexing::EntityChunkPos;
use uuid::Uuid;
use vec_delta_codec::VecDeltaCodec;
use self::attributes::AttributeInstance;
+use crate::dimensions::EntityDimensions;
pub use crate::plugin::*;
pub fn move_relative(
@@ -353,8 +353,6 @@ pub struct Physics {
/// and sets to 0 if we're not trying to jump.
pub no_jump_delay: u32,
- /// The width and height of the entity.
- pub dimensions: EntityDimensions,
/// The bounding box of the entity. This is more than just width and height,
/// unlike dimensions.
pub bounding_box: AABB,
@@ -362,21 +360,21 @@ pub struct Physics {
pub has_impulse: bool,
pub horizontal_collision: bool,
- // pub minor_horizontal_collision: bool,
+ // TODO: implement minor_horizontal_collision
+ pub minor_horizontal_collision: bool,
pub vertical_collision: bool,
pub water_fluid_height: f64,
pub lava_fluid_height: f64,
pub was_touching_water: bool,
- // TODO: implement fall_distance
- pub fall_distance: f32,
+ pub fall_distance: f64,
// TODO: implement remaining_fire_ticks
pub remaining_fire_ticks: i32,
}
impl Physics {
- pub fn new(dimensions: EntityDimensions, pos: Vec3) -> Self {
+ pub fn new(dimensions: &EntityDimensions, pos: Vec3) -> Self {
Self {
velocity: Vec3::ZERO,
vec_delta_codec: VecDeltaCodec::new(pos),
@@ -393,11 +391,11 @@ impl Physics {
no_jump_delay: 0,
bounding_box: dimensions.make_bounding_box(pos),
- dimensions,
has_impulse: false,
horizontal_collision: false,
+ minor_horizontal_collision: false,
vertical_collision: false,
water_fluid_height: 0.,
@@ -455,41 +453,6 @@ impl Physics {
#[derive(Component, Copy, Clone, Default)]
pub struct Dead;
-/// A component that contains the offset of the entity's eyes from the entity
-/// coordinates.
-///
-/// This is used to calculate the camera position for players, when spectating
-/// an entity, and when raycasting from the entity.
-///
-/// The default eye height for a player is 1.62 blocks.
-#[derive(Component, Clone, Copy, Debug, PartialEq, Deref, DerefMut)]
-pub struct EyeHeight(f32);
-impl EyeHeight {
- pub fn new(height: f32) -> Self {
- Self(height)
- }
-}
-impl From<EyeHeight> for f32 {
- fn from(value: EyeHeight) -> Self {
- value.0
- }
-}
-impl From<EyeHeight> for f64 {
- fn from(value: EyeHeight) -> Self {
- value.0 as f64
- }
-}
-impl From<&EyeHeight> for f32 {
- fn from(value: &EyeHeight) -> Self {
- value.0
- }
-}
-impl From<&EyeHeight> for f64 {
- fn from(value: &EyeHeight) -> Self {
- value.0 as f64
- }
-}
-
/// A component NewType for [`azalea_registry::EntityKind`].
///
/// Most of the time, you should be using `azalea_registry::EntityKind`
@@ -511,9 +474,10 @@ pub struct EntityBundle {
pub physics: Physics,
pub direction: LookDirection,
- pub eye_height: EyeHeight,
+ pub dimensions: EntityDimensions,
pub attributes: Attributes,
pub jumping: Jumping,
+ pub crouching: Crouching,
pub fluid_on_eyes: FluidOnEyes,
pub on_climbable: OnClimbable,
}
@@ -526,12 +490,6 @@ impl EntityBundle {
world_name: ResourceLocation,
) -> Self {
let dimensions = EntityDimensions::from(kind);
- let eye_height = match kind {
- // TODO: codegen hardcoded eye heights, search withEyeHeight with mojmap
- // also, eye height should change depending on pose (like sneaking, swimming, etc)
- azalea_registry::EntityKind::Player => 1.62,
- _ => dimensions.height * 0.85,
- };
Self {
kind: EntityKindComponent(kind),
@@ -540,13 +498,14 @@ impl EntityBundle {
position: Position(pos),
chunk_pos: EntityChunkPos(ChunkPos::from(&pos)),
last_sent_position: LastSentPosition(pos),
- physics: Physics::new(dimensions, pos),
- eye_height: EyeHeight(eye_height),
+ physics: Physics::new(&dimensions, pos),
+ dimensions,
direction: LookDirection::default(),
attributes: default_attributes(EntityKind::Player),
jumping: Jumping(false),
+ crouching: Crouching(false),
fluid_on_eyes: FluidOnEyes(FluidKind::Empty),
on_climbable: OnClimbable(false),
}
@@ -557,12 +516,13 @@ pub fn default_attributes(_entity_kind: EntityKind) -> Attributes {
// TODO: do the correct defaults for everything, some
// entities have different defaults
Attributes {
- speed: AttributeInstance::new(0.1),
+ movement_speed: AttributeInstance::new(0.1f32 as f64),
sneaking_speed: AttributeInstance::new(0.3),
attack_speed: AttributeInstance::new(4.0),
water_movement_efficiency: AttributeInstance::new(0.0),
block_interaction_range: AttributeInstance::new(4.5),
entity_interaction_range: AttributeInstance::new(3.0),
+ step_height: AttributeInstance::new(0.6),
}
}
@@ -586,3 +546,30 @@ impl FluidOnEyes {
#[derive(Component, Clone, Copy, Debug, PartialEq, Deref, DerefMut)]
pub struct OnClimbable(bool);
+
+/// A component that indicates whether the player is currently sneaking.
+///
+/// If the entity isn't a local player, then this is just a shortcut for
+/// checking if the [`Pose`] is `Crouching`.
+///
+/// If you need to modify this value, use
+/// `azalea_client::PhysicsState::trying_to_crouch` or `Client::set_crouching`
+/// instead.
+#[derive(Component, Clone, Copy, Deref, DerefMut, Default)]
+pub struct Crouching(bool);
+
+/// A component that contains the abilities the player has, like flying
+/// or instantly breaking blocks. This is only present on local players.
+#[derive(Clone, Debug, Component, Default)]
+pub struct PlayerAbilities {
+ pub invulnerable: bool,
+ pub flying: bool,
+ pub can_fly: bool,
+ /// Whether the player can instantly break blocks and can duplicate blocks
+ /// in their inventory.
+ pub instant_break: bool,
+
+ pub flying_speed: f32,
+ /// Used for the fov
+ pub walking_speed: f32,
+}
diff --git a/azalea-entity/src/metadata.rs b/azalea-entity/src/metadata.rs
index 422eabd8..6ccbad1a 100644
--- a/azalea-entity/src/metadata.rs
+++ b/azalea-entity/src/metadata.rs
@@ -35,7 +35,7 @@ impl From<EntityDataValue> for UpdateMetadataError {
#[derive(Component, Deref, DerefMut, Clone, Copy)]
pub struct OnFire(pub bool);
#[derive(Component, Deref, DerefMut, Clone, Copy)]
-pub struct ShiftKeyDown(pub bool);
+pub struct AbstractEntityShiftKeyDown(pub bool);
#[derive(Component, Deref, DerefMut, Clone, Copy)]
pub struct Sprinting(pub bool);
#[derive(Component, Deref, DerefMut, Clone, Copy)]
@@ -101,7 +101,7 @@ impl Default for AcaciaBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -158,7 +158,7 @@ impl Default for AcaciaChestBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -251,7 +251,7 @@ impl Default for AllayMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -328,7 +328,7 @@ impl Default for AreaEffectCloudMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -394,7 +394,9 @@ impl Default for ArmadilloMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -514,7 +516,7 @@ impl Default for ArmorStandMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -594,7 +596,7 @@ impl Default for ArrowMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -673,7 +675,9 @@ impl Default for AxolotlMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -742,7 +746,7 @@ impl Default for BambooChestRaftMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -799,7 +803,7 @@ impl Default for BambooRaftMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -863,7 +867,7 @@ impl Default for BatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -953,7 +957,9 @@ impl Default for BeeMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -1023,7 +1029,7 @@ impl Default for BirchBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -1080,7 +1086,7 @@ impl Default for BirchChestBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -1148,7 +1154,7 @@ impl Default for BlazeMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -1247,7 +1253,7 @@ impl Default for BlockDisplayMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -1342,7 +1348,7 @@ impl Default for BoggedMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -1411,7 +1417,7 @@ impl Default for BreezeMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -1471,7 +1477,7 @@ impl Default for BreezeWindChargeMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -1548,7 +1554,9 @@ impl Default for CamelMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -1659,7 +1667,9 @@ impl Default for CatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -1741,7 +1751,9 @@ impl Default for CaveSpiderMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -1807,7 +1819,7 @@ impl Default for CherryBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -1864,7 +1876,7 @@ impl Default for CherryChestBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -1925,7 +1937,7 @@ impl Default for ChestMinecartMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -1993,7 +2005,9 @@ impl Default for ChickenMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -2066,7 +2080,7 @@ impl Default for CodMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -2143,7 +2157,7 @@ impl Default for CommandBlockMinecartMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -2213,7 +2227,9 @@ impl Default for CowMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -2308,7 +2324,7 @@ impl Default for CreakingMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -2398,7 +2414,7 @@ impl Default for CreeperMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -2465,7 +2481,7 @@ impl Default for DarkOakBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -2522,7 +2538,7 @@ impl Default for DarkOakChestBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -2595,7 +2611,7 @@ impl Default for DolphinMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -2674,7 +2690,8 @@ impl Default for DonkeyMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down:
+ AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -2745,7 +2762,7 @@ impl Default for DragonFireballMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -2806,7 +2823,9 @@ impl Default for DrownedMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -2874,7 +2893,7 @@ impl Default for EggMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -2937,7 +2956,9 @@ impl Default for ElderGuardianMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -3012,7 +3033,7 @@ impl Default for EndCrystalMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -3069,7 +3090,7 @@ impl Default for EnderDragonMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -3130,7 +3151,7 @@ impl Default for EnderPearlMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -3205,7 +3226,7 @@ impl Default for EndermanMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -3276,7 +3297,7 @@ impl Default for EndermiteMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -3352,7 +3373,9 @@ impl Default for EvokerMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -3416,7 +3439,7 @@ impl Default for EvokerFangsMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -3463,7 +3486,7 @@ impl Default for ExperienceBottleMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -3518,7 +3541,7 @@ impl Default for ExperienceOrbMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -3570,7 +3593,7 @@ impl Default for EyeOfEnderMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -3622,7 +3645,7 @@ impl Default for FallingBlockMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -3674,7 +3697,7 @@ impl Default for FireballMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -3738,7 +3761,7 @@ impl Default for FireworkRocketMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -3798,7 +3821,7 @@ impl Default for FishingBobberMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -3831,7 +3854,7 @@ pub struct Sleeping(pub bool);
#[derive(Component, Deref, DerefMut, Clone, Copy)]
pub struct Pouncing(pub bool);
#[derive(Component, Deref, DerefMut, Clone, Copy)]
-pub struct Crouching(pub bool);
+pub struct FoxCrouching(pub bool);
#[derive(Component, Deref, DerefMut, Clone, Copy)]
pub struct FoxInterested(pub bool);
#[derive(Component, Deref, DerefMut, Clone)]
@@ -3857,7 +3880,7 @@ impl Fox {
entity.insert(Defending(bitfield & 0x80 != 0));
entity.insert(Sleeping(bitfield & 0x20 != 0));
entity.insert(Pouncing(bitfield & 0x10 != 0));
- entity.insert(Crouching(bitfield & 0x4 != 0));
+ entity.insert(FoxCrouching(bitfield & 0x4 != 0));
entity.insert(FoxInterested(bitfield & 0x8 != 0));
}
19 => {
@@ -3882,7 +3905,7 @@ pub struct FoxMetadataBundle {
defending: Defending,
sleeping: Sleeping,
pouncing: Pouncing,
- crouching: Crouching,
+ fox_crouching: FoxCrouching,
fox_interested: FoxInterested,
trusted_id_0: TrustedId0,
trusted_id_1: TrustedId1,
@@ -3904,7 +3927,9 @@ impl Default for FoxMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -3941,7 +3966,7 @@ impl Default for FoxMetadataBundle {
defending: Defending(false),
sleeping: Sleeping(false),
pouncing: Pouncing(false),
- crouching: Crouching(false),
+ fox_crouching: FoxCrouching(false),
fox_interested: FoxInterested(false),
trusted_id_0: TrustedId0(None),
trusted_id_1: TrustedId1(None),
@@ -3998,7 +4023,9 @@ impl Default for FrogMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -4072,7 +4099,7 @@ impl Default for FurnaceMinecartMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -4135,7 +4162,7 @@ impl Default for GhastMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -4202,7 +4229,7 @@ impl Default for GiantMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -4270,7 +4297,7 @@ impl Default for GlowItemFrameMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -4335,7 +4362,9 @@ impl Default for GlowSquidMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -4426,7 +4455,9 @@ impl Default for GoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -4507,7 +4538,7 @@ impl Default for GuardianMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -4591,7 +4622,9 @@ impl Default for HappyGhastMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -4671,7 +4704,9 @@ impl Default for HoglinMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -4738,7 +4773,7 @@ impl Default for HopperMinecartMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -4808,7 +4843,9 @@ impl Default for HorseMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -4886,7 +4923,9 @@ impl Default for HuskMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -4962,7 +5001,9 @@ impl Default for IllusionerMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -5044,7 +5085,7 @@ impl Default for InteractionMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -5105,7 +5146,7 @@ impl Default for IronGolemMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -5171,7 +5212,7 @@ impl Default for ItemMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -5231,7 +5272,7 @@ impl Default for ItemDisplayMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -5325,7 +5366,7 @@ impl Default for ItemFrameMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -5377,7 +5418,7 @@ impl Default for JungleBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -5434,7 +5475,7 @@ impl Default for JungleChestBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -5487,7 +5528,7 @@ impl Default for LeashKnotMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -5532,7 +5573,7 @@ impl Default for LightningBoltMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -5579,7 +5620,7 @@ impl Default for LingeringPotionMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -5654,7 +5695,8 @@ impl Default for LlamaMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down:
+ AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -5727,7 +5769,7 @@ impl Default for LlamaSpitMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -5780,7 +5822,7 @@ impl Default for MagmaCubeMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -5844,7 +5886,7 @@ impl Default for MangroveBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -5901,7 +5943,7 @@ impl Default for MangroveChestBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -5954,7 +5996,7 @@ impl Default for MarkerMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -6003,7 +6045,7 @@ impl Default for MinecartMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -6071,7 +6113,9 @@ impl Default for MooshroomMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -6148,7 +6192,8 @@ impl Default for MuleMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down:
+ AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -6223,7 +6268,7 @@ impl Default for OakBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -6280,7 +6325,7 @@ impl Default for OakChestBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -6349,7 +6394,9 @@ impl Default for OcelotMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -6418,7 +6465,7 @@ impl Default for OminousItemSpawnerMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -6476,7 +6523,7 @@ impl Default for PaintingMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -6527,7 +6574,7 @@ impl Default for PaleOakBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -6584,7 +6631,7 @@ impl Default for PaleOakChestBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -6696,7 +6743,9 @@ impl Default for PandaMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -6785,7 +6834,9 @@ impl Default for ParrotMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -6862,7 +6913,7 @@ impl Default for PhantomMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -6943,7 +6994,9 @@ impl Default for PigMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -7037,7 +7090,9 @@ impl Default for PiglinMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -7112,7 +7167,9 @@ impl Default for PiglinBruteMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -7190,7 +7247,9 @@ impl Default for PillagerMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -7291,7 +7350,7 @@ impl Default for PlayerMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -7367,7 +7426,9 @@ impl Default for PolarBearMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -7448,7 +7509,7 @@ impl Default for PufferfishMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -7525,7 +7586,9 @@ impl Default for RabbitMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -7598,7 +7661,9 @@ impl Default for RavagerMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -7674,7 +7739,7 @@ impl Default for SalmonMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -7753,7 +7818,9 @@ impl Default for SheepMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -7840,7 +7907,7 @@ impl Default for ShulkerMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -7902,7 +7969,7 @@ impl Default for ShulkerBulletMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -7955,7 +8022,7 @@ impl Default for SilverfishMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -8029,7 +8096,7 @@ impl Default for SkeletonMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -8102,7 +8169,9 @@ impl Default for SkeletonHorseMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -8177,7 +8246,7 @@ impl Default for SlimeMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -8242,7 +8311,7 @@ impl Default for SmallFireballMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -8310,7 +8379,9 @@ impl Default for SnifferMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -8387,7 +8458,7 @@ impl Default for SnowGolemMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -8449,7 +8520,7 @@ impl Default for SnowballMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -8502,7 +8573,7 @@ impl Default for SpawnerMinecartMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -8556,7 +8627,7 @@ impl Default for SpectralArrowMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -8619,7 +8690,7 @@ impl Default for SpiderMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -8682,7 +8753,7 @@ impl Default for SplashPotionMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -8735,7 +8806,7 @@ impl Default for SpruceBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -8792,7 +8863,7 @@ impl Default for SpruceChestBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -8853,7 +8924,7 @@ impl Default for SquidMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -8922,7 +8993,7 @@ impl Default for StrayMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -9004,7 +9075,9 @@ impl Default for StriderMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -9080,7 +9153,7 @@ impl Default for TadpoleMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -9172,7 +9245,7 @@ impl Default for TextDisplayMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -9269,7 +9342,7 @@ impl Default for TntMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -9320,7 +9393,7 @@ impl Default for TntMinecartMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -9388,7 +9461,8 @@ impl Default for TraderLlamaMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down:
+ AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -9478,7 +9552,7 @@ impl Default for TridentMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -9544,7 +9618,7 @@ impl Default for TropicalFishMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -9628,7 +9702,9 @@ impl Default for TurtleMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -9706,7 +9782,7 @@ impl Default for VexMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -9785,7 +9861,9 @@ impl Default for VillagerMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -9863,7 +9941,9 @@ impl Default for VindicatorMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -9935,7 +10015,9 @@ impl Default for WanderingTraderMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -10012,7 +10094,7 @@ impl Default for WardenMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -10073,7 +10155,7 @@ impl Default for WindChargeMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -10134,7 +10216,9 @@ impl Default for WitchMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -10229,7 +10313,7 @@ impl Default for WitherMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -10301,7 +10385,7 @@ impl Default for WitherSkeletonMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -10367,7 +10451,7 @@ impl Default for WitherSkullMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -10455,7 +10539,9 @@ impl Default for WolfMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -10540,7 +10626,7 @@ impl Default for ZoglinMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -10621,7 +10707,7 @@ impl Default for ZombieMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -10696,7 +10782,9 @@ impl Default for ZombieHorseMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -10785,7 +10873,9 @@ impl Default for ZombieVillagerMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -10865,7 +10955,9 @@ impl Default for ZombifiedPiglinMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -10939,7 +11031,7 @@ impl Default for AbstractAgeableMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -11007,7 +11099,7 @@ impl Default for AbstractAnimalMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -11083,7 +11175,7 @@ impl Default for AbstractArrowMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -11146,7 +11238,7 @@ impl Default for AbstractBoatMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -11214,7 +11306,9 @@ impl Default for AbstractChestedHorseMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -11286,7 +11380,7 @@ impl Default for AbstractCreatureMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -11406,7 +11500,7 @@ impl Default for AbstractDisplayMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -11469,7 +11563,7 @@ impl AbstractEntity {
0 => {
let bitfield = d.value.into_byte()?;
entity.insert(OnFire(bitfield & 0x1 != 0));
- entity.insert(ShiftKeyDown(bitfield & 0x2 != 0));
+ entity.insert(AbstractEntityShiftKeyDown(bitfield & 0x2 != 0));
entity.insert(Sprinting(bitfield & 0x8 != 0));
entity.insert(Swimming(bitfield & 0x10 != 0));
entity.insert(CurrentlyGlowing(bitfield & 0x40 != 0));
@@ -11507,7 +11601,7 @@ impl AbstractEntity {
pub struct AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire,
- shift_key_down: ShiftKeyDown,
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown,
sprinting: Sprinting,
swimming: Swimming,
currently_glowing: CurrentlyGlowing,
@@ -11526,7 +11620,7 @@ impl Default for AbstractEntityMetadataBundle {
Self {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -11580,7 +11674,7 @@ impl Default for AbstractFishMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -11661,7 +11755,9 @@ impl Default for AbstractHorseMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -11738,7 +11834,7 @@ impl Default for AbstractInsentientMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -11826,7 +11922,7 @@ impl Default for AbstractLivingMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -11889,7 +11985,7 @@ impl Default for AbstractMinecartMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -11946,7 +12042,7 @@ impl Default for AbstractMonsterMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -12017,7 +12113,7 @@ impl Default for AbstractPiglinMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -12090,7 +12186,7 @@ impl Default for AbstractRaiderMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -12165,7 +12261,9 @@ impl Default for AbstractSpellcasterIllagerMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -12249,7 +12347,9 @@ impl Default for AbstractTameableMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(
+ false,
+ ),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -12320,7 +12420,7 @@ impl Default for AbstractThrownItemProjectileMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -12380,7 +12480,7 @@ impl Default for AbstractVehicleMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
@@ -12440,7 +12540,7 @@ impl Default for AbstractVillagerMetadataBundle {
parent: AbstractEntityMetadataBundle {
_marker: AbstractEntity,
on_fire: OnFire(false),
- shift_key_down: ShiftKeyDown(false),
+ abstract_entity_shift_key_down: AbstractEntityShiftKeyDown(false),
sprinting: Sprinting(false),
swimming: Swimming(false),
currently_glowing: CurrentlyGlowing(false),
diff --git a/azalea-entity/src/plugin/mod.rs b/azalea-entity/src/plugin/mod.rs
index ee6bca61..95fcb93f 100644
--- a/azalea-entity/src/plugin/mod.rs
+++ b/azalea-entity/src/plugin/mod.rs
@@ -17,7 +17,9 @@ pub use relative_updates::RelativeEntityUpdate;
use tracing::debug;
use crate::{
- Dead, EyeHeight, FluidOnEyes, LocalEntity, LookDirection, OnClimbable, Physics, Position,
+ Crouching, Dead, EntityKindComponent, FluidOnEyes, LocalEntity, LookDirection, OnClimbable,
+ Physics, Pose, Position,
+ dimensions::{EntityDimensions, calculate_dimensions},
metadata::Health,
};
@@ -56,12 +58,12 @@ impl Plugin for EntityPlugin {
debug_new_entity,
add_dead,
clamp_look_direction,
- update_fluid_on_eyes,
update_on_climbable,
+ (update_dimensions, update_bounding_box, update_fluid_on_eyes).chain(),
+ update_crouching,
),
),
)
- .add_systems(Update, update_bounding_box)
.add_systems(GameTick, update_in_loaded_chunk)
.init_resource::<EntityUuidIndex>();
}
@@ -91,15 +93,20 @@ pub fn add_dead(mut commands: Commands, query: Query<(Entity, &Health), Changed<
}
pub fn update_fluid_on_eyes(
- mut query: Query<(&mut FluidOnEyes, &Position, &EyeHeight, &InstanceName)>,
+ mut query: Query<(
+ &mut FluidOnEyes,
+ &Position,
+ &EntityDimensions,
+ &InstanceName,
+ )>,
instance_container: Res<InstanceContainer>,
) {
- for (mut fluid_on_eyes, position, eye_height, instance_name) in query.iter_mut() {
+ for (mut fluid_on_eyes, position, dimensions, instance_name) in query.iter_mut() {
let Some(instance) = instance_container.get(instance_name) else {
continue;
};
- let adjusted_eye_y = position.y + (**eye_height as f64) - 0.1111111119389534;
+ let adjusted_eye_y = position.y + (dimensions.eye_height as f64) - 0.1111111119389534;
let eye_block_pos = BlockPos::from(Vec3::new(position.x, adjusted_eye_y, position.z));
let fluid_at_eye = instance
.read()
@@ -201,13 +208,41 @@ pub fn apply_clamp_look_direction(mut look_direction: LookDirection) -> LookDire
///
/// # Safety
/// Cached position in the world must be updated.
-pub fn update_bounding_box(mut query: Query<(&Position, &mut Physics), Changed<Position>>) {
- for (position, mut physics) in query.iter_mut() {
- let bounding_box = physics.dimensions.make_bounding_box(**position);
+#[allow(clippy::type_complexity)]
+pub fn update_bounding_box(
+ mut query: Query<
+ (&mut Physics, &Position, &EntityDimensions),
+ Or<(Changed<Position>, Changed<EntityDimensions>)>,
+ >,
+) {
+ for (mut physics, position, dimensions) in query.iter_mut() {
+ let bounding_box = dimensions.make_bounding_box(**position);
physics.bounding_box = bounding_box;
}
}
+#[allow(clippy::type_complexity)]
+pub fn update_dimensions(
+ mut query: Query<
+ (&mut EntityDimensions, &EntityKindComponent, &Pose),
+ Or<(Changed<EntityKindComponent>, Changed<Pose>)>,
+ >,
+) {
+ for (mut dimensions, kind, pose) in query.iter_mut() {
+ *dimensions = calculate_dimensions(**kind, *pose);
+ }
+}
+
+pub fn update_crouching(query: Query<(&mut Crouching, &Pose), Without<LocalEntity>>) {
+ for (mut crouching, pose) in query {
+ let new_crouching = *pose == Pose::Crouching;
+ // avoid triggering change detection
+ if **crouching != new_crouching {
+ **crouching = new_crouching;
+ }
+ }
+}
+
/// Marks an entity that's in a loaded chunk. This is updated at the beginning
/// of every tick.
///