public static AndroidGamepad GetPad(GamepadId pad) { switch (pad) { case GamepadId.Pad1: return(Pad1); case GamepadId.Pad2: return(Pad2); case GamepadId.Pad3: return(Pad3); case GamepadId.Pad4: return(Pad4); } throw new NotSupportedException($"Cannot find gamepad {pad}"); }
public Gamepad getGamepad(GamepadId padId) { switch (padId) { case GamepadId.Pad1: return(EventManager.Pad1); case GamepadId.Pad2: return(EventManager.Pad2); case GamepadId.Pad3: return(EventManager.Pad3); case GamepadId.Pad4: return(EventManager.Pad4); default: throw new NotSupportedException($"Cannot get gamepad with id {padId}"); } }
private static void RegisterGamepadPlayer(IServiceCollection services, PlayerId playerId, GamepadId padId) { //var playerType = PlayerType.GetPlayerType(playerId); //Type[] typeArgs = { playerType }; //var playerControlsType = typeof(PlayerControls<>); //var perPlayerPlayerControls = playerControlsType.MakeGenericType(typeArgs); var perPlayerPlayerControls = playerId.GetPlayerKeyedType(typeof(PlayerControls <>)); //var playerType = playerId.GetPlayerType(); services.AddSingleton(perPlayerPlayerControls, s => { var i = Activator.CreateInstance(perPlayerPlayerControls, s.GetRequiredService(typeof(IEventLayerKeyInjector <PlayerControls>))) as PlayerControls; //i.MoveRightEvent.addButton(KeyboardButtonCode.KC_D); //i.MoveLeftEvent.addButton(KeyboardButtonCode.KC_A); //i.MoveUpEvent.addButton(KeyboardButtonCode.KC_W); //i.MoveDownEvent.addButton(KeyboardButtonCode.KC_S); //i.JumpEvent.addButton(KeyboardButtonCode.KC_SPACE); //i.MoveRightEvent.addButton(KeyboardButtonCode.KC_RIGHT); //i.MoveLeftEvent.addButton(KeyboardButtonCode.KC_LEFT); //i.MoveUpEvent.addButton(KeyboardButtonCode.KC_UP); //i.MoveDownEvent.addButton(KeyboardButtonCode.KC_DOWN); //i.JumpEvent.addButton(KeyboardButtonCode.KC_NUMPAD0); i.MoveRightEvent.addButton(GamepadButtonCode.XInput_DPadRight, padId); i.MoveLeftEvent.addButton(GamepadButtonCode.XInput_DPadLeft, padId); i.MoveUpEvent.addButton(GamepadButtonCode.XInput_DPadUp, padId); i.MoveDownEvent.addButton(GamepadButtonCode.XInput_DPadDown, padId); i.JumpEvent.addButton(GamepadButtonCode.XInput_RightShoulder, padId); i.Build(s.GetRequiredService <EventManager>()); return(i); }); var perPlayerFireControls = playerId.GetPlayerKeyedType(typeof(FireControls <>)); services.AddSingleton(perPlayerFireControls, s => { var i = Activator.CreateInstance(perPlayerFireControls, s.GetRequiredService(typeof(IEventLayerKeyInjector <FireControls>))) as FireControls; //i.Fire.addButton(MouseButtonCode.MB_BUTTON0); //i.Fire.addButton(KeyboardButtonCode.KC_NUMPAD1); i.Fire.addButton(GamepadButtonCode.XInput_RTrigger, padId); i.Build(s.GetRequiredService <EventManager>()); return(i); }); }
public Gamepad(EventManager eventManager, GamepadId padId) { this.eventManager = eventManager; this.Id = padId; }
/// <summary> /// Add a gamepad button binding to the event. Also include the gamepad id for convience, will set Pad to the passed value. /// </summary> /// <param name="button">The button to add.</param> /// <param name="pad">The pad id will be set to Pad</param> public void addButton(GamepadButtonCode button, GamepadId pad) { gamepadButtons.Add(button); this.Pad = pad; }