IEnumerator StartInputScanDelayedNegativeOrDefault()
        {
            InputBinding inputBinding;

            if (GetValues(out _, out inputBinding))
            {
                // override ui input
                UIUtils.OverrideUIInputControl();

                // update button visual
                uIButtons[0].profile   = scanningProfile;
                uIButtons[0].text.text = (inputBinding.Type != InputType.DigitalAxis ? "" : "( - ) ") + "...";



                yield return(null);                // delay before scanning

                if (inputBinding.Type == InputType.KeyButton || inputBinding.Type == InputType.DigitalAxis)
                {
                    m_changePositiveKey = inputBinding.Type != InputType.DigitalAxis;

                    InputManager.StartInputScan(ScanFlags.Key, HandleKeyScan, OnStopScan);
                }
                else if (inputBinding.Type == InputType.GamepadAxis)
                {
                    InputManager.StartInputScan(ScanFlags.JoystickAxis, HandleJoystickAxisScan, OnStopScan);
                }
                else if (inputBinding.Type == InputType.GamepadButton || inputBinding.Type == InputType.GamepadAnalogButton)
                {
                    ScanFlags flags = ScanFlags.JoystickButton;
                    flags |= ScanFlags.JoystickAxis;
                    InputManager.StartInputScan(flags, HandleJoystickButtonScan, OnStopScan);
                }
            }
        }
Exemplo n.º 2
0
        private bool ScanJoystickButton()
        {
            for (int key = (int)KeyCode.JoystickButton0; key < (int)KeyCode.Joystick4Button19; key++)
            {
                if (Input.GetKeyDown((KeyCode)key))
                {
                    _scanResult.scanFlags         = ScanFlags.JoystickButton;
                    _scanResult.key               = (KeyCode)key;
                    _scanResult.joystick          = -1;
                    _scanResult.joystickAxis      = -1;
                    _scanResult.joystickAxisValue = 0.0f;
                    _scanResult.mouseAxis         = -1;
                    _scanResult.userData          = _scanUserData;
                    if (_scanHandler(_scanResult))
                    {
                        _scanHandler         = null;
                        _scanResult.userData = null;
                        _scanFlags           = ScanFlags.None;
                        return(true);
                    }
                }
            }

            return(false);
        }
Exemplo n.º 3
0
        private bool ScanKey()
        {
            int length = _keys.Length;

            for (int i = 0; i < length; i++)
            {
                if ((int)_keys[i] >= (int)KeyCode.JoystickButton0)
                {
                    break;
                }

                if (Input.GetKeyDown(_keys[i]))
                {
                    _scanResult.scanFlags    = ScanFlags.Key;
                    _scanResult.key          = _keys[i];
                    _scanResult.joystick     = -1;
                    _scanResult.joystickAxis = -1;
                    _scanResult.mouseAxis    = -1;
                    _scanResult.userData     = _scanUserData;
                    if (_scanHandler(_scanResult))
                    {
                        _scanHandler         = null;
                        _scanResult.userData = null;
                        _scanFlags           = ScanFlags.None;
                        return(true);
                    }
                }
            }

            return(false);
        }
        static IEnumerator StartInputScanDelayed(InputBinding inputBinding, bool changingPositiveDigitalAxis, System.Action onStopScan)
        {
            yield return(null);            // delay before scanning

            if (inputBinding.Type == InputType.MouseAxis)
            {
                Debug.LogError("Error, cant rebind Mouse Axes...");
            }
            CustomProjectInputs.inputBinding     = inputBinding;
            CustomProjectInputs.changingPositive = true;

            if (inputBinding.Type == InputType.DigitalAxis)
            {
                CustomProjectInputs.changingPositive = changingPositiveDigitalAxis;
                ScanService.Start(ScanFlags.Key, HandleKeyScan, onStopScan);
            }
            if (inputBinding.Type == InputType.KeyButton)
            {
                ScanService.Start(ScanFlags.Key, HandleKeyScan, onStopScan);
            }
            if (inputBinding.Type == InputType.GamepadAxis)
            {
                ScanService.Start(ScanFlags.JoystickAxis, HandleJoystickAxisScan, onStopScan);
            }
            if (inputBinding.Type == InputType.GamepadButton || inputBinding.Type == InputType.GamepadAnalogButton)
            {
                ScanFlags flags = ScanFlags.JoystickButton;
                flags |= ScanFlags.JoystickAxis;
                ScanService.Start(flags, HandleJoystickButtonScan, onStopScan);
            }
        }
