Systems/Input

Blocked Status
Core functionality implemented. Message broadcasting not yet implemented, must be integrated into game engine to test.

System Summary
A very simple input tracking system, allows for tracking of individual keys, as well as binding strings to keys. Keys and binds can be recorded as either down, up, triggered (became down this frame), or released (became up this frame). When a key that has been bound to a string is pressed, a message with the name of that string will be broadcast, and a second broadcast will happen when that key is released. Individual keys can be queried and this lookup will happen at constant time, however looking up the state of a bound string is slower and not recommended.

Function How-To
Bind("Attack", 'Z');       // fast Unbind("Attack");          // slow Unbind('X');               // fast GetKeyTriggered('X');      // fast GetKeyTriggered("Attack"); // slow - retrieve string trigger messages from the message queue instead of query