Terraria.Wiring.Teleport C# (CSharp) Method

Teleport() private static method

private static Teleport ( ) : void
return void
        private static void Teleport()
        {
            if ((double)Wiring._teleport[0].X < (double)Wiring._teleport[1].X + 3.0 && (double)Wiring._teleport[0].X > (double)Wiring._teleport[1].X - 3.0 && ((double)Wiring._teleport[0].Y > (double)Wiring._teleport[1].Y - 3.0 && (double)Wiring._teleport[0].Y < (double)Wiring._teleport[1].Y))
                return;
            Rectangle[] rectangleArray = new Rectangle[2];
            rectangleArray[0].X = (int)((double)Wiring._teleport[0].X * 16.0);
            rectangleArray[0].Width = 48;
            rectangleArray[0].Height = 48;
            rectangleArray[0].Y = (int)((double)Wiring._teleport[0].Y * 16.0 - (double)rectangleArray[0].Height);
            rectangleArray[1].X = (int)((double)Wiring._teleport[1].X * 16.0);
            rectangleArray[1].Width = 48;
            rectangleArray[1].Height = 48;
            rectangleArray[1].Y = (int)((double)Wiring._teleport[1].Y * 16.0 - (double)rectangleArray[1].Height);
            for (int index1 = 0; index1 < 2; ++index1)
            {
                Vector2 vector2_1 = new Vector2((float)(rectangleArray[1].X - rectangleArray[0].X), (float)(rectangleArray[1].Y - rectangleArray[0].Y));
                if (index1 == 1)
                    vector2_1 = new Vector2((float)(rectangleArray[0].X - rectangleArray[1].X), (float)(rectangleArray[0].Y - rectangleArray[1].Y));
                for (int playerIndex = 0; playerIndex < (int)byte.MaxValue; ++playerIndex)
                {
                    if (Main.player[playerIndex].active && !Main.player[playerIndex].dead && (!Main.player[playerIndex].teleporting && rectangleArray[index1].Intersects(Main.player[playerIndex].getRect())))
                    {
                        Vector2 vector2_2 = Main.player[playerIndex].position + vector2_1;
                        Main.player[playerIndex].teleporting = true;
                        if (Main.netMode == 2)
                            RemoteClient.CheckSection(playerIndex, vector2_2, 1);
                        Main.player[playerIndex].Teleport(vector2_2, 0, 0);
                        if (Main.netMode == 2)
                            NetMessage.SendData(65, -1, -1, "", 0, (float)playerIndex, vector2_2.X, vector2_2.Y, 0, 0, 0);
                    }
                }
                for (int index2 = 0; index2 < 200; ++index2)
                {
                    if (Main.npc[index2].active && !Main.npc[index2].teleporting && (Main.npc[index2].lifeMax > 5 && !Main.npc[index2].boss) && (!Main.npc[index2].noTileCollide && rectangleArray[index1].Intersects(Main.npc[index2].getRect())))
                    {
                        Main.npc[index2].teleporting = true;
                        Main.npc[index2].Teleport(Main.npc[index2].position + vector2_1, 0, 0);
                    }
                }
            }
            for (int index = 0; index < (int)byte.MaxValue; ++index)
                Main.player[index].teleporting = false;
            for (int index = 0; index < 200; ++index)
                Main.npc[index].teleporting = false;
        }