improve a bit llpushobject on avatars using bullet, but force is ignored a few seconds after a movement comand. RAdams plz take a look
parent
819fe96503
commit
79945cff7c
|
@ -653,8 +653,15 @@ public sealed class BSCharacter : BSPhysObject
|
||||||
{
|
{
|
||||||
// Since this force is being applied in only one step, make this a force per second.
|
// Since this force is being applied in only one step, make this a force per second.
|
||||||
OMV.Vector3 addForce = force / PhysScene.LastTimeStep;
|
OMV.Vector3 addForce = force / PhysScene.LastTimeStep;
|
||||||
|
|
||||||
|
// compensate for density variation
|
||||||
|
// with a adicional parameter to sync with old ode
|
||||||
|
if(pushforce)
|
||||||
|
addForce = addForce * Density * BSParam.DensityScaleFactor * 0.08f;;
|
||||||
|
|
||||||
AddForce(addForce, pushforce, false);
|
AddForce(addForce, pushforce, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void AddForce(OMV.Vector3 force, bool pushforce, bool inTaintTime) {
|
public override void AddForce(OMV.Vector3 force, bool pushforce, bool inTaintTime) {
|
||||||
if (force.IsFinite())
|
if (force.IsFinite())
|
||||||
{
|
{
|
||||||
|
@ -668,6 +675,7 @@ public sealed class BSCharacter : BSPhysObject
|
||||||
if (PhysBody.HasPhysicalBody)
|
if (PhysBody.HasPhysicalBody)
|
||||||
{
|
{
|
||||||
PhysScene.PE.ApplyCentralForce(PhysBody, addForce);
|
PhysScene.PE.ApplyCentralForce(PhysBody, addForce);
|
||||||
|
PhysScene.PE.Activate(PhysBody, true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue