(480a052a8) Minor physics optimization: use SetTransformIgnoreContacts when correcting physicsbody positions
This commit is contained in:
@@ -105,7 +105,7 @@ namespace Barotrauma
|
||||
|
||||
if (Vector2.DistanceSquared(bodyPos, levelWall.Body.Position) > 0.5f)
|
||||
{
|
||||
levelWall.Body.SetTransform(bodyPos, levelWall.Body.Rotation);
|
||||
levelWall.Body.SetTransformIgnoreContacts(ref bodyPos, levelWall.Body.Rotation);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,10 +42,17 @@ namespace Barotrauma
|
||||
bool displace = moveAmount.LengthSquared() > 100.0f * 100.0f;
|
||||
foreach (Submarine sub in subsToMove)
|
||||
{
|
||||
sub.PhysicsBody.SetTransform(sub.PhysicsBody.SimPosition + ConvertUnits.ToSimUnits(moveAmount), 0.0f);
|
||||
sub.PhysicsBody.LinearVelocity = newVelocity;
|
||||
|
||||
if (displace) sub.SubBody.DisplaceCharacters(moveAmount);
|
||||
if (displace)
|
||||
{
|
||||
sub.PhysicsBody.SetTransform(sub.PhysicsBody.SimPosition + ConvertUnits.ToSimUnits(moveAmount), 0.0f);
|
||||
sub.SubBody.DisplaceCharacters(moveAmount);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub.PhysicsBody.SetTransformIgnoreContacts(sub.PhysicsBody.SimPosition + ConvertUnits.ToSimUnits(moveAmount), 0.0f);
|
||||
}
|
||||
}
|
||||
|
||||
if (closestSub != null && subsToMove.Contains(closestSub))
|
||||
@@ -55,7 +62,6 @@ namespace Barotrauma
|
||||
|
||||
if (Character.Controlled != null) Character.Controlled.CursorPosition += moveAmount;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,7 +178,7 @@ namespace Barotrauma
|
||||
{
|
||||
get
|
||||
{
|
||||
return (body == null) ? base.Position : ConvertUnits.ToDisplayUnits(SimPosition);
|
||||
return (body == null) ? base.Position : body.Position;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -186,7 +186,7 @@ namespace Barotrauma
|
||||
{
|
||||
get
|
||||
{
|
||||
return (body == null) ? base.SimPosition : body.SimPosition;
|
||||
return (body == null) ? ConvertUnits.ToSimUnits(base.Position) : body.SimPosition;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -732,7 +732,7 @@ namespace Barotrauma
|
||||
}
|
||||
}
|
||||
|
||||
SetTransform((Vector2)targetPosition, targetRotation == null ? body.Rotation : (float)targetRotation);
|
||||
SetTransformIgnoreContacts((Vector2)targetPosition, targetRotation == null ? body.Rotation : (float)targetRotation);
|
||||
targetPosition = null;
|
||||
targetRotation = null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user