aboutsummaryrefslogtreecommitdiff
path: root/azalea-physics/src
diff options
context:
space:
mode:
authormat <git@matdoes.dev>2025-08-12 20:50:40 -1030
committermat <git@matdoes.dev>2025-08-12 20:50:40 -1030
commit55a7db13ef028f5b6c6e87a81406b3525cea196f (patch)
tree6a995bc0b46c527e9fab0874508f81e07deb673e /azalea-physics/src
parentac66744586880afd657969ae078700a9749e293a (diff)
downloadazalea-drasl-55a7db13ef028f5b6c6e87a81406b3525cea196f.tar.xz
send correct packets on teleport
Diffstat (limited to 'azalea-physics/src')
-rw-r--r--azalea-physics/src/collision/mod.rs6
-rw-r--r--azalea-physics/src/fluids.rs10
-rw-r--r--azalea-physics/src/lib.rs6
-rw-r--r--azalea-physics/src/travel.rs4
4 files changed, 13 insertions, 13 deletions
diff --git a/azalea-physics/src/collision/mod.rs b/azalea-physics/src/collision/mod.rs
index 41fc6c85..dc439f7b 100644
--- a/azalea-physics/src/collision/mod.rs
+++ b/azalea-physics/src/collision/mod.rs
@@ -171,11 +171,11 @@ pub fn move_colliding(
let x_collision = movement.x != collide_result.x;
let z_collision = movement.z != collide_result.z;
let horizontal_collision = x_collision || z_collision;
- let vertical_collision = movement.y != collide_result.y;
- let on_ground = vertical_collision && movement.y < 0.;
-
physics.horizontal_collision = horizontal_collision;
+
+ let vertical_collision = movement.y != collide_result.y;
physics.vertical_collision = vertical_collision;
+ let on_ground = vertical_collision && movement.y < 0.;
physics.set_on_ground(on_ground);
// TODO: minecraft checks for a "minor" horizontal collision here
diff --git a/azalea-physics/src/fluids.rs b/azalea-physics/src/fluids.rs
index ea0f12e2..c37a9917 100644
--- a/azalea-physics/src/fluids.rs
+++ b/azalea-physics/src/fluids.rs
@@ -7,7 +7,7 @@ use azalea_core::{
position::{BlockPos, Vec3},
resource_location::ResourceLocation,
};
-use azalea_entity::{InLoadedChunk, LocalEntity, Physics, Position};
+use azalea_entity::{HasClientLoaded, LocalEntity, Physics, Position};
use azalea_world::{Instance, InstanceContainer, InstanceName};
use bevy_ecs::prelude::*;
@@ -17,14 +17,14 @@ use crate::collision::legacy_blocks_motion;
pub fn update_in_water_state_and_do_fluid_pushing(
mut query: Query<
(&mut Physics, &Position, &InstanceName),
- (With<LocalEntity>, With<InLoadedChunk>),
+ (With<LocalEntity>, With<HasClientLoaded>),
>,
instance_container: Res<InstanceContainer>,
) {
for (mut physics, position, instance_name) in &mut query {
- let world_lock = instance_container
- .get(instance_name)
- .expect("All entities with InLoadedChunk should be in a valid world");
+ let Some(world_lock) = instance_container.get(instance_name) else {
+ continue;
+ };
let world = world_lock.read();
// reset the heights since they're going to be set in
diff --git a/azalea-physics/src/lib.rs b/azalea-physics/src/lib.rs
index 2063f0f0..27250f61 100644
--- a/azalea-physics/src/lib.rs
+++ b/azalea-physics/src/lib.rs
@@ -15,7 +15,7 @@ use azalea_core::{
tick::GameTick,
};
use azalea_entity::{
- Attributes, EntityKindComponent, InLoadedChunk, Jumping, LocalEntity, LookDirection,
+ Attributes, EntityKindComponent, HasClientLoaded, Jumping, LocalEntity, LookDirection,
OnClimbable, Physics, Pose, Position, metadata::Sprinting, move_relative,
};
use azalea_registry::{Block, EntityKind};
@@ -68,7 +68,7 @@ pub fn ai_step(
&InstanceName,
&EntityKindComponent,
),
- (With<LocalEntity>, With<InLoadedChunk>),
+ (With<LocalEntity>, With<HasClientLoaded>),
>,
instance_container: Res<InstanceContainer>,
) {
@@ -162,7 +162,7 @@ fn jump_in_liquid(physics: &mut Physics) {
pub fn apply_effects_from_blocks(
mut query: Query<
(&mut Physics, &Position, &InstanceName),
- (With<LocalEntity>, With<InLoadedChunk>),
+ (With<LocalEntity>, With<HasClientLoaded>),
>,
instance_container: Res<InstanceContainer>,
) {
diff --git a/azalea-physics/src/travel.rs b/azalea-physics/src/travel.rs
index 9af3ed27..80c289d9 100644
--- a/azalea-physics/src/travel.rs
+++ b/azalea-physics/src/travel.rs
@@ -4,7 +4,7 @@ use azalea_core::{
position::{BlockPos, Vec3},
};
use azalea_entity::{
- Attributes, InLoadedChunk, Jumping, LocalEntity, LookDirection, OnClimbable, Physics, Pose,
+ Attributes, HasClientLoaded, Jumping, LocalEntity, LookDirection, OnClimbable, Physics, Pose,
Position, metadata::Sprinting, move_relative,
};
use azalea_world::{Instance, InstanceContainer, InstanceName};
@@ -37,7 +37,7 @@ pub fn travel(
&OnClimbable,
&Jumping,
),
- (With<LocalEntity>, With<InLoadedChunk>),
+ (With<LocalEntity>, With<HasClientLoaded>),
>,
instance_container: Res<InstanceContainer>,
physics_query: PhysicsQuery,