public static bool isWayClearToNode(PhysicObj startObj, PathFinderNode node) { Vertices objVertices = ((PolygonShape)startObj.getBoundsFixture()?.Shape)?.Vertices; if (((AdditionalFixtureData)startObj.body.FixtureList[0].UserData).isTouching == true) { return(false); } if (objVertices == null) { return(false); } bool isVisible = true; foreach (Vector2 vertex in objVertices) { Bloodbender.ptr.world.RayCast((fixture, point, normal, fraction) => { if (fixture.UserData == null) { //isVisible = false; return(-1); } if (fixture.IsSensor || ((AdditionalFixtureData)fixture.UserData).physicParent.pathNodeType == PathFinderNodeType.CENTER) { return(-1); } if (((AdditionalFixtureData)fixture.UserData).physicParent.Equals(startObj)) { return(-1); } isVisible = false; return(0); }, vertex + startObj.body.Position, node.position); if (isVisible == false) { return(false); } } return(true); }