Files
LuaCsForBarotraumaEP/Barotrauma/BarotraumaShared/SharedSource/CachedDistance.cs
Joonas Rikkonen c27e2ea5ab v0.14.6.0
2021-06-17 17:58:09 +03:00

29 lines
1.0 KiB
C#

using Microsoft.Xna.Framework;
namespace Barotrauma
{
public class CachedDistance
{
public readonly Vector2 StartWorldPos;
public readonly Vector2 EndWorldPos;
public readonly float Distance;
public double RecalculationTime;
public CachedDistance(Vector2 startWorldPos, Vector2 endWorldPos, float dist, double recalculationTime)
{
StartWorldPos = startWorldPos;
EndWorldPos = endWorldPos;
Distance = dist;
RecalculationTime = recalculationTime;
}
public bool ShouldUpdateDistance(Vector2 currentStartWorldPos, Vector2 currentEndWorldPos, float minDistanceToUpdate = 500.0f)
{
if (Timing.TotalTime < RecalculationTime) { return false; }
float minDistSquared = minDistanceToUpdate * minDistanceToUpdate;
return Vector2.DistanceSquared(StartWorldPos, currentStartWorldPos) > minDistSquared ||
Vector2.DistanceSquared(EndWorldPos, currentEndWorldPos) > minDistSquared;
}
}
}