public void method_13(PathSequence pathSequence_0) { object @lock = this._lock; lock (@lock) { this.PathCache.method_0(pathSequence_0); } }
public PathSequence method_4(Vector2 vector2_0, Vector2 vector2_1, MapGrid mapGrid_0) { Vector2 destination = vector2_1; if (vector2_1.Y == mapGrid_0.Map.RightCorner.Y || vector2_1.X == mapGrid_0.Map.RightCorner.X) { vector2_1 = new Vector2(vector2_1.X - 1f, vector2_1.Y - 1f); } if (vector2_0.Y == mapGrid_0.Map.RightCorner.Y || vector2_0.X == mapGrid_0.Map.RightCorner.X) { vector2_0 = new Vector2(vector2_0.X - 1f, vector2_0.Y - 1f); } PathSequence pathSequence = this.method_5(vector2_0, vector2_1, mapGrid_0); if (pathSequence != null) { pathSequence.Destination = destination; } return(pathSequence); }
private PathSequence method_0(Vector2 vector2_0, Vector2 vector2_1) { PathSequence pathSequence = new PathSequence(vector2_1); int num; int num2; this.Grid.ClHzudsGyZ(vector2_0, out num, out num2); int num3; int num4; this.Grid.ClHzudsGyZ(vector2_1, out num3, out num4); Stack <Vector2> stack = new Stack <Vector2>(); stack.Push(vector2_1); int num5 = this.method_1(num3, num4); int num6 = num3; int num7 = num4; Vector2 item = this.Grid.method_4(num3, num4); int num8 = 0; int num9 = 0; int parent; while ((parent = this.items[num5].Parent) != -1) { int num10; int num11; this.hEmzxAaTll(parent, out num10, out num11); int num12 = num10 - num6; int num13 = num11 - num7; if (num8 != num12 || num9 != num13) { stack.Push(item); } num8 = num12; num9 = num13; item = this.Grid.method_4(num10, num11); num5 = parent; num6 = num10; num7 = num11; } if (stack.Count > 1) { int num14; int num15; this.Grid.ClHzudsGyZ(stack.Peek(), out num14, out num15); if (num14 == num && num15 == num2) { stack.Pop(); } } if (stack.Count > 0 && stack.Peek() != vector2_0) { stack.Push(vector2_0); } if (stack.Count == 0) { return(null); } while (stack.Count > 0) { pathSequence.Path.Add(stack.Pop()); } return(pathSequence); }