protected void JoypadConnectionEvent(IJoypad j, bool connected) { JoypadConnection?.Invoke(this, new JoypadConnectionEventArgs { Connected = connected, Joypad = j }); }
/// <summary> /// Initialize this module. /// </summary> public override void Initialize() { base.Initialize(); HardwareInput = Host.Platform.GetInput(Host.Window); HardwareInput.Initialize(); HardwareInput.JoypadConnection += (obj, e) => { if (!InputStates.ContainsKey(e.Joypad)) { InputStates.Add(e.Joypad, new InputState()); } if (e.Connected) { Joypads.Add(new VirtualJoypad(InputStates?[e.Joypad], e.Joypad.Index, e.Joypad.Name)); } else { Joypads.RemoveAt(Joypads.FindIndex(x => x.Index == e.Joypad.Index)); } JoypadConnection?.Invoke(obj, e); }; InputStates.Add(HardwareKeyboard, new InputState()); InputStates.Add(HardwareMouse, new InputState()); HardwareKeyboard.OnTypeWithMods += HardwareKeyboard_OnTypeWithMods; HardwareKeyboard.OnKeyEvent += HardwareKeyboard_OnKeyEvent; HardwareKeyboard.OnType += HardwareKeyboard_OnType; HardwareMouse.OnButtonEvent += HardwareMouse_OnButtonEvent; HardwareMouse.OnScroll += HardwareMouse_OnScroll; HardwareMouse.OnMove += HardwareMouse_OnMove; foreach (var j in HardwareJoypads) { Joypads.Add(new VirtualJoypad(null, j.Index, j.Name)); } }