/// <summary>
    /// Checks if any of the bindings have been held down.
    /// </summary>
    /// <returns>True if triggered, false if not.</returns>
    public bool IsHeld(InputHandler input)
    {
        if (Bindings == BindInputListener.NONE) return false;

        // evaluates the keyboard
        if ((Bindings & BindInputListener.KEYBOARD) != 0)
        {
            // there is a key, check if it's pressed.
            var press = Input.GetKey(Key);
            if (press) return true;
        }

        // evaluates the mouse
        if ((Bindings & BindInputListener.MOUSE) != 0)
        {
            // there is a mouse button binding
            var clicked = input.MouseBtnHeld(MouseButton);
            if (clicked) return true;
        }

        // evaluates the controller
        if (input.ControllerConnected() && (Bindings & BindInputListener.CONTROLLER) != 0)
        {
            // there is a controller binding
            var press = input.ControllerBtnHeld(ControllerButton);
            if (press) return true;
        }

        return false;
    }