Ejemplo n.º 1
0
        private static bool ElementMatch(CommandElement element, InputBuffer input, int input_index)
        {
            var state = input.GetState(input_index, element);

            if (element.HeldDown)
            {
                var result = state == ButtonState.Down || state == ButtonState.Pressed;
                return(result);
            }

            if (element.TriggerOnRelease != null)
            {
                if (input_index >= input.Size)
                {
                    return(false);
                }

                if (input_index == 0 || input.GetState(input_index - 1, element) != ButtonState.Released)
                {
                    return(false);
                }

                var holdcount = 1;
                for (var i = input_index + 1; i < input.Size; ++i, ++holdcount)
                {
                    if (input.GetState(i, element) != ButtonState.Down)
                    {
                        break;
                    }
                }

                if (holdcount < element.TriggerOnRelease.Value)
                {
                    return(false);
                }
            }
            else
            {
                if (state != ButtonState.Pressed)
                {
                    return(false);
                }
            }

            return(true);
        }
Ejemplo n.º 2
0
        static Boolean ElementMatch(CommandElement element, InputBuffer input, Int32 input_index)
        {
            ButtonState state = input.GetState(input_index, element);

            if (element.HeldDown == true)
            {
                Boolean result = (state == ButtonState.Down || state == ButtonState.Pressed);
                return(result);
            }
            else if (element.TriggerOnRelease != null)
            {
                if (input_index >= input.Size)
                {
                    return(false);
                }

                if (input_index == 0 || input.GetState(input_index - 1, element) != ButtonState.Released)
                {
                    return(false);
                }

                Int32 holdcount = 1;
                for (Int32 i = input_index + 1; i < input.Size; ++i, ++holdcount)
                {
                    if (input.GetState(i, element) != ButtonState.Down)
                    {
                        break;
                    }
                }

                if (holdcount < element.TriggerOnRelease.Value)
                {
                    return(false);
                }
            }
            else
            {
                if (state != ButtonState.Pressed)
                {
                    return(false);
                }
            }

            return(true);
        }
Ejemplo n.º 3
0
		static Boolean ElementMatch(CommandElement element, InputBuffer input, Int32 input_index)
		{
			ButtonState state = input.GetState(input_index, element);

			if (element.HeldDown == true)
			{
				Boolean result = (state == ButtonState.Down || state == ButtonState.Pressed);
				return result;
			}
			else if (element.TriggerOnRelease != null)
			{
				if (input_index >= input.Size)
				{
					return false;
				}

				if (input_index == 0 || input.GetState(input_index - 1, element) != ButtonState.Released)
				{
					return false;
				}

				Int32 holdcount = 1;
				for (Int32 i = input_index + 1; i < input.Size; ++i, ++holdcount) if (input.GetState(i, element) != ButtonState.Down) break;

				if (holdcount < element.TriggerOnRelease.Value)
				{
					return false;
				}
			}
			else
			{
				if (state != ButtonState.Pressed)
				{
					return false;
				}
			}

			return true;
		}