/// <summary>
 /// Returns true if there is an InputItem that matches the passed Identifier.
 /// </summary>
 /// <param name="identifier"></param>
 /// <returns></returns>
 public bool Has(IInputIdentifier identifier)
 {
     foreach (InputItem input in inputs)
     {
         if (identifier.Matches(input))
         {
             return(true);
         }
     }
     return(false);
 }
 /// <summary>
 /// Returns the first InputItem that matches the passed Identifier without removing it from the InputSet.
 /// Not recommended for most uses.
 /// </summary>
 /// <param name="match"></param>
 /// <param name="identifier"></param>
 /// <returns>If a match was found</returns>
 public bool View(out InputItem match, IInputIdentifier identifier)
 {
     foreach (InputItem input in inputs)
     {
         if (identifier.Matches(input))
         {
             match = input;
             return(true);
         }
     }
     match = null;
     return(false);
 }
        public bool ViewAllMatches(out List <InputItem> items, IInputIdentifier identifier)
        {
            bool foundAny = false;

            items = new List <InputItem>();
            foreach (InputItem input in inputs)
            {
                if (identifier.Matches(input))
                {
                    items.Add(input);
                    foundAny = true;
                }
            }
            return(foundAny);
        }
 /// <summary>
 /// Removes the first input item that matches the Identifier from the list and returns it, thus preventing its use on other screens.
 /// </summary>
 /// <param name="identifier"></param>
 /// <returns>The first InputItem that matches, or null if none does.</returns>
 public bool Consume(out InputItem match, IInputIdentifier identifier)
 {
     for (int i = 0; i < inputs.Count; i++)
     {
         if (identifier.Matches(inputs[i]))
         {
             InputItem item = inputs[i];
             inputs.RemoveAt(i);
             match = item;
             return(true);
         }
     }
     match = null;
     return(false);
 }
        public bool ConsumeAllMatches(out List <InputItem> items, IInputIdentifier identifier)
        {
            bool foundAny = false;

            items = new List <InputItem>();
            for (int i = 0; i < inputs.Count; i++)
            {
                if (identifier.Matches(inputs[i]))
                {
                    items.Add(inputs[i]);
                    inputs.RemoveAt(i);
                    i--;
                    foundAny = true;
                }
            }
            return(foundAny);
        }
 public bool Matches(IInputIdentifier identifier)
 {
     return(identifier.Matches(this));
 }
 /// <summary>
 /// Creates a new PauseScreen with the defined parameters.
 /// </summary>
 /// <param name="_overlay">The overlay to use.  For pure tint, pass a pure white pixel.</param>
 /// <param name="_tint">The color to tint the overlay.</param>
 /// <param name="endPause">The input that will cause the screen to close.</param>
 public PauseScreen(Texture2D _overlay, Color _tint, IInputIdentifier endPause)
 {
     overlay      = _overlay;
     tint         = _tint;
     closingInput = endPause;
 }