gamepad support and keybind cleaning up

This commit is contained in:
Kade M
2021-06-24 19:54:11 -07:00
parent 5432d66601
commit 06ca64b5d8
13 changed files with 424 additions and 150 deletions

View File

@ -1,5 +1,6 @@
package;
import flixel.input.gamepad.FlxGamepad;
import flixel.FlxG;
import flixel.input.FlxInput;
import flixel.input.actions.FlxAction;
@ -571,8 +572,22 @@ class Controls extends FlxActionSet
//trace(FlxKey.fromString(FlxG.save.data.upBind));
removeKeyboard();
if (gamepadsAdded.length != 0)
removeGamepad();
KeyBinds.keyCheck();
var buttons = new Map<Control,Array<FlxGamepadInputID>>();
buttons.set(Control.UP,[FlxGamepadInputID.fromString(FlxG.save.data.gpupBind)]);
buttons.set(Control.LEFT,[FlxGamepadInputID.fromString(FlxG.save.data.gpleftBind)]);
buttons.set(Control.DOWN,[FlxGamepadInputID.fromString(FlxG.save.data.gpdownBind)]);
buttons.set(Control.RIGHT,[FlxGamepadInputID.fromString(FlxG.save.data.gprightBind)]);
buttons.set(Control.ACCEPT,[FlxGamepadInputID.A]);
buttons.set(Control.BACK,[FlxGamepadInputID.B]);
buttons.set(Control.PAUSE,[FlxGamepadInputID.START]);
addGamepad(0,buttons);
inline bindKeys(Control.UP, [FlxKey.fromString(FlxG.save.data.upBind), FlxKey.UP]);
inline bindKeys(Control.DOWN, [FlxKey.fromString(FlxG.save.data.downBind), FlxKey.DOWN]);
inline bindKeys(Control.LEFT, [FlxKey.fromString(FlxG.save.data.leftBind), FlxKey.LEFT]);
@ -599,6 +614,9 @@ class Controls extends FlxActionSet
public function addGamepad(id:Int, ?buttonMap:Map<Control, Array<FlxGamepadInputID>>):Void
{
if (gamepadsAdded.contains(id))
gamepadsAdded.remove(id);
gamepadsAdded.push(id);
#if (haxe >= "4.0.0")