@pspeed: I ran into the bug described here again, and decided to force it in your own sim-eth-es on Github. I first did L-SHIFT+L-CTRL
if( !inputMapper.hasMappings(F_BOOST) ) {
// Here we give run its own function. Note that it was also possible
// to treat running like an axis used instead of MOVE by combining
// keys. For example:
// map(F_BOOST, KeyInput.KEY_LSHIFT, KeyInput.KEY_W )
// Another approach would have been to set the 'scale' of the non-run
// mapping to 0.5 or something and simply map SHIFT+W without the
// scaling. That would have done two things:
// 1) the camera code simply needs to look for MOVE and not worry
// about a separate 'run mode' because walking will be half-speed
// move anyway.
// 2) the joystick would always be running which means the player simply
// runs by using full stick.
//
// Instead, I've opted for a run mode toggle. Mostly because it demonstrates
// state mapping where as all of the other inputs so far are going to
// be treated as analog. That means our joystick needs a run button also.
inputMapper.map(F_BOOST, KeyInput.KEY_LSHIFT, KeyInput.KEY_LCONTROL);
inputMapper.map(F_BOOST, Button.JOYSTICK_RIGHT1);
}
But that didn’t yield the error. I then tried with the combo I have in my own game (L-SHIFT + TAB)
if( !inputMapper.hasMappings(F_BOOST) ) {
// Here we give run its own function. Note that it was also possible
// to treat running like an axis used instead of MOVE by combining
// keys. For example:
// map(F_BOOST, KeyInput.KEY_LSHIFT, KeyInput.KEY_W )
// Another approach would have been to set the 'scale' of the non-run
// mapping to 0.5 or something and simply map SHIFT+W without the
// scaling. That would have done two things:
// 1) the camera code simply needs to look for MOVE and not worry
// about a separate 'run mode' because walking will be half-speed
// move anyway.
// 2) the joystick would always be running which means the player simply
// runs by using full stick.
//
// Instead, I've opted for a run mode toggle. Mostly because it demonstrates
// state mapping where as all of the other inputs so far are going to
// be treated as analog. That means our joystick needs a run button also.
inputMapper.map(F_BOOST, KeyInput.KEY_LSHIFT, KeyInput.KEY_TAB);
inputMapper.map(F_BOOST, Button.JOYSTICK_RIGHT1);
}
And it yielded the same error:
18:33:05,744 ERROR [LegacyApplication] Uncaught exception thrown in Thread[jME3 Main,5,main]
java.lang.StackOverflowError
at java.util.HashMap.hash(HashMap.java:339) ~[?:1.8.0_152]
at java.util.HashMap.remove(HashMap.java:799) ~[?:1.8.0_152]
at java.util.HashSet.remove(HashSet.java:236) ~[?:1.8.0_152]
at com.simsilica.lemur.input.InputMapper.deactivate(InputMapper.java:423) ~[lemur-1.9.1.jar:?]
at com.simsilica.lemur.input.InputMapper$StateGroupIndex.refresh(InputMapper.java:757) ~[lemur-1.9.1.jar:?]
at com.simsilica.lemur.input.InputMapper$StateGroupIndex.refresh(InputMapper.java:764) ~[lemur-1.9.1.jar:?]
at com.simsilica.lemur.input.InputMapper$StateGroupIndex.refresh(InputMapper.java:764) ~[lemur-1.9.1.jar:?]
at com.simsilica.lemur.input.InputMapper$StateGroupIndex.refresh(InputMapper.java:764) ~[lemur-1.9.1.jar:?]
at com.simsilica.lemur.input.InputMapper$StateGroupIndex.refresh(InputMapper.java:764) ~[lemur-1.9.1.jar:?]
…
I haven’t been able to dig further yet, I’m struggling to get combos to work properly because of other issues