@@ -182,13 +182,15 @@ public void updateCustom(SolApplication cmp, SolInputManager.Ptr[] ptrs, boolean
182182 }
183183
184184 // Keyboard items
185- if (selectedIndex >= controllerItems ) {
186185 Gdx .input .setInputProcessor (new InputAdapter () {
187186 @ Override
188187 public boolean keyUp (int keycode ) {
189- InputConfigItem item = itemsList .get (selectedIndex );
190- item .setInputKey (Input .Keys .toString (keycode ));
191- itemsList .set (selectedIndex , item );
188+ if (selectedIndex >= controllerItems ) {
189+ InputConfigItem item = itemsList .get (selectedIndex );
190+ item .setInputKey (Input .Keys .toString (keycode ));
191+ itemsList .set (selectedIndex , item );
192+ }
193+
192194 Gdx .input .setInputProcessor (null );
193195 Controllers .clearListeners ();
194196
@@ -197,85 +199,87 @@ public boolean keyUp(int keycode) {
197199 }
198200 });
199201 // Controller items
200- } else {
201- // setup the listener that prints events to the console
202- Controllers . addListener ( new ControllerListener ( ) {
203- public int indexOf (Controller controller ) {
204- return Controllers . getControllers (). indexOf ( controller , true );
205- }
206-
207- @ Override
208- public void connected ( Controller controller ) {
209- }
210-
211- @ Override
212- public void disconnected ( Controller controller ) {
213- }
214-
215- @ Override
216- public boolean buttonDown ( Controller controller , int buttonIndex ) {
217- // Do nothing on button down - register the button up event
218- return true ;
219- }
220-
221- @ Override
222- public boolean buttonUp ( Controller controller , int buttonIndex ) {
223- System . out . println ( "#" + indexOf ( controller ) + ", button " + buttonIndex + " up" );
224-
202+ // setup the listener that prints events to the console
203+ Controllers . addListener ( new ControllerListener () {
204+ public int indexOf ( Controller controller ) {
205+ return Controllers . getControllers (). indexOf (controller , true );
206+ }
207+
208+ @ Override
209+ public void connected ( Controller controller ) {
210+ }
211+
212+ @ Override
213+ public void disconnected ( Controller controller ) {
214+ }
215+
216+ @ Override
217+ public boolean buttonDown ( Controller controller , int buttonIndex ) {
218+ // Do nothing on button down - register the button up event
219+ return true ;
220+ }
221+
222+ @ Override
223+ public boolean buttonUp ( Controller controller , int buttonIndex ) {
224+ System . out . println ( "#" + indexOf ( controller ) + ", button " + buttonIndex + " up" );
225+
226+ if ( selectedIndex < controllerItems ) {
225227 InputConfigItem item = itemsList .get (selectedIndex );
226228 item .setIsAxis (false );
227229 item .setControllerInput (buttonIndex );
228230 item .setInputKey ("Button: " + buttonIndex );
229231 itemsList .set (selectedIndex , item );
232+ }
230233
231- Gdx .input .setInputProcessor (null );
232- Controllers .clearListeners ();
234+ Gdx .input .setInputProcessor (null );
235+ Controllers .clearListeners ();
233236
234- isEnterNewKey = false ;
235- return true ; // return true to indicate the event was handled
236- }
237+ isEnterNewKey = false ;
238+ return true ; // return true to indicate the event was handled
239+ }
237240
238- @ Override
239- public boolean axisMoved (Controller controller , int axisIndex , float value ) {
240- System .out .println ("#" + indexOf (controller ) + ", axis " + axisIndex + ": " + value );
241+ @ Override
242+ public boolean axisMoved (Controller controller , int axisIndex , float value ) {
243+ System .out .println ("#" + indexOf (controller ) + ", axis " + axisIndex + ": " + value );
241244
242- if (value > 0.5f || value < -0.5f ) {
245+ if (value > 0.5f || value < -0.5f ) {
246+ if (selectedIndex < controllerItems ) {
243247 InputConfigItem item = itemsList .get (selectedIndex );
244248 item .setIsAxis (true );
245249 item .setControllerInput (axisIndex );
246250 item .setInputKey ("Axis: " + axisIndex );
247251 itemsList .set (selectedIndex , item );
248-
249- Gdx .input .setInputProcessor (null );
250- Controllers .clearListeners ();
251-
252- isEnterNewKey = false ;
253-
254252 }
255- return true ;
256- }
257-
258- @ Override
259- public boolean povMoved (Controller controller , int povIndex , PovDirection value ) {
260- return false ;
261- }
262253
263- @ Override
264- public boolean xSliderMoved (Controller controller , int sliderIndex , boolean value ) {
265- return false ;
266- }
254+ Gdx .input .setInputProcessor (null );
255+ Controllers .clearListeners ();
267256
268- @ Override
269- public boolean ySliderMoved (Controller controller , int sliderIndex , boolean value ) {
270- return false ;
271- }
257+ isEnterNewKey = false ;
272258
273- @ Override
274- public boolean accelerometerMoved (Controller controller , int accelerometerIndex , Vector3 value ) {
275- return false ;
276259 }
277- });
278- }
260+ return true ;
261+ }
262+
263+ @ Override
264+ public boolean povMoved (Controller controller , int povIndex , PovDirection value ) {
265+ return false ;
266+ }
267+
268+ @ Override
269+ public boolean xSliderMoved (Controller controller , int sliderIndex , boolean value ) {
270+ return false ;
271+ }
272+
273+ @ Override
274+ public boolean ySliderMoved (Controller controller , int sliderIndex , boolean value ) {
275+ return false ;
276+ }
277+
278+ @ Override
279+ public boolean accelerometerMoved (Controller controller , int accelerometerIndex , Vector3 value ) {
280+ return false ;
281+ }
282+ });
279283 }
280284 }
281285
@@ -324,9 +328,13 @@ public String getHeader() {
324328 @ Override
325329 public String getDisplayDetail () {
326330 if (isEnterNewKey ) {
327- return "Enter New Key" ;
331+ if (selectedIndex >= controllerItems ) {
332+ return "Enter New Key" ;
333+ } else {
334+ return "Enter New Controller Input" ;
335+ }
328336 } else {
329- return "" ;
337+ return "Only ship controls can use a \n controller in this version. \n \n Menu controls need to use \n the keyboard. " ;
330338 }
331339 }
332340
0 commit comments