Exemplo n.º 5
0
        private bool ScanKey()
        {
            int length = m_keys.Length;

            for (int i = 0; i < length; i++)
            {
                if ((int)m_keys[i] >= (int)KeyCode.JoystickButton0)
                {
                    break;
                }

                if (Input.GetKeyDown(m_keys[i]))
                {
                    m_scanResult.ScanFlags         = ScanFlags.Key;
                    m_scanResult.Key               = m_keys[i];
                    m_scanResult.Joystick          = -1;
                    m_scanResult.JoystickAxis      = -1;
                    m_scanResult.JoystickAxisValue = 0.0f;
                    m_scanResult.MouseAxis         = -1;
                    m_scanResult.UserData          = m_scanUserData;
                    if (m_scanHandler(m_scanResult))
                    {
                        m_scanHandler         = null;
                        m_scanResult.UserData = null;
                        m_scanFlags           = ScanFlags.None;
                        return(true);
                    }
                }
            }

            return(false);
        }
Exemplo n.º 6
0
        public void Stop()
        {
            if (IsScanning)
            {
                IsScanning = false;

                m_scanResult.ScanFlags         = ScanFlags.None;
                m_scanResult.Key               = KeyCode.None;
                m_scanResult.Joystick          = -1;
                m_scanResult.JoystickAxis      = -1;
                m_scanResult.JoystickAxisValue = 0.0f;
                m_scanResult.MouseAxis         = -1;
                m_scanResult.UserData          = m_scanUserData;

                if (m_scanHandler != null)
                {
                    m_scanHandler(m_scanResult);
                }

                m_scanJoystick        = null;
                m_scanHandler         = null;
                m_scanResult.UserData = null;
                m_scanFlags           = ScanFlags.None;
            }
        }
Exemplo n.º 7
0
        private bool ScanJoystickAxis()
        {
            int scanStart = _scanJoystick * AxisConfiguration.MaxJoystickAxes;

            for (int i = 0; i < AxisConfiguration.MaxJoystickAxes; i++)
            {
                if (Mathf.Abs(Input.GetAxisRaw(_rawJoystickAxes[scanStart + i])) >= 1.0f)
                {
                    _scanResult.scanFlags    = ScanFlags.JoystickAxis;
                    _scanResult.key          = KeyCode.None;
                    _scanResult.joystick     = _scanJoystick;
                    _scanResult.joystickAxis = i;
                    _scanResult.mouseAxis    = -1;
                    _scanResult.userData     = _scanUserData;
                    if (_scanHandler(_scanResult))
                    {
                        _scanHandler         = null;
                        _scanResult.userData = null;
                        _scanFlags           = ScanFlags.None;
                        return(true);
                    }
                }
            }

            return(false);
        }
Exemplo n.º 8
0
        private bool ScanMouseAxis()
        {
            for (int i = 0; i < m_rawMouseAxes.Length; i++)
            {
                if (Mathf.Abs(Input.GetAxis(m_rawMouseAxes[i])) > 0.0f)
                {
                    m_scanResult.ScanFlags         = ScanFlags.MouseAxis;
                    m_scanResult.Key               = KeyCode.None;
                    m_scanResult.Joystick          = -1;
                    m_scanResult.JoystickAxis      = -1;
                    m_scanResult.JoystickAxisValue = 0.0f;
                    m_scanResult.MouseAxis         = i;
                    m_scanResult.UserData          = m_scanUserData;
                    if (m_scanHandler(m_scanResult))
                    {
                        m_scanHandler         = null;
                        m_scanResult.UserData = null;
                        m_scanFlags           = ScanFlags.None;
                        return(true);
                    }
                }
            }

            return(false);
        }
