Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ LaserScan()

static void Terraria.Collision.LaserScan ( Vector2 samplingPoint,
Vector2 directionUnit,
float samplingWidth,
float maxDistance,
float[] samples )
inlinestatic

Definition at line 3715 of file Collision.cs.

3716 {
3717 for (int i = 0; i < samples.Length; i++)
3718 {
3719 float num = (float)i / (float)(samples.Length - 1);
3720 Vector2 vector = samplingPoint + directionUnit.RotatedBy(1.5707963705062866) * (num - 0.5f) * samplingWidth;
3721 int num2 = (int)vector.X / 16;
3722 int num3 = (int)vector.Y / 16;
3724 int num4 = (int)vector2.X / 16;
3725 int num5 = (int)vector2.Y / 16;
3726 float num6 = 0f;
3727 num6 = (TupleHitLine(num2, num3, num4, num5, 0, 0, new List<Tuple<int, int>>(), out var col) ? ((col.Item1 != num4 || col.Item2 != num5) ? (new Vector2(Math.Abs(num2 - col.Item1), Math.Abs(num3 - col.Item2)).Length() * 16f) : maxDistance) : (new Vector2(Math.Abs(num2 - col.Item1), Math.Abs(num3 - col.Item2)).Length() * 16f));
3728 samples[i] = num6;
3729 }
3730 }
static double Abs(double value)
static bool TupleHitLine(int x1, int y1, int x2, int y2, int ignoreX, int ignoreY, List< Tuple< int, int > > ignoreTargets, out Tuple< int, int > col)
Definition Collision.cs:743

References System.Math.Abs(), Microsoft.Xna.Framework.Vector2.Length(), and Terraria.Collision.TupleHitLine().

Referenced by Terraria.Collision.AimingLaserScan().