示例#1
0
        public void method_13(PathSequence pathSequence_0)
        {
            object @lock = this._lock;

            lock (@lock)
            {
                this.PathCache.method_0(pathSequence_0);
            }
        }
示例#2
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);
        }
示例#3
0
        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);
        }