Exemplo n.º 9
0
        private bool ScanJoystickAxis()
        {
            int   scanStart = 0, scanEnd = m_rawJoystickAxes.Length;
            float axisRaw = 0.0f;

            if (m_scanJoystick.HasValue)
            {
                scanStart = m_scanJoystick.Value * InputBinding.MAX_JOYSTICK_AXES;
                scanEnd   = scanStart + InputBinding.MAX_JOYSTICK_AXES;
            }

            for (int i = scanStart; i < scanEnd; i++)
            {
                axisRaw = Input.GetAxisRaw(m_rawJoystickAxes[i]);
                if (Mathf.Abs(axisRaw) >= 1.0f)
                {
                    m_scanResult.ScanFlags         = ScanFlags.JoystickAxis;
                    m_scanResult.Key               = KeyCode.None;
                    m_scanResult.Joystick          = i / InputBinding.MAX_JOYSTICK_AXES;
                    m_scanResult.JoystickAxis      = i % InputBinding.MAX_JOYSTICK_AXES;
                    m_scanResult.JoystickAxisValue = axisRaw;
                    m_scanResult.MouseAxis         = -1;
                    m_scanResult.UserData          = m_scanUserData;
                    if (m_scanHandler(m_scanResult))
                    {
                        m_scanHandler         = null;
                        m_scanResult.UserData = null;
                        m_scanFlags           = ScanFlags.None;
                        return(true);
                    }
                }
            }

            return(false);
        }
Exemplo n.º 10
0
        private bool ScanMouseAxis()
        {
            for (int i = 0; i < _rawMouseAxes.Length; i++)
            {
                if (Mathf.Abs(Input.GetAxis(_rawMouseAxes[i])) > 0.0f)
                {
                    _scanResult.scanFlags         = ScanFlags.MouseAxis;
                    _scanResult.key               = KeyCode.None;
                    _scanResult.joystick          = -1;
                    _scanResult.joystickAxis      = -1;
                    _scanResult.joystickAxisValue = 0.0f;
                    _scanResult.mouseAxis         = i;
                    _scanResult.userData          = _scanUserData;
                    if (_scanHandler(_scanResult))
                    {
                        _scanHandler         = null;
                        _scanResult.userData = null;
                        _scanFlags           = ScanFlags.None;
                        return(true);
                    }
                }
            }

            return(false);
        }
Exemplo n.º 11
0
    public void KeyBind(BindingButton buttonParams, GameObject button)
    {
        AudioManager.Play("Bip");
        this.eventSystemGameObject.SetActive(false);

        ScanFlags scanFlagOut = ScanFlags.Key;
        KeyCode   cancelKey   = KBcancelKey;

        switch (buttonParams.inputType)
        {
        case CustomInputType.KeyboardButton:
            scanFlagOut = ScanFlags.Key;
            cancelKey   = KeyBinder.KBcancelKey;
            break;

        case CustomInputType.GamepadButton:
            scanFlagOut = ScanFlags.JoystickButton | ScanFlags.JoystickAxis;
            cancelKey   = KeyBinder.GPcancelKey;
            break;

        case CustomInputType.GamepadAxis:
            scanFlagOut = ScanFlags.JoystickAxis;
            cancelKey   = KeyBinder.GPcancelKey;
            break;

        default:
            Debug.LogErrorFormat("{1} Not implemented yet", buttonParams.inputType);
            break;
        }

        ScanSettings scanSettings = new ScanSettings
        {
            ScanFlags     = scanFlagOut,
            CancelScanKey = cancelKey,
            Timeout       = timeout
        };

        switch (buttonParams.inputType)
        {
        case CustomInputType.KeyboardButton:
        case CustomInputType.DigitalAxis:
            StartScanKBButton(scanSettings, buttonParams, button);
            break;

        case CustomInputType.GamepadButton:
            StartScanGPButton(scanSettings, buttonParams, button);
            break;

        case CustomInputType.GamepadAxis:
            StartScanGPAxis(scanSettings, buttonParams, button);
            break;

        default:
            this.eventSystemGameObject.SetActive(true);
            Debug.LogErrorFormat("{1} Not implemented yet", buttonParams.inputType);
            break;
        }
    }
        public static ScanResult Empty(ScanFlags scanResult = ScanFlags.None)
        {
            ScanResult result = new ScanResult();

            result.ScanFlags     = scanResult;
            result.keyCode       = KeyCode.None;
            result.mouseAxis     = -1;
            result.gamepadButton = GamepadButton.None;
            result.gamepadAxis   = GamepadAxis.None;
            result.axisValue     = 0.0f;
            return(result);
        }
        public static void Start(ScanFlags scanFlags, ScanHandler scanHandler, System.Action onScanEnd)
        {
            if (isScanning)
            {
                Stop();
            }

            m_scanStartTime         = Time.unscaledTime;
            isScanning              = true;
            ScanService.scanFlags   = scanFlags;
            ScanService.onScanEnd   = onScanEnd;
            ScanService.scanHandler = scanHandler;
        }
