Example #1
0
        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;
            }
        }
Example #2
0
        //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;
            }
        }
Example #3
0
        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);
        }
Example #4
0
        /// <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);
        }