aboutsummaryrefslogtreecommitdiff
path: root/azalea-physics/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'azalea-physics/src/lib.rs')
-rw-r--r--azalea-physics/src/lib.rs63
1 files changed, 29 insertions, 34 deletions
diff --git a/azalea-physics/src/lib.rs b/azalea-physics/src/lib.rs
index 0541042c..2e8132c8 100644
--- a/azalea-physics/src/lib.rs
+++ b/azalea-physics/src/lib.rs
@@ -90,44 +90,40 @@ pub fn ai_step(
physics.velocity.z = 0.;
}
- if let Some(jumping) = jumping {
- if **jumping {
- // TODO: jumping in liquids and jump delay
-
- let fluid_height = if physics.is_in_lava() {
- physics.lava_fluid_height
- } else if physics.is_in_water() {
- physics.water_fluid_height
- } else {
- 0.
- };
-
- let in_water = physics.is_in_water() && fluid_height > 0.;
- let fluid_jump_threshold = travel::fluid_jump_threshold();
-
- if !in_water || physics.on_ground() && fluid_height <= fluid_jump_threshold {
- if !physics.is_in_lava()
- || physics.on_ground() && fluid_height <= fluid_jump_threshold
+ if jumping == Some(&Jumping(true)) {
+ let fluid_height = if physics.is_in_lava() {
+ physics.lava_fluid_height
+ } else if physics.is_in_water() {
+ physics.water_fluid_height
+ } else {
+ 0.
+ };
+
+ let in_water = physics.is_in_water() && fluid_height > 0.;
+ let fluid_jump_threshold = travel::fluid_jump_threshold();
+
+ if !in_water || physics.on_ground() && fluid_height <= fluid_jump_threshold {
+ if !physics.is_in_lava()
+ || physics.on_ground() && fluid_height <= fluid_jump_threshold
+ {
+ if (physics.on_ground() || in_water && fluid_height <= fluid_jump_threshold)
+ && physics.no_jump_delay == 0
{
- if (physics.on_ground() || in_water && fluid_height <= fluid_jump_threshold)
- && physics.no_jump_delay == 0
- {
- jump_from_ground(
- &mut physics,
- position,
- look_direction,
- sprinting,
- instance_name,
- &instance_container,
- );
- physics.no_jump_delay = 10;
- }
- } else {
- jump_in_liquid(&mut physics);
+ jump_from_ground(
+ &mut physics,
+ position,
+ look_direction,
+ sprinting,
+ instance_name,
+ &instance_container,
+ );
+ physics.no_jump_delay = 10;
}
} else {
jump_in_liquid(&mut physics);
}
+ } else {
+ jump_in_liquid(&mut physics);
}
} else {
physics.no_jump_delay = 0;
@@ -417,7 +413,6 @@ fn handle_relative_friction_and_calculate_movement(
.unwrap_or_default()
.into();
- // TODO: powdered snow
if **on_climbable || block_at_feet == azalea_registry::Block::PowderSnow {
physics.velocity.y = 0.2;
}