Exemplo n.º 14
0
        public void Start(float startTime, ScanFlags scanFlags, ScanHandler scanHandler, System.Action onScanEnd)
        {
            if (IsScanning)
            {
                Stop();
            }

            m_scanStartTime = startTime;
            this.scanFlags  = scanFlags;
            this.onScanEnd  = onScanEnd;
            m_scanHandler   = scanHandler;

            IsScanning = true;
        }
Exemplo n.º 15
0
        private void StopInputScan()
        {
            _scanResult.scanFlags    = ScanFlags.None;
            _scanResult.key          = KeyCode.None;
            _scanResult.joystick     = -1;
            _scanResult.joystickAxis = -1;
            _scanResult.mouseAxis    = -1;
            _scanResult.userData     = _scanUserData;

            _scanHandler(_scanResult);

            _scanHandler         = null;
            _scanResult.userData = null;
            _scanFlags           = ScanFlags.None;
        }
Exemplo n.º 16
0
        private bool ScanJoystickButton()
        {
            int scanStart = (int)KeyCode.Joystick1Button0;
            int scanEnd   = (int)KeyCode.Joystick8Button19;

            if (m_scanJoystick.HasValue)
            {
                scanStart = (int)KeyCode.Joystick1Button0 + m_scanJoystick.Value * 20;
                scanEnd   = scanStart + 20;
            }

            for (int key = scanStart; key < scanEnd; key++)
            {
                if (Input.GetKeyDown((KeyCode)key))
                {
                    if (m_scanJoystick.HasValue)
                    {
                        m_scanResult.Key      = (KeyCode)key;
                        m_scanResult.Joystick = m_scanJoystick.Value;
                    }
                    else
                    {
                        m_scanResult.Key      = (KeyCode)((int)KeyCode.JoystickButton0 + (key - (int)KeyCode.Joystick1Button0) % 20);
                        m_scanResult.Joystick = ((key - (int)KeyCode.Joystick1Button0) / 20);
                    }

                    m_scanResult.JoystickAxis      = -1;
                    m_scanResult.JoystickAxisValue = 0.0f;
                    m_scanResult.MouseAxis         = -1;
                    m_scanResult.UserData          = m_scanUserData;
                    m_scanResult.ScanFlags         = ScanFlags.JoystickButton;

                    if (m_scanHandler(m_scanResult))
                    {
                        m_scanHandler         = null;
                        m_scanResult.UserData = null;
                        m_scanFlags           = ScanFlags.None;
                        return(true);
                    }
                }
            }

            return(false);
        }
Exemplo n.º 17
0
        //public void Start(ScanSettings settings, ScanHandler scanHandler)
        public void Start(ScanSettings settings)
        {
            if (settings.Joystick.HasValue && (settings.Joystick < 0 || settings.Joystick >= InputBinding.MAX_JOYSTICK_AXES))
            {
                Debug.LogError("Joystick is out of range. Cannot start scan.");
                return;
            }

            if (IsScanning)
            {
                Stop();
            }

            m_scanTimeout   = settings.Timeout;
            m_scanFlags     = settings.ScanFlags;
            m_scanStartTime = GameTime;
            m_cancelScanKey = settings.CancelScanKey;
            m_scanJoystick  = settings.Joystick;
            m_scanUserData  = settings.UserData;
            //	m_scanHandler = scanHandler;
            IsScanning = true;
        }
