Terraria.Wiring.HitSwitch C# (CSharp) Method

HitSwitch() public static method

public static HitSwitch ( int i, int j ) : void
i int
j int
return void
        public static void HitSwitch(int i, int j)
        {
            if (Main.tile[i, j] == null)
                return;
            if ((int)Main.tile[i, j].type == 135 || (int)Main.tile[i, j].type == 314)
            {
                Main.PlaySound(28, i * 16, j * 16, 0);
                Wiring.TripWire(i, j, 1, 1);
            }
            else if ((int)Main.tile[i, j].type == 136)
            {
                Main.tile[i, j].frameY = (int)Main.tile[i, j].frameY != 0 ? (short)0 : (short)18;
                Main.PlaySound(28, i * 16, j * 16, 0);
                Wiring.TripWire(i, j, 1, 1);
            }
            else if ((int)Main.tile[i, j].type == 144)
            {
                if ((int)Main.tile[i, j].frameY == 0)
                {
                    Main.tile[i, j].frameY = (short)18;
                    if (Main.netMode != 1)
                        Wiring.CheckMech(i, j, 18000);
                }
                else
                    Main.tile[i, j].frameY = (short)0;
                Main.PlaySound(28, i * 16, j * 16, 0);
            }
            else
            {
                if ((int)Main.tile[i, j].type != 132 && (int)Main.tile[i, j].type != 411)
                    return;
                short num1 = (short)36;
                int num2 = (int)Main.tile[i, j].frameX / 18 * -1;
                int num3 = (int)Main.tile[i, j].frameY / 18 * -1;
                int num4 = num2 % 4;
                if (num4 < -1)
                {
                    num4 += 2;
                    num1 = (short)-36;
                }
                int index1 = num4 + i;
                int index2 = num3 + j;
                if (Main.netMode != 1 && (int)Main.tile[index1, index2].type == 411)
                    Wiring.CheckMech(index1, index2, 60);
                for (int index3 = index1; index3 < index1 + 2; ++index3)
                {
                    for (int index4 = index2; index4 < index2 + 2; ++index4)
                    {
                        if ((int)Main.tile[index3, index4].type == 132 || (int)Main.tile[index3, index4].type == 411)
                            Main.tile[index3, index4].frameX += num1;
                    }
                }
                WorldGen.TileFrame(index1, index2, false, false);
                Main.PlaySound(28, i * 16, j * 16, 0);
                Wiring.TripWire(index1, index2, 2, 2);
            }
        }