public static bool IsFacingInTime(this Obj_AI_Base self, Vector3 positionToCompare, float time, int angleInDegrees) { Tuple <Vector3, Vector3> directionInTime = self.DirectionInTime(time); if (directionInTime.Item1.IsZero || directionInTime.Item2.IsZero) { return(false); } return(!self.IsNull() && self.IsValid && directionInTime.Item1.To2D().AngleBetween((positionToCompare - directionInTime.Item2).To2D()) < angleInDegrees / 2); }