Exemplo n.º 18
0
        /// <summary>
        /// Find pattern in dumped module
        /// </summary>
        /// <param name="offsetPattern">Pattern in string format</param>
        /// <param name="additionOffset">Addition to returned offset</param>
        /// <returns>Offsets from pattern</returns>
        public int FindPattern(string pattern, ScanFlags flags, int patternAddition, int addressOffset)
        {
            for (int x = 0; x < m_moduleBuffer.Length; x++)
            {
                if (this.PatternCheck(x, pattern))
                {
                    int address = _moduleBaseAddress + x + patternAddition;

                    if (flags.HasFlag(ScanFlags.READ))
                    {
                        address = M.Read <int>((IntPtr)address);
                    }

                    if (flags.HasFlag(ScanFlags.SUBSTRACT_BASE))
                    {
                        address -= _moduleBaseAddress;
                    }

                    return(address + addressOffset);
                }
            }

            return(0);
        }
        private bool ScanKey()
        {
            int length = _keys.Length;
            for (int i = 0; i < length; i++) {
                if ((int)_keys [i] >= (int)KeyCode.JoystickButton0)
                    break;

                if (Input.GetKeyDown (_keys [i])) {
                    _scanResult.scanFlags = ScanFlags.Key;
                    _scanResult.key = _keys [i];
                    _scanResult.joystick = -1;
                    _scanResult.joystickAxis = -1;
                    _scanResult.mouseAxis = -1;
                    _scanResult.userData = _scanUserData;
                    if (_scanHandler (_scanResult)) {
                        _scanHandler = null;
                        _scanResult.userData = null;
                        _scanFlags = ScanFlags.None;
                        return true;
                    }
                }
            }

            return false;
        }
        private bool ScanJoystickButton()
        {
            for (int key = (int)KeyCode.JoystickButton0; key < (int)KeyCode.Joystick4Button19; key++) {
                if (Input.GetKeyDown ((KeyCode)key)) {
                    _scanResult.scanFlags = ScanFlags.JoystickButton;
                    _scanResult.key = (KeyCode)key;
                    _scanResult.joystick = -1;
                    _scanResult.joystickAxis = -1;
                    _scanResult.mouseAxis = -1;
                    _scanResult.userData = _scanUserData;
                    if (_scanHandler (_scanResult)) {
                        _scanHandler = null;
                        _scanResult.userData = null;
                        _scanFlags = ScanFlags.None;
                        return true;
                    }
                }
            }

            return false;
        }
        private bool ScanJoystickAxis()
        {
            int scanStart = _scanJoystick * AxisConfiguration.MaxJoystickAxes;
            for (int i = 0; i < AxisConfiguration.MaxJoystickAxes; i++) {
                if (Mathf.Abs (Input.GetAxisRaw (_rawJoystickAxes [scanStart + i])) >= 1.0f) {
                    _scanResult.scanFlags = ScanFlags.JoystickAxis;
                    _scanResult.key = KeyCode.None;
                    _scanResult.joystick = _scanJoystick;
                    _scanResult.joystickAxis = i;
                    _scanResult.mouseAxis = -1;
                    _scanResult.userData = _scanUserData;
                    if (_scanHandler (_scanResult)) {
                        _scanHandler = null;
                        _scanResult.userData = null;
                        _scanFlags = ScanFlags.None;
                        return true;
                    }
                }
            }

            return false;
        }
Exemplo n.º 22
0
 public static void StartInputScan(ScanFlags scanFlags, ScanHandler scanHandler, System.Action onScanEnd)
 {
     m_instance.m_scanService.Start(Time.unscaledTime, scanFlags, scanHandler, onScanEnd);
 }
Exemplo n.º 23
0
 public bool IsSet(ScanFlags flag)
 {
     return((Flags & flag) != 0);
 }//method
Exemplo n.º 24
0
 public StringLiteral(string name, string startEndSymbol, ScanFlags stringFlags)
     : this(name, startEndSymbol, stringFlags, TermOptions.SpecialIgnoreCase)
 {
 }
Exemplo n.º 25
0
 public StringLiteral(string name, string startEndSymbol, ScanFlags stringFlags, TermOptions options) : this(name, options)
 {
     this.StartEndSymbolTable.Add(startEndSymbol, stringFlags);
 }
Exemplo n.º 26
0
 public void AddStartEnd(string startEndSymbol, ScanFlags stringFlags)
 {
     StartEndSymbolTable.Add(startEndSymbol, stringFlags);
 }
Exemplo n.º 27
0
 public void AddStartEnd(string startEndSymbol, ScanFlags stringFlags)
 {
     StartEndSymbolTable.Add(startEndSymbol, stringFlags);
 }
 static bool HasFlag(ScanFlags flag)
 {
     return(((int)scanFlags & (int)flag) != 0);
 }
        private bool ScanMouseAxis()
        {
            for (int i = 0; i < _rawMouseAxes.Length; i++) {
                if (Mathf.Abs (Input.GetAxis (_rawMouseAxes [i])) > 0.0f) {
                    _scanResult.scanFlags = ScanFlags.MouseAxis;
                    _scanResult.key = KeyCode.None;
                    _scanResult.joystick = -1;
                    _scanResult.joystickAxis = -1;
                    _scanResult.mouseAxis = i;
                    _scanResult.userData = _scanUserData;
                    if (_scanHandler (_scanResult)) {
                        _scanHandler = null;
                        _scanResult.userData = null;
                        _scanFlags = ScanFlags.None;
                        return true;
                    }
                }
            }

            return false;
        }
        private void StopInputScan()
        {
            _scanResult.scanFlags = ScanFlags.None;
            _scanResult.key = KeyCode.None;
            _scanResult.joystick = -1;
            _scanResult.joystickAxis = -1;
            _scanResult.mouseAxis = -1;
            _scanResult.userData = _scanUserData;

            _scanHandler (_scanResult);

            _scanHandler = null;
            _scanResult.userData = null;
            _scanFlags = ScanFlags.None;
        }
Exemplo n.º 31
0
 private bool HasFlag(ScanFlags flag)
 {
     return(((int)m_scanFlags & (int)flag) != 0);
 }
Exemplo n.º 32
0
 public StringLiteral(string name, string startEndSymbol, ScanFlags stringFlags)
     : this(name, startEndSymbol, stringFlags, TermOptions.SpecialIgnoreCase)
 {
 }
Exemplo n.º 33
0
 public void AddPrefixFlag(string prefix, ScanFlags flags)
 {
     PrefixFlags.Add(prefix, flags);
     Prefixes.Add(prefix);
 }
Exemplo n.º 34
0
        public void Visit(UmlDiagram diagram, UmlEntity info)
        {
            var type = info.Type;

            var properties = ScanProperties(type, ScanFlags);

            info.Members.AddRange(properties);

            var r = BindingFlags.Public | BindingFlags.NonPublic;

            if (ScanFlags.HasFlag(ReflectionFlags.InstanceMethod))
            {
                r |= BindingFlags.Instance;
            }
            if (ScanFlags.HasFlag(ReflectionFlags.StaticMethod))
            {
                r |= BindingFlags.Static;
            }

            var methodInfos = type.GetMethods(r);

            {
                var h = SortAndPrepareMethods;
                if (h != null)
                {
                    var args = new SortAndPrepareMethodsEventArgs {
                        Methods = methodInfos
                    };
                    h.Invoke(this, args);
                    methodInfos = args.Methods;
                }
            }
            foreach (var mi in methodInfos)
            {
                var add  = CheckSkipDefault(mi);
                var flag = GetMFlag(mi, ReflectionFlags.PublicMethod, ReflectionFlags.ProtectedMethod,
                                    ReflectionFlags.PrivateMethod);
                if (add)
                {
                    if (!H(flag, ScanFlags))
                    {
                        add = false;
                    }
                }

                var h = AddTypeToDiagram;
                if (h is null && !add)
                {
                    continue;
                }

                var member = new MethodUmlMember
                {
                    Group      = 20,
                    Name       = mi.Name,
                    Method     = mi,
                    Visibility = GetVisibilityFromFlags(flag)
                };
                if (mi.IsAbstract)
                {
                    member.Kind = UmlMemberKind.Abstract;
                }
                if (mi.IsStatic)
                {
                    member.Kind = UmlMemberKind.Static;
                }

                if (h != null)
                {
                    var args = new AddTypeToDiagramEventArgs
                    {
                        Decision  = add ? AddDecision.Add : AddDecision.Skip,
                        Member    = mi,
                        UmlMember = member
                    };
                    h(this, args);
                    if (args.Decision != AddDecision.Default)
                    {
                        add = args.Decision == AddDecision.Add;
                    }
                }

                if (!add)
                {
                    continue;
                }

                info.Members.Add(member);
            }
        }
Exemplo n.º 35
0
 public StringLiteral(string name, string startEndSymbol, ScanFlags stringFlags, TermOptions options)
     : this(name, options)
 {
     this.StartEndSymbolTable.Add(startEndSymbol, stringFlags);
 }