mirror of
https://forgejo.xatacraft.ru/Sunshine/mkxp-sunshine.git
synced 2026-08-19 13:29:54 +00:00
726 lines
No EOL
24 KiB
Ruby
726 lines
No EOL
24 KiB
Ruby
# ======================= COLORS =======================
|
|
# i DO NOT know how these colors will look on other
|
|
# controllers, but on PS4 DualShock 4 controller these
|
|
# colors look somewhat close to the original colors.
|
|
# all of these colors are defined in RGB format.
|
|
# --------------------------------------------------------
|
|
# start house/tower/world machine = (75, 30, 255)
|
|
# sun = (255, 150, 30)
|
|
# barrens/mineshaft = (1, 1, 15)
|
|
# glen = (5, 15, 10)
|
|
# glen ruins = (1, 5, 1)
|
|
# glen village = (0, 6, 6)
|
|
# refuge = (255, 36, 89)
|
|
# refuge ground = (25, 2, 9)
|
|
# ========================================================
|
|
|
|
# each map ID corresponds to color
|
|
module GamepadMapColors
|
|
WORLD_MACHINE = Color.new(75, 30, 255)
|
|
SUN = Color.new(255, 150, 30)
|
|
BARRENS = Color.new(1, 1, 15)
|
|
GLEN = Color.new(5, 15, 10)
|
|
GLEN_RUINS = Color.new(1, 5, 1)
|
|
GLEN_VILLAGE = Color.new(0, 6, 6)
|
|
REFUGE = Color.new(255, 36, 89)
|
|
REFUGE_GROUND = Color.new(25, 2, 9)
|
|
|
|
COLORS = {
|
|
# Start House
|
|
2 => WORLD_MACHINE,
|
|
3 => WORLD_MACHINE,
|
|
4 => WORLD_MACHINE,
|
|
5 => WORLD_MACHINE,
|
|
20 => WORLD_MACHINE,
|
|
|
|
# Barrens
|
|
7 => BARRENS,
|
|
12 => BARRENS,
|
|
13 => BARRENS,
|
|
14 => BARRENS,
|
|
15 => BARRENS,
|
|
16 => BARRENS,
|
|
17 => BARRENS,
|
|
18 => BARRENS,
|
|
19 => BARRENS,
|
|
21 => BARRENS,
|
|
23 => BARRENS,
|
|
24 => BARRENS,
|
|
69 => BARRENS,
|
|
70 => BARRENS,
|
|
71 => BARRENS,
|
|
73 => BARRENS,
|
|
75 => BARRENS,
|
|
76 => BARRENS,
|
|
78 => BARRENS,
|
|
79 => BARRENS,
|
|
80 => BARRENS,
|
|
81 => BARRENS,
|
|
82 => BARRENS,
|
|
92 => BARRENS,
|
|
93 => BARRENS,
|
|
94 => BARRENS,
|
|
101 => BARRENS,
|
|
102 => BARRENS,
|
|
194 => BARRENS,
|
|
195 => BARRENS,
|
|
196 => BARRENS,
|
|
197 => BARRENS,
|
|
210 => BARRENS,
|
|
|
|
# Glen
|
|
8 => GLEN,
|
|
27 => GLEN,
|
|
28 => GLEN,
|
|
29 => GLEN_VILLAGE,
|
|
30 => GLEN_VILLAGE,
|
|
31 => GLEN_VILLAGE,
|
|
32 => GLEN_VILLAGE,
|
|
33 => GLEN_VILLAGE,
|
|
34 => GLEN_VILLAGE,
|
|
35 => GLEN_VILLAGE,
|
|
36 => GLEN_VILLAGE,
|
|
37 => GLEN,
|
|
38 => GLEN_RUINS,
|
|
39 => GLEN_RUINS,
|
|
40 => GLEN_RUINS,
|
|
41 => GLEN_RUINS,
|
|
42 => GLEN_RUINS,
|
|
44 => GLEN,
|
|
45 => GLEN,
|
|
46 => GLEN,
|
|
57 => GLEN_RUINS,
|
|
65 => GLEN_RUINS,
|
|
66 => GLEN,
|
|
107 => GLEN,
|
|
126 => GLEN_RUINS,
|
|
128 => GLEN,
|
|
133 => GLEN,
|
|
136 => GLEN,
|
|
177 => GLEN,
|
|
178 => GLEN,
|
|
191 => GLEN,
|
|
192 => GLEN,
|
|
193 => GLEN,
|
|
|
|
# Refuge Sky
|
|
9 => REFUGE,
|
|
22 => REFUGE,
|
|
25 => REFUGE,
|
|
47 => REFUGE,
|
|
48 => REFUGE,
|
|
49 => REFUGE,
|
|
52 => REFUGE,
|
|
53 => REFUGE,
|
|
54 => REFUGE,
|
|
59 => REFUGE,
|
|
74 => REFUGE,
|
|
95 => REFUGE,
|
|
108 => REFUGE,
|
|
109 => REFUGE,
|
|
111 => REFUGE,
|
|
116 => REFUGE,
|
|
117 => REFUGE,
|
|
119 => REFUGE,
|
|
120 => REFUGE,
|
|
121 => REFUGE,
|
|
122 => REFUGE,
|
|
124 => REFUGE,
|
|
125 => REFUGE,
|
|
129 => REFUGE,
|
|
130 => REFUGE,
|
|
132 => REFUGE,
|
|
186 => REFUGE,
|
|
260 => REFUGE,
|
|
|
|
# Refuge Ground
|
|
50 => REFUGE_GROUND,
|
|
51 => REFUGE_GROUND,
|
|
72 => REFUGE_GROUND,
|
|
83 => REFUGE_GROUND,
|
|
84 => REFUGE_GROUND,
|
|
85 => REFUGE_GROUND,
|
|
86 => REFUGE_GROUND,
|
|
87 => REFUGE_GROUND,
|
|
90 => REFUGE_GROUND,
|
|
91 => REFUGE_GROUND,
|
|
97 => WORLD_MACHINE,
|
|
98 => REFUGE_GROUND,
|
|
99 => REFUGE_GROUND,
|
|
104 => REFUGE_GROUND,
|
|
105 => REFUGE_GROUND,
|
|
106 => REFUGE_GROUND,
|
|
112 => REFUGE_GROUND,
|
|
113 => REFUGE_GROUND,
|
|
114 => REFUGE_GROUND,
|
|
115 => REFUGE_GROUND,
|
|
134 => REFUGE_GROUND,
|
|
135 => REFUGE_GROUND,
|
|
137 => REFUGE_GROUND,
|
|
176 => REFUGE_GROUND,
|
|
187 => REFUGE_GROUND,
|
|
|
|
# Tower
|
|
10 => WORLD_MACHINE,
|
|
155 => WORLD_MACHINE,
|
|
167 => WORLD_MACHINE,
|
|
173 => WORLD_MACHINE,
|
|
174 => WORLD_MACHINE,
|
|
175 => WORLD_MACHINE,
|
|
55 => WORLD_MACHINE,
|
|
164 => WORLD_MACHINE,
|
|
166 => WORLD_MACHINE,
|
|
168 => WORLD_MACHINE,
|
|
169 => WORLD_MACHINE,
|
|
170 => WORLD_MACHINE,
|
|
171 => WORLD_MACHINE,
|
|
172 => WORLD_MACHINE,
|
|
56 => WORLD_MACHINE,
|
|
139 => WORLD_MACHINE,
|
|
140 => WORLD_MACHINE,
|
|
141 => WORLD_MACHINE,
|
|
142 => WORLD_MACHINE,
|
|
143 => WORLD_MACHINE,
|
|
144 => WORLD_MACHINE,
|
|
145 => WORLD_MACHINE,
|
|
146 => WORLD_MACHINE,
|
|
147 => WORLD_MACHINE,
|
|
148 => WORLD_MACHINE,
|
|
149 => WORLD_MACHINE,
|
|
150 => WORLD_MACHINE,
|
|
151 => WORLD_MACHINE,
|
|
152 => WORLD_MACHINE,
|
|
153 => WORLD_MACHINE,
|
|
154 => WORLD_MACHINE,
|
|
63 => WORLD_MACHINE,
|
|
179 => WORLD_MACHINE,
|
|
156 => WORLD_MACHINE,
|
|
180 => WORLD_MACHINE,
|
|
181 => WORLD_MACHINE,
|
|
182 => WORLD_MACHINE,
|
|
183 => WORLD_MACHINE,
|
|
184 => WORLD_MACHINE,
|
|
185 => WORLD_MACHINE,
|
|
190 => WORLD_MACHINE,
|
|
60 => WORLD_MACHINE,
|
|
61 => WORLD_MACHINE,
|
|
62 => WORLD_MACHINE,
|
|
|
|
# Finale (Solstice)
|
|
224 => WORLD_MACHINE,
|
|
226 => WORLD_MACHINE,
|
|
241 => WORLD_MACHINE,
|
|
242 => WORLD_MACHINE,
|
|
243 => WORLD_MACHINE,
|
|
245 => WORLD_MACHINE,
|
|
249 => WORLD_MACHINE,
|
|
255 => WORLD_MACHINE,
|
|
258 => WORLD_MACHINE,
|
|
259 => WORLD_MACHINE,
|
|
}
|
|
end
|
|
|
|
module GamepadIcons
|
|
GAMEPADS = [nil,
|
|
Input::GamepadType::XBOX360,
|
|
Input::GamepadType::XBOXONE,
|
|
:series_x,
|
|
Input::GamepadType::PS3,
|
|
Input::GamepadType::PS4,
|
|
Input::GamepadType::PS5,
|
|
Input::GamepadType::SWITCH_PRO,
|
|
Input::GamepadType::JOYCON_PAIR,
|
|
:luna,
|
|
:ouya,
|
|
:stadia,
|
|
:steam_controller,
|
|
:steam_deck,
|
|
Input::GamepadType::GAMECUBE
|
|
]
|
|
|
|
ICONS = {
|
|
# SDL supported types, can be detected automatically
|
|
# SDL_GAMEPAD_TYPE_UNKNOWN => UNKNOWN
|
|
# SDL_GAMEPAD_TYPE_STANDARD => STANDART
|
|
# SDL_GAMEPAD_TYPE_XBOX360 => XBOX360
|
|
# SDL_GAMEPAD_TYPE_XBOXONE => XBOXONE
|
|
# SDL_GAMEPAD_TYPE_PS3 => PS3
|
|
# SDL_GAMEPAD_TYPE_PS4 => PS4
|
|
# SDL_GAMEPAD_TYPE_PS5 => PS5
|
|
# SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_PRO => SWITCH_PRO
|
|
# SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_LEFT => JOYCON_LEFT
|
|
# SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT => JOYCON_RIGHT
|
|
# SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_PAIR => JOYCON_PAIR
|
|
# SDL_GAMEPAD_TYPE_GAMECUBE => GAMECUBE
|
|
|
|
Input::GamepadType::UNKNOWN => {
|
|
:extends => Input::GamepadType::STANDART,
|
|
:icon => [8, 16],
|
|
},
|
|
Input::GamepadType::STANDART => {
|
|
:icon => [10, 13],
|
|
:face_skinnable => true,
|
|
:buttons => {
|
|
Input::GamepadButton::INVALID => [9, 16],
|
|
Input::GamepadButton::SOUTH => [0, 0],
|
|
Input::GamepadButton::EAST => [3, 0],
|
|
Input::GamepadButton::WEST => [1, 0],
|
|
Input::GamepadButton::NORTH => [2, 0],
|
|
Input::GamepadButton::BACK => [4, 5],
|
|
Input::GamepadButton::GUIDE => [6, 13],
|
|
Input::GamepadButton::START => [5, 5],
|
|
Input::GamepadButton::LEFT_STICK => [4, 3],
|
|
Input::GamepadButton::RIGHT_STICK => [5, 3],
|
|
Input::GamepadButton::LEFT_SHOULDER => [6, 3],
|
|
Input::GamepadButton::RIGHT_SHOULDER => [7, 3],
|
|
Input::GamepadButton::DPAD_UP => [7, 0],
|
|
Input::GamepadButton::DPAD_DOWN => [4, 0],
|
|
Input::GamepadButton::DPAD_LEFT => [5, 0],
|
|
Input::GamepadButton::DPAD_RIGHT => [6, 0],
|
|
Input::GamepadButton::MISC1 => [0, 18],
|
|
Input::GamepadButton::RIGHT_PADDLE1 => [7, 6],
|
|
Input::GamepadButton::LEFT_PADDLE1 => [6, 6],
|
|
Input::GamepadButton::RIGHT_PADDLE2 => [7, 7],
|
|
Input::GamepadButton::LEFT_PADDLE2 => [6, 7],
|
|
Input::GamepadButton::TOUCHPAD => [8, 16],
|
|
Input::GamepadButton::MISC2 => [1, 18],
|
|
Input::GamepadButton::MISC3 => [2, 18],
|
|
Input::GamepadButton::MISC4 => [3, 18],
|
|
Input::GamepadButton::MISC5 => [4, 18],
|
|
Input::GamepadButton::MISC6 => [5, 18],
|
|
},
|
|
:axes => {
|
|
Input::GamepadAxis::INVALID => [[9, 16], [9, 16]],
|
|
Input::GamepadAxis::LEFTX => [[6, 1], [5, 1]],
|
|
Input::GamepadAxis::LEFTY => [[4, 1], [7, 1]],
|
|
Input::GamepadAxis::RIGHTX => [[6, 2], [5, 2]],
|
|
Input::GamepadAxis::RIGHTY => [[4, 2], [7, 2]],
|
|
Input::GamepadAxis::LEFT_TRIGGER => [[6, 4], [9, 16]],
|
|
Input::GamepadAxis::RIGHT_TRIGGER => [[7, 4], [9, 16]],
|
|
}
|
|
},
|
|
Input::GamepadType::XBOX360 => {
|
|
:extends => Input::GamepadType::STANDART,
|
|
:icon => [8, 14],
|
|
:buttons => {
|
|
Input::GamepadButton::GUIDE => [1, 17],
|
|
}
|
|
},
|
|
Input::GamepadType::XBOXONE => {
|
|
:extends => Input::GamepadType::XBOX360,
|
|
:icon => [10, 14],
|
|
:buttons => {
|
|
Input::GamepadButton::BACK => [4, 4],
|
|
Input::GamepadButton::START => [5, 4],
|
|
Input::GamepadButton::MISC1 => [5, 6],
|
|
}
|
|
},
|
|
Input::GamepadType::PS3 => {
|
|
:extends => Input::GamepadType::STANDART,
|
|
:icon => [8, 12],
|
|
:buttons => {
|
|
Input::GamepadButton::SOUTH => [0, 5],
|
|
Input::GamepadButton::EAST => [3, 5],
|
|
Input::GamepadButton::WEST => [1, 5],
|
|
Input::GamepadButton::NORTH => [2, 5],
|
|
Input::GamepadButton::BACK => [5, 12],
|
|
Input::GamepadButton::GUIDE => [6, 18],
|
|
Input::GamepadButton::START => [6, 12],
|
|
Input::GamepadButton::LEFT_SHOULDER => [6, 9],
|
|
Input::GamepadButton::RIGHT_SHOULDER => [7, 9],
|
|
},
|
|
:axes => {
|
|
Input::GamepadAxis::LEFT_TRIGGER => [[6, 10], [9, 16]],
|
|
Input::GamepadAxis::RIGHT_TRIGGER => [[7, 10], [9, 16]],
|
|
}
|
|
},
|
|
Input::GamepadType::PS4 => {
|
|
:extends => Input::GamepadType::PS3,
|
|
:icon => [9, 12],
|
|
:buttons => {
|
|
Input::GamepadButton::BACK => [6, 11],
|
|
Input::GamepadButton::START => [5, 11],
|
|
Input::GamepadButton::TOUCHPAD => [4, 11],
|
|
}
|
|
},
|
|
Input::GamepadType::PS5 => {
|
|
:extends => Input::GamepadType::PS4,
|
|
:icon => [10, 12],
|
|
:buttons => {
|
|
Input::GamepadButton::BACK => [4, 9],
|
|
Input::GamepadButton::GUIDE => [11, 17],
|
|
Input::GamepadButton::START => [5, 9],
|
|
Input::GamepadButton::TOUCHPAD => [4, 10],
|
|
Input::GamepadButton::MISC1 => [7, 11],
|
|
}
|
|
},
|
|
Input::GamepadType::SWITCH_PRO => {
|
|
:extends => Input::GamepadType::JOYCON_PAIR,
|
|
:icon => [10, 13],
|
|
:buttons => {
|
|
Input::GamepadButton::DPAD_UP => [7, 0],
|
|
Input::GamepadButton::DPAD_DOWN => [4, 0],
|
|
Input::GamepadButton::DPAD_LEFT => [5, 0],
|
|
Input::GamepadButton::DPAD_RIGHT => [6, 0],
|
|
}
|
|
},
|
|
Input::GamepadType::JOYCON_PAIR => {
|
|
:extends => Input::GamepadType::STANDART,
|
|
:icon => [9, 11],
|
|
:buttons => {
|
|
Input::GamepadButton::SOUTH => [3, 0],
|
|
Input::GamepadButton::EAST => [0, 0],
|
|
Input::GamepadButton::WEST => [2, 0],
|
|
Input::GamepadButton::NORTH => [1, 0],
|
|
Input::GamepadButton::BACK => [5, 13],
|
|
Input::GamepadButton::START => [4, 13],
|
|
Input::GamepadButton::DPAD_UP => [3, 15],
|
|
Input::GamepadButton::DPAD_DOWN => [0, 15],
|
|
Input::GamepadButton::DPAD_LEFT => [1, 15],
|
|
Input::GamepadButton::DPAD_RIGHT => [2, 15],
|
|
Input::GamepadButton::LEFT_SHOULDER => [6, 8],
|
|
Input::GamepadButton::RIGHT_SHOULDER => [7, 8],
|
|
Input::GamepadButton::MISC1 => [4, 14],
|
|
},
|
|
:axes => {
|
|
Input::GamepadAxis::LEFT_TRIGGER => [[6, 14], [9, 16]],
|
|
Input::GamepadAxis::RIGHT_TRIGGER => [[7, 14], [9, 16]],
|
|
}
|
|
},
|
|
Input::GamepadType::JOYCON_LEFT => {
|
|
:extends => Input::GamepadType::JOYCON_PAIR,
|
|
:icon => [10, 16],
|
|
},
|
|
Input::GamepadType::JOYCON_RIGHT => {
|
|
:extends => Input::GamepadType::JOYCON_PAIR,
|
|
:icon => [11, 16],
|
|
},
|
|
Input::GamepadType::GAMECUBE => {
|
|
:extends => Input::GamepadType::STANDART,
|
|
:face_skinnable => false,
|
|
:icon => [8, 11],
|
|
:buttons => {
|
|
Input::GamepadButton::SOUTH => [8, 10],
|
|
Input::GamepadButton::EAST => [7, 15],
|
|
Input::GamepadButton::WEST => [9, 10],
|
|
Input::GamepadButton::NORTH => [5, 15],
|
|
Input::GamepadButton::START => [5, 14],
|
|
Input::GamepadButton::LEFT_STICK => [10, 11],
|
|
Input::GamepadButton::RIGHT_STICK => [10, 10],
|
|
Input::GamepadButton::RIGHT_SHOULDER => [4, 15],
|
|
},
|
|
:axes => {
|
|
Input::GamepadAxis::LEFT_TRIGGER => [[6, 15], [9, 16]],
|
|
Input::GamepadAxis::RIGHT_TRIGGER => [[0, 17], [9, 16]],
|
|
Input::GamepadAxis::LEFTX => [[10, 9], [9, 9]],
|
|
Input::GamepadAxis::LEFTY => [[8, 9], [11, 9]],
|
|
Input::GamepadAxis::RIGHTX => [[10, 8], [9, 8]],
|
|
Input::GamepadAxis::RIGHTY => [[8, 8], [11, 8]],
|
|
}
|
|
},
|
|
|
|
# GUID gamepads
|
|
:series_x => {
|
|
:extends => Input::GamepadType::XBOXONE,
|
|
:icon => [9, 14],
|
|
:buttons => {
|
|
Input::GamepadButton::MISC1 => [5, 6],
|
|
}
|
|
},
|
|
:luna => {
|
|
:extends => Input::GamepadType::XBOXONE,
|
|
:icon => [10, 11],
|
|
:buttons => {
|
|
Input::GamepadButton::BACK => [7, 13],
|
|
Input::GamepadButton::GUIDE => [7, 12],
|
|
Input::GamepadButton::START => [6, 12],
|
|
}
|
|
},
|
|
:ouya => {
|
|
:extends => Input::GamepadType::PS3,
|
|
:icon => [11, 11],
|
|
:buttons => {
|
|
Input::GamepadButton::SOUTH => [0, 10],
|
|
Input::GamepadButton::EAST => [3, 10],
|
|
Input::GamepadButton::WEST => [1, 10],
|
|
Input::GamepadButton::NORTH => [2, 10],
|
|
Input::GamepadButton::GUIDE => [2, 17],
|
|
Input::GamepadButton::TOUCHPAD => [4, 12],
|
|
}
|
|
},
|
|
:steam_controller => {
|
|
:extends => Input::GamepadType::XBOXONE,
|
|
:icon => [8, 13],
|
|
:buttons => {
|
|
Input::GamepadButton::GUIDE => [5, 10],
|
|
Input::GamepadButton::DPAD_UP => [7, 17],
|
|
Input::GamepadButton::DPAD_DOWN => [4, 17],
|
|
Input::GamepadButton::DPAD_LEFT => [5, 17],
|
|
Input::GamepadButton::DPAD_RIGHT => [6, 17],
|
|
Input::GamepadButton::RIGHT_PADDLE1 => [7, 8],
|
|
Input::GamepadButton::LEFT_PADDLE1 => [6, 8],
|
|
Input::GamepadButton::RIGHT_STICK => [3, 17],
|
|
},
|
|
:axes => {
|
|
Input::GamepadAxis::RIGHTX => [[6, 16], [5, 16]],
|
|
Input::GamepadAxis::RIGHTY => [[4, 16], [7, 16]],
|
|
}
|
|
},
|
|
:steam_deck => {
|
|
:extends => Input::GamepadType::XBOXONE,
|
|
:icon => [9, 13],
|
|
:buttons => {
|
|
Input::GamepadButton::BACK => [4, 4],
|
|
Input::GamepadButton::GUIDE => [4, 8],
|
|
Input::GamepadButton::MISC1 => [5, 8],
|
|
Input::GamepadButton::START => [5, 4],
|
|
Input::GamepadButton::LEFT_SHOULDER => [6, 9],
|
|
Input::GamepadButton::RIGHT_SHOULDER => [7, 9],
|
|
},
|
|
:axes => {
|
|
Input::GamepadAxis::LEFT_TRIGGER => [[6, 10], [9, 16]],
|
|
Input::GamepadAxis::RIGHT_TRIGGER => [[7, 10], [9, 16]],
|
|
}
|
|
},
|
|
:stadia => {
|
|
:extends => Input::GamepadType::XBOXONE,
|
|
:icon => [10, 13],
|
|
:buttons => {
|
|
Input::GamepadButton::BACK => [5, 8],
|
|
Input::GamepadButton::GUIDE => [8, 17],
|
|
Input::GamepadButton::LEFT_SHOULDER => [6, 9],
|
|
Input::GamepadButton::RIGHT_SHOULDER => [7, 9],
|
|
},
|
|
:axes => {
|
|
Input::GamepadAxis::LEFT_TRIGGER => [[6, 10], [9, 16]],
|
|
Input::GamepadAxis::RIGHT_TRIGGER => [[7, 10], [9, 16]],
|
|
}
|
|
}
|
|
}
|
|
|
|
GUIDS = {
|
|
"030000006f0e00001301000000000000" => :series_x,
|
|
"030000006f0e00001304000000000000" => :series_x,
|
|
"030000006f0e00001302000000000000" => :series_x,
|
|
"030000006f0e00003901000000000000" => :series_x,
|
|
"030000006f0e00001413000000000000" => :series_x,
|
|
"03000000ab1200000103000000000000" => :series_x,
|
|
"03000000ad1b000000f9000000000000" => :series_x,
|
|
"030000005e040000130b000000000000" => :series_x,
|
|
"03000000373500000411000023000000" => :series_x,
|
|
"030000005e040000050b000003090000" => :series_x,
|
|
"030000005e040000130b000001050000" => :series_x,
|
|
"030000005e040000130b000013050000" => :series_x,
|
|
"030000005e040000130b000015050000" => :series_x,
|
|
"030000005e040000130b000007050000" => :series_x,
|
|
"030000005e040000130b000017050000" => :series_x,
|
|
"030000005e040000130b000022050000" => :series_x,
|
|
"030000005e040000220b000017050000" => :series_x,
|
|
"030000005e040000220b000021050000" => :series_x,
|
|
"03000000c82d00000a20000000020000" => :series_x,
|
|
"03000000c82d00000020000000000000" => :series_x,
|
|
"06000000c82d00000020000006010000" => :series_x,
|
|
"030000005e040000120b00000b050000" => :series_x,
|
|
"030000005e040000120b000016050000" => :series_x,
|
|
"030000005e040000120b000017050000" => :series_x,
|
|
"060000005e040000120b000001050000" => :series_x,
|
|
"030000006f0e0000d702000006640000" => :series_x,
|
|
"030000006f0e0000d802000006640000" => :series_x,
|
|
"030000006f0e0000ef02000007640000" => :series_x,
|
|
"03000000d62000000540000001010000" => :series_x,
|
|
"03000000d62000000520000050010000" => :series_x,
|
|
"03000000d62000000b20000001010000" => :series_x,
|
|
"03000000d62000000f20000001010000" => :series_x,
|
|
"03000000d62000006520000002010000" => :series_x,
|
|
"030000004b2900000430000011000000" => :series_x,
|
|
"030000005e040000120b000001050000" => :series_x,
|
|
"030000005e040000120b000005050000" => :series_x,
|
|
"030000005e040000120b000007050000" => :series_x,
|
|
"030000005e040000120b000009050000" => :series_x,
|
|
"030000005e040000120b00000d050000" => :series_x,
|
|
"030000005e040000120b00000f050000" => :series_x,
|
|
"030000005e040000120b000011050000" => :series_x,
|
|
"030000005e040000120b000014050000" => :series_x,
|
|
"030000005e040000120b000015050000" => :series_x,
|
|
"030000005e040000130b000005050000" => :series_x,
|
|
"050000005e040000130b000001050000" => :series_x,
|
|
"050000005e040000130b000005050000" => :series_x,
|
|
"050000005e040000130b000007050000" => :series_x,
|
|
"050000005e040000130b000009050000" => :series_x,
|
|
"050000005e040000130b000011050000" => :series_x,
|
|
"050000005e040000130b000013050000" => :series_x,
|
|
"050000005e040000130b000015050000" => :series_x,
|
|
"050000005e040000130b000017050000" => :series_x,
|
|
"060000005e040000120b000007050000" => :series_x,
|
|
"060000005e040000120b00000b050000" => :series_x,
|
|
"060000005e040000120b00000d050000" => :series_x,
|
|
"060000005e040000120b00000f050000" => :series_x,
|
|
"050000005e040000130b000022050000" => :series_x,
|
|
"060000005e040000120b000011050000" => :series_x,
|
|
"32386235353630393033393135613831" => :series_x,
|
|
"050000005e040000120b000000783f00" => :series_x,
|
|
"050000005e040000120b000000783f80" => :series_x,
|
|
"050000005e040000130b0000ffff3f00" => :series_x,
|
|
"65633038363832353634653836396239" => :series_x,
|
|
"050000005e040000130b0000df870001" => :series_x,
|
|
"050000005e040000130b0000ff870001" => :series_x,
|
|
"0300fa675e040000ff02000000007801" => :series_x, # this is my gamepad, but for some reason it is not in the gamecontrollerdb.txt
|
|
"03000000491900001904000000000000" => :luna,
|
|
"03000000710100001904000000000000" => :luna,
|
|
"03000000491900001904000001010000" => :luna,
|
|
"03000000710100001904000000010000" => :luna,
|
|
"03000000491900001904000011010000" => :luna,
|
|
"05000000710100001904000000010000" => :luna,
|
|
"32333634613735616163326165323731" => :luna,
|
|
"416d617a6f6e2047616d6520436f6e74" => :luna,
|
|
"4c756e612047616d6570616400000000" => :luna,
|
|
"03000000362800000100000000000000" => :ouya,
|
|
"05000000362800000100000002010000" => :ouya,
|
|
"05000000362800000100000003010000" => :ouya,
|
|
"05000000362800000100000004010000" => :ouya,
|
|
"39383335313438623439373538343266" => :ouya,
|
|
"4f5559412047616d6520436f6e74726f" => :ouya,
|
|
"03000000de2800000112000001000000" => :steam_controller,
|
|
"03000000de2800000112000011010000" => :steam_controller,
|
|
"03000000de2800000211000001000000" => :steam_controller,
|
|
"03000000de2800000211000011010000" => :steam_controller,
|
|
"03000000de2800004211000001000000" => :steam_controller,
|
|
"03000000de2800004211000011010000" => :steam_controller,
|
|
"03000000de280000fc11000001000000" => :steam_controller,
|
|
"05000000de2800000212000001000000" => :steam_controller,
|
|
"05000000de2800000511000001000000" => :steam_controller,
|
|
"05000000de2800000611000001000000" => :steam_controller,
|
|
"30623739343039643830333266346439" => :steam_controller,
|
|
"31643365666432386133346639383937" => :steam_controller,
|
|
"03000000de2800000512000010010000" => :steam_deck,
|
|
"03000000de2800000512000011010000" => :steam_deck,
|
|
"03000000d11800000094000000000000" => :stadia,
|
|
"03000000d11800000094000000010000" => :stadia,
|
|
"03000000d11800000094000011010000" => :stadia,
|
|
"05000000d11800000094000000010000" => :stadia,
|
|
"35383633353935396534393230616564" => :stadia,
|
|
"476f6f676c65204c4c43205374616469" => :stadia,
|
|
"5374616469614e3848532d6532633400" => :stadia,
|
|
}
|
|
|
|
class << self
|
|
def icon(gamepad_type = nil)
|
|
current_gamepad = get_gamepad_type(gamepad_type)
|
|
|
|
debug_string = ""
|
|
iterations = 0
|
|
|
|
result = nil
|
|
while !result
|
|
if !ICONS[current_gamepad].has_key?(:icon)
|
|
current_gamepad = ICONS[current_gamepad][:extends]
|
|
debug_string << "gamepad " << current_gamepad << "\n"
|
|
iterations += 1
|
|
if iterations > 10
|
|
puts debug_string
|
|
result = [8, 16]
|
|
end
|
|
next
|
|
end
|
|
result = ICONS[current_gamepad][:icon].clone
|
|
current_gamepad = ICONS[current_gamepad][:extends]
|
|
end
|
|
result
|
|
end
|
|
|
|
def face_skinnable(gamepad_type = nil)
|
|
current_gamepad = get_gamepad_type(gamepad_type)
|
|
|
|
debug_string = ""
|
|
iterations = 0
|
|
|
|
result = nil
|
|
while result == nil
|
|
if !ICONS[current_gamepad].has_key?(:face_skinnable)
|
|
current_gamepad = ICONS[current_gamepad][:extends]
|
|
debug_string << "gamepad " << current_gamepad << "\n"
|
|
iterations += 1
|
|
if iterations > 10
|
|
puts debug_string
|
|
result = false
|
|
end
|
|
next
|
|
end
|
|
result = ICONS[current_gamepad][:face_skinnable]
|
|
current_gamepad = ICONS[current_gamepad][:extends]
|
|
end
|
|
result
|
|
end
|
|
|
|
def button(id, skinned = true, gamepad_type = nil)
|
|
current_gamepad = get_gamepad_type(gamepad_type)
|
|
|
|
debug_string = ""
|
|
iterations = 0
|
|
|
|
result = nil
|
|
while !result
|
|
if !ICONS[current_gamepad].has_key?(:buttons)
|
|
current_gamepad = ICONS[current_gamepad][:extends]
|
|
debug_string << current_gamepad << "\n"
|
|
iterations += 1
|
|
if iterations > 10
|
|
puts debug_string
|
|
result = [8, 16]
|
|
end
|
|
next
|
|
end
|
|
result = ICONS[current_gamepad][:buttons][id].clone
|
|
current_gamepad = ICONS[current_gamepad][:extends]
|
|
end
|
|
if skinned
|
|
if id == Input::GamepadButton::SOUTH ||
|
|
id == Input::GamepadButton::EAST ||
|
|
id == Input::GamepadButton::WEST ||
|
|
id == Input::GamepadButton::NORTH
|
|
result[1] += Settings[:gamepad_face_style]
|
|
end
|
|
end
|
|
result
|
|
end
|
|
|
|
def axis(id, dir, gamepad_type = nil)
|
|
current_gamepad = get_gamepad_type(gamepad_type)
|
|
|
|
debug_string = ""
|
|
iterations = 0
|
|
|
|
result = nil
|
|
while !result
|
|
if !ICONS[current_gamepad].has_key?(:axes)
|
|
current_gamepad = ICONS[current_gamepad][:extends]
|
|
debug_string << "gamepad " << current_gamepad << "\n"
|
|
iterations += 1
|
|
if iterations > 10
|
|
puts debug_string
|
|
result = [8, 16]
|
|
end
|
|
next
|
|
end
|
|
axis = ICONS[current_gamepad][:axes][id]
|
|
result = axis[1 - dir].clone if axis
|
|
current_gamepad = ICONS[current_gamepad][:extends]
|
|
end
|
|
result
|
|
end
|
|
|
|
def get_gamepad_type(gamepad_override = nil)
|
|
current_gamepad = gamepad_override || GamepadIcons::GAMEPADS[Settings[:gamepad_type]]
|
|
if !ICONS.has_key?(current_gamepad)
|
|
current_gamepad = GUIDS[Input::GamepadType.current_guid]
|
|
if !ICONS.has_key?(current_gamepad)
|
|
current_gamepad = Input::GamepadType.current_type
|
|
if !ICONS.has_key?(current_gamepad)
|
|
current_gamepad = Input::GamepadType::UNKNOWN
|
|
end
|
|
end
|
|
end
|
|
current_gamepad
|
|
end
|
|
end
|
|
end |