A game about forced loneliness, made by TACStudios
1#if UNITY_EDITOR || UNITY_SWITCH || UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX || UNITY_WSA
2using UnityEngine.InputSystem.Layouts;
3
4namespace UnityEngine.InputSystem.Switch
5{
6 /// <summary>
7 /// Adds support for Switch NPad controllers.
8 /// </summary>
9#if UNITY_DISABLE_DEFAULT_INPUT_PLUGIN_INITIALIZATION
10 public
11#else
12 internal
13#endif
14 static class SwitchSupportHID
15 {
16 public static void Initialize()
17 {
18 #if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WSA
19 InputSystem.RegisterLayout<SwitchProControllerHID>(
20 matches: new InputDeviceMatcher()
21 .WithInterface("HID")
22 .WithCapability("vendorId", 0x057e) // Nintendo
23 .WithCapability("productId", 0x2009)); // Pro Controller.
24 InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
25 new InputDeviceMatcher()
26 .WithInterface("HID")
27 .WithCapability("vendorId", 0x0f0d) // Hori Co., Ltd
28 .WithCapability("productId", 0x0092)); // Pokken Tournament DX Pro Pad
29 InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
30 new InputDeviceMatcher()
31 .WithInterface("HID")
32 .WithCapability("vendorId", 0x0f0d) // Hori Co., Ltd
33 .WithCapability("productId", 0x00aa)); // Real Arcade Pro
34 InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
35 new InputDeviceMatcher()
36 .WithInterface("HID")
37 .WithCapability("vendorId", 0x0f0d) // Hori Co., Ltd
38 .WithCapability("productId", 0x00c1)); // HORIPAD for Nintendo Switch
39 InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
40 new InputDeviceMatcher()
41 .WithInterface("HID")
42 .WithCapability("vendorId", 0x0f0d) // Hori Co., Ltd
43 .WithCapability("productId", 0x00dc)); // Fighting Commander
44 InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
45 new InputDeviceMatcher()
46 .WithInterface("HID")
47 .WithCapability("vendorId", 0x0f0d) // Hori Co., Ltd
48 .WithCapability("productId", 0x00f6)); // HORI Wireless Switch Pad
49 InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
50 new InputDeviceMatcher()
51 .WithInterface("HID")
52 .WithCapability("vendorId", 0x0e6f) // PDP
53 .WithCapability("productId", 0x0180)); // Faceoff Wired Pro Controller for Nintendo Switch
54 InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
55 new InputDeviceMatcher()
56 .WithInterface("HID")
57 .WithCapability("vendorId", 0x0e6f) // PDP
58 .WithCapability("productId", 0x0181)); // Faceoff Deluxe Wired Pro Controller for Nintendo Switch
59 InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
60 new InputDeviceMatcher()
61 .WithInterface("HID")
62 .WithCapability("vendorId", 0x0e6f) // PDP
63 .WithCapability("productId", 0x0185)); // Wired Fight Pad Pro
64 InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
65 new InputDeviceMatcher()
66 .WithInterface("HID")
67 .WithCapability("vendorId", 0x0e6f) // PDP
68 .WithCapability("productId", 0x0186)); // Afterglow Wireless Switch Controller - "Nintento Wireless Gamepad"
69 InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
70 new InputDeviceMatcher()
71 .WithInterface("HID")
72 .WithCapability("vendorId", 0x0e6f) // PDP
73 .WithCapability("productId", 0x0187)); // Rock Candy Wired Controller for Nintendo Switch
74 InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
75 new InputDeviceMatcher()
76 .WithInterface("HID")
77 .WithCapability("vendorId", 0x20d6) // PowerA
78 .WithCapability("productId", 0xa712)); // NSW Fusion Wired FightPad
79 InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
80 new InputDeviceMatcher()
81 .WithInterface("HID")
82 .WithCapability("vendorId", 0x20d6) // PowerA
83 .WithCapability("productId", 0xa716)); // NSW Fusion Pro Controller
84
85 // gamepads below currently break Mac Editor and Standalone
86 #if !(UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
87 InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
88 new InputDeviceMatcher()
89 .WithInterface("HID")
90 .WithCapability("vendorId", 0x0e6f) // PDP
91 .WithCapability("productId", 0x0184)); // Faceoff Premiere Wired Pro Controller for Nintendo Switch
92 InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
93 new InputDeviceMatcher()
94 .WithInterface("HID")
95 .WithCapability("vendorId", 0x0e6f) // PDP
96 .WithCapability("productId", 0x0188)); // Afterglow Deluxe+ Audio Wired Controller
97 InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
98 new InputDeviceMatcher()
99 .WithInterface("HID")
100 .WithCapability("vendorId", 0x20d6) // PowerA
101 .WithCapability("productId", 0xa714)); // NSW Spectra Wired Controller
102 InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
103 new InputDeviceMatcher()
104 .WithInterface("HID")
105 .WithCapability("vendorId", 0x20d6) // PowerA
106 .WithCapability("productId", 0xa715)); // Fusion Wireless Arcade Stick
107 #endif
108 #endif
109 }
110 }
111}
112#endif