Fixed ragdolls colliding with stairs when swimming even if not steering upwards, AI steering fixes

This commit is contained in:
Regalis
2017-02-02 20:39:51 +02:00
parent 32d7be07ee
commit 39f977535d
4 changed files with 35 additions and 9 deletions
@@ -82,10 +82,14 @@ namespace Barotrauma
else if (leftDist < WallAvoidDistance)
{
pathSteering.SteeringManual(deltaTime, Vector2.UnitX * (WallAvoidDistance-leftDist)/WallAvoidDistance);
pathSteering.WanderAngle = 0.0f;
return;
}
else if (rightDist < WallAvoidDistance)
{
pathSteering.SteeringManual(deltaTime, -Vector2.UnitX * (WallAvoidDistance-rightDist)/WallAvoidDistance);
pathSteering.WanderAngle = MathHelper.Pi;
return;
}
}
@@ -96,6 +100,8 @@ namespace Barotrauma
else
{
character.AIController.SteeringManager.SteeringWander();
//reset vertical steering to prevent dropping down from platforms etc
character.AIController.SteeringManager.ResetY();
}
return;
@@ -60,6 +60,16 @@ namespace Barotrauma
steering = Vector2.Zero;
}
public void ResetX()
{
steering.X = 0.0f;
}
public void ResetY()
{
steering.Y = 0.0f;
}
public virtual void Update(float speed = 1.0f)
{
if (steering == Vector2.Zero || !MathUtils.IsValid(steering))