From 55a7db13ef028f5b6c6e87a81406b3525cea196f Mon Sep 17 00:00:00 2001 From: mat Date: Tue, 12 Aug 2025 20:50:40 -1030 Subject: send correct packets on teleport --- azalea-physics/src/collision/mod.rs | 6 +++--- azalea-physics/src/fluids.rs | 10 +++++----- azalea-physics/src/lib.rs | 6 +++--- azalea-physics/src/travel.rs | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) (limited to 'azalea-physics/src') 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, With), + (With, With), >, instance_container: Res, ) { 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, With), + (With, With), >, instance_container: Res, ) { @@ -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, With), + (With, With), >, instance_container: Res, ) { 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, With), + (With, With), >, instance_container: Res, physics_query: PhysicsQuery, -- cgit v1.2.3