mirror of https://github.com/minetest/minetest.git
Accelerate player when holding jump key while bouncing
I hope this is better now. The player jumps a bit higher everytime he holds jump key while bouncing of a bouncy block. Previously if jump key was hold while bouncing only a jump with the high of normal jump was done, even if the player bounced much higher before. Holding sneak key while landing on a trampoline still stops you bouncing and you sneak on the trampoline. Please test with original jumping mod from here: https://github.com/Jeija/minetest-mod-jumping Calinou's version has added disable_jump as a workaround for the bug in minetest and will not work right.
This commit is contained in:
parent
c2a9189965
commit
d7a3b42430
|
@ -361,6 +361,21 @@ void LocalPlayer::move(f32 dtime, Environment *env, f32 pos_max_d,
|
||||||
m_can_jump = touching_ground && !in_liquid;
|
m_can_jump = touching_ground && !in_liquid;
|
||||||
if(itemgroup_get(f.groups, "disable_jump"))
|
if(itemgroup_get(f.groups, "disable_jump"))
|
||||||
m_can_jump = false;
|
m_can_jump = false;
|
||||||
|
// Jump key pressed while jumping off from a bouncy block
|
||||||
|
if (m_can_jump && control.jump && itemgroup_get(f.groups, "bouncy") &&
|
||||||
|
m_speed.Y >= -0.5 * BS)
|
||||||
|
{
|
||||||
|
float jumpspeed = movement_speed_jump * physics_override_jump;
|
||||||
|
if (m_speed.Y > 1)
|
||||||
|
{
|
||||||
|
// Reduce boost when speed already is high
|
||||||
|
m_speed.Y += jumpspeed / (1 + (m_speed.Y / 16 ));
|
||||||
|
} else {
|
||||||
|
m_speed.Y += jumpspeed;
|
||||||
|
}
|
||||||
|
setSpeed(m_speed);
|
||||||
|
m_can_jump = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LocalPlayer::move(f32 dtime, Environment *env, f32 pos_max_d)
|
void LocalPlayer::move(f32 dtime, Environment *env, f32 pos_max_d)
|
||||||
|
|
Loading…
Reference in New Issue