summaryrefslogtreecommitdiff
path: root/Client/Assembly-CSharp/PhysicsHelpers.cs
blob: 706073f13f5cfe754d14ca30f71cbd5b85386e6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using UnityEngine;

public static class PhysicsHelpers
{
	private static RaycastHit2D[] castHits = new RaycastHit2D[20];

	private static Vector2 temp = default(Vector2);

	private static ContactFilter2D filter = new ContactFilter2D
	{
		useLayerMask = true
	};

	public static bool AnythingBetween(Vector2 source, Vector2 target, int layerMask, bool useTriggers)
	{
		PhysicsHelpers.filter.layerMask = layerMask;
		PhysicsHelpers.filter.useTriggers = useTriggers;
		PhysicsHelpers.temp.x = target.x - source.x;
		PhysicsHelpers.temp.y = target.y - source.y;
		return Physics2D.Raycast(source, PhysicsHelpers.temp, PhysicsHelpers.filter, PhysicsHelpers.castHits, PhysicsHelpers.temp.magnitude) > 0;
	}

	public static bool AnyNonTriggersBetween(Vector2 source, Vector2 dirNorm, float mag, int layerMask)
	{
		int num = Physics2D.RaycastNonAlloc(source, dirNorm, PhysicsHelpers.castHits, mag, layerMask);
		bool result = false;
		for (int i = 0; i < num; i++)
		{
			if (!PhysicsHelpers.castHits[i].collider.isTrigger)
			{
				result = true;
				break;
			}
		}
		return result;
	}
}