remove effect of avatar mass, so all jump similar height

This commit is contained in:
UbitUmarov
2022-04-16 13:41:31 +01:00
parent 1bf5ccedec
commit dea7b7b1a7
4 changed files with 6 additions and 5 deletions

View File

@@ -449,7 +449,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
m_animTickJump = Environment.TickCount - PREJUMP_DELAY - 1;
currentControlState = motionControlStates.jumping;
m_scenePresence.Jump(18f);
m_scenePresence.Jump(9.4f);
return "JUMP";
}
@@ -465,7 +465,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
// jump up
isJumping = true;
currentControlState = motionControlStates.jumping;
m_scenePresence.Jump(18f);
m_scenePresence.Jump(9.4f);
return "JUMP";
}

View File

@@ -688,7 +688,7 @@ namespace OpenSim.Region.PhysicsModule.BulletS
public override void AvatarJump(float impulseZ)
{
AddForce(false, new OMV.Vector3(0, 0, 0.22f * impulseZ / PhysScene.m_fixedTimeStep));
AddForce(false, new OMV.Vector3(0, 0, 0.22f * Mass * impulseZ / PhysScene.m_fixedTimeStep));
}
public override void AddForce(OMV.Vector3 force, bool pushforce)

View File

@@ -745,7 +745,7 @@ namespace OpenSim.Region.PhysicsModule.ODE
public override void AvatarJump(float forceZ)
{
m_pidControllerActive = false;
m_taintForce += new Vector3(0, 0, forceZ / _parent_scene.ODE_STEPSIZE);
m_taintForce += new Vector3(0, 0, m_mass * forceZ / _parent_scene.ODE_STEPSIZE);
_parent_scene.AddPhysicsActorTaint(this);
}

View File

@@ -808,7 +808,8 @@ namespace OpenSim.Region.PhysicsModule.ubOde
public override void AvatarJump(float impulseZ)
{
AddChange(changes.Force, new Vector3(0, 0, impulseZ * m_sceneInverseTimeStep));
// convert back to force and remove mass effect
AddChange(changes.Force, new Vector3(0, 0, impulseZ * m_sceneInverseTimeStep * m_mass));
}
public override void AddAngularForce(Vector3 force, bool pushforce)