public KeyListener(object sender) { var list = sender as ListBox; var keybordvalue = list.SelectedItem as GameControlsManager.SystemKeyboardMouseValue; if (keybordvalue != null) { _oldKeyboardMouseValue = keybordvalue; controlItem = keybordvalue.Parent; } var joystickvalue = list.SelectedItem as GameControlsManager.SystemJoystickValue; if (joystickvalue != null) { _oldJoystickValue = joystickvalue; controlItem = joystickvalue.Parent; } }
//private GameControlsManager.GameControlItem _selected_strength; public KeyListener(object sender) { //try{CommandBindingWindow.Listener(as Listener) //{ catch {CommandBindingWindow.Listener(as Listener)}}; MouseCover = true; var list = sender as ListBox; var keybordvalue = list.SelectedItem as GameControlsManager.SystemKeyboardMouseValue; if (keybordvalue != null) { _oldKeyboardMouseValue = keybordvalue; controlItem = keybordvalue.Parent; } var joystickvalue = list.SelectedItem as GameControlsManager.SystemJoystickValue; if (joystickvalue != null) { _oldJoystickValue = joystickvalue; controlItem = joystickvalue.Parent; } }
protected override bool OnJoystickEvent(JoystickInputEvent e) { if (base.OnJoystickEvent(e)) { return(true); } if (_newJoystickValue != null || _newKeyboardMousevalue != null) { return(true); } if (controlItem != null && _oldJoystickValue != null) { string message = ""; bool isDeadZoneNoise = false; //JoystickButtonDownEvent { var evt = e as JoystickButtonDownEvent; if (evt != null) { _newJoystickValue = new GameControlsManager.SystemJoystickValue(evt.Button.Name) { Parent = controlItem }; GameControlsManager.SystemJoystickValue key; if (GameControlsManager.Instance.IsAlreadyBinded(evt.Button.Name, out key)) { message = "Button " + evt.Button.Name + " is already bound to " + key.Parent.ControlKey + ". Override? or Click Clear to remove the bind"; _conflictJoystickValue = key; } } } //JoystickAxisChangedEvent { var evt = e as JoystickAxisChangedEvent; if (evt != null) { var filter = JoystickAxisFilters.DEADZONE; if (evt.Axis.Value < -GameControlsManager.Instance.DeadZone) { filter = JoystickAxisFilters.LessZero; } else if (evt.Axis.Value > GameControlsManager.Instance.DeadZone) { filter = JoystickAxisFilters.GreaterZero; } //pass the dead zone if (filter != JoystickAxisFilters.DEADZONE) { _newJoystickValue = new GameControlsManager.SystemJoystickValue(evt.Axis.Name, filter) { Parent = controlItem }; GameControlsManager.SystemJoystickValue key; if (GameControlsManager.Instance.IsAlreadyBinded(evt.Axis.Name, filter, out key)) { message = "Axis " + evt.Axis.Name + "(" + filter + ")" + " is already bound to " + key.Parent.ControlKey + ". Override ?, or Click Clear to remove the bind"; _conflictJoystickValue = key; } } else { isDeadZoneNoise = true; } } } { var evt = e as JoystickPOVChangedEvent; if (evt != null) { _newJoystickValue = new GameControlsManager.SystemJoystickValue(evt.POV.Name, evt.POV.Value) { Parent = controlItem }; GameControlsManager.SystemJoystickValue key; if (GameControlsManager.Instance.IsAlreadyBinded(evt.POV.Name, evt.POV.Value, out key)) { message = "Pov " + evt.POV.Name + "(" + evt.POV.Value + ") is already bound to " + key.Parent.ControlKey + ". Override? or Click Clear to remove the bind "; _conflictJoystickValue = key; } } } { var evt = e as JoystickSliderChangedEvent; if (evt != null) { var currentValue = evt.Axis == JoystickSliderAxes.X ? evt.Slider.Value.X : evt.Slider.Value.Y; var filter = JoystickAxisFilters.DEADZONE; if (currentValue < -GameControlsManager.Instance.DeadZone) { filter = JoystickAxisFilters.LessZero; } else if (currentValue > GameControlsManager.Instance.DeadZone) { filter = JoystickAxisFilters.GreaterZero; } //pass the dead zone if (filter != JoystickAxisFilters.DEADZONE) { _newJoystickValue = new GameControlsManager.SystemJoystickValue(evt.Slider.Name, evt.Axis, filter) { Parent = controlItem }; GameControlsManager.SystemJoystickValue key; if (GameControlsManager.Instance.IsAlreadyBinded(evt.Slider.Name, evt.Axis, filter, out key)) { message = "Slider " + evt.Slider.Name + "(" + evt.Axis + " / " + filter + ") is already bound to " + key.Parent.ControlKey + ". Override ?"; _conflictJoystickValue = key; } } else { isDeadZoneNoise = true; } } } if (_conflictJoystickValue != null) { CreateConfirmDialogue(message); return(true); } if (!isDeadZoneNoise) { SetKey(); SetShouldDetach(); } return(true); } return(false); }
/// <summary> /// Process Joystick Event in order to bind it /// </summary> protected override bool OnJoystickEvent(JoystickInputEvent e) { if (base.OnJoystickEvent(e)) { return(true); } if (_newJoystickValue != null || _newKeyboardMousevalue != null) { return(true); } if (controlItem != null && _oldJoystickValue != null) { string message = ""; //JoystickButtonDownEvent { var evt = e as JoystickButtonDownEvent; if (evt != null) { _newJoystickValue = new GameControlsManager.SystemJoystickValue(evt.Button.Name) { Parent = controlItem }; GameControlsManager.SystemJoystickValue key; if (GameControlsManager.Instance.IsAlreadyBinded(evt.Button.Name, out key)) { message = "Button " + evt.Button.Name + " is already bound to " + key.Parent.ControlKey + ". Override? or Click Clear to remove the bind"; _conflictJoystickValue = key; } } } //JoystickAxisChangedEvent { var evt = e as JoystickAxisChangedEvent; if (evt != null) { var filter = JoystickAxisFilters.DEADZONE; if (_oldJoystickValue.AxisFilter != null) { filter = _oldJoystickValue.AxisFilter; } CreateAxisFilterDialogue(out filter); //Incin -- this needs to add the other filters so it reads the filters right // should call the key information to populate here the var value //if( evt.Axis.Value < -GameControlsManager.Instance.DeadZone ) //{ // filter = JoystickAxisFilters.LessZero; //} //else if( evt.Axis.Value > GameControlsManager.Instance.DeadZone ) //{ // filter = JoystickAxisFilters.GreaterZero; //} //pass the dead zone if (filter != JoystickAxisFilters.DEADZONE) { _newJoystickValue = new GameControlsManager.SystemJoystickValue(evt.Axis.Name, filter) { Parent = controlItem }; GameControlsManager.SystemJoystickValue key; if (GameControlsManager.Instance.IsAlreadyBinded(evt.Axis.Name, filter, out key)) { message = "Axis " + evt.Axis.Name + "(" + filter + ") is already bound to " + key.Parent.ControlKey + ". Override ?, or Click Clear to remove the bind"; _conflictJoystickValue = key; } } } } { var evt = e as JoystickPOVChangedEvent; if (evt != null) { _newJoystickValue = new GameControlsManager.SystemJoystickValue(evt.POV.Name, evt.POV.Value) { Parent = controlItem }; GameControlsManager.SystemJoystickValue key; if (GameControlsManager.Instance.IsAlreadyBinded(evt.POV.Name, evt.POV.Value, out key)) { message = "Pov " + evt.POV.Name + "(" + evt.POV.Value + ") is already bound to " + key.Parent.ControlKey + ". Override? or Click Clear to remove the bind "; _conflictJoystickValue = key; } } } { var evt = e as JoystickSliderChangedEvent; if (evt != null) { //var currentValue = evt.Axis == JoystickSliderAxes.X // ? evt.Slider.Value.X // : evt.Slider.Value.Y; var filter = JoystickAxisFilters.DEADZONE; //Incin -- this needs to add the other filters so it reads the filters right // should call the key information to populate here the var value if (_oldJoystickValue.AxisFilter != null) { filter = _oldJoystickValue.AxisFilter; } JoystickAxisFilters newfilter = JoystickAxisFilters.DEADZONE; bool finished = false; if (newfilter == JoystickAxisFilters.DEADZONE) { CreateAxisFilterDialogue(out newfilter, out finished); return(true); } if (filter != newfilter) { //not same setting //save new setting } //if( currentValue < -GameControlsManager.Instance.DeadZone ) //{ // filter = JoystickAxisFilters.LessZero; //} //else if( currentValue > GameControlsManager.Instance.DeadZone ) //{ // filter = JoystickAxisFilters.GreaterZero; //} //pass the dead zone if (filter != JoystickAxisFilters.DEADZONE) { _newJoystickValue = new GameControlsManager.SystemJoystickValue(evt.Slider.Name, evt.Axis, filter) { Parent = controlItem }; GameControlsManager.SystemJoystickValue key; if (GameControlsManager.Instance.IsAlreadyBinded(evt.Slider.Name, evt.Axis, filter, out key)) { message = "Slider " + evt.Slider.Name + "(" + evt.Axis + ")" + "(" + filter + ") is already bound to " + key.Parent.ControlKey + ". Override ?"; _conflictJoystickValue = key; } } } } if (_conflictJoystickValue != null) { CreateConfirmDialogue(message); return(true); } SetKey(); SetShouldDetach(); return(true); } return(false); }