/**
 * @class kHud
 * @brief Display Bars and Messages on the screen
 */
class kHud
{
public:

	/**
	 * @brief Hides a bar
	 * @param barID 0 = top most bar, 1 = lower bar, Any other values will cause an error to occur
	 */
	void DisableBar(const uint8 barID);
	
	/**
	 * @brief Updates a bars value that has been set
	 * @param barID 0 = top most bar, 1 = lower bar, Any other values will cause an error to occur
	 * @param value
	 */
	void UpdateBar(const uint8 barID, const uint32 value);
	
	/**
	 * @brief Shows a bar 
	 * @param barID 0 = top most bar, 1 = lower bar, Any other values will cause an error to occur
	 * @param red The red color value of the bar
	 * @param green The green color value of the bar
	 * @param blue The blue color value of the bar
	 * @param alpha The alpha color value of the bar (has no effect)
	 * @param value
	 */
	void SetBar(const uint8 barID, const uint8 red, const uint8 green, const uint8 blue, const uint8 alpha, const uint32 value);
	
	/**
	 * @brief Displays a localized string message in the bottom area of the screen for a limited time
	 * @param localizedTextID localized string ID
	 * @param visibleTime In frames, most likely to be 60 = 1 second
	 */
	void AddMessage(const int localizedTextID, const int visibleTime = 120);
	
	/**
	 * @brief Displays a string message in the bottom area of the screen for a limited time
	 * @param message The message to display or localized key
	 * @param visibleTime In frames, most likely to be 60 = 1 second
	 * @remark You can also set the \a message to a localized text key value however you need to use the $ character to do so which is impossible due to the angelscript compiler which complains about it. But you can load a custom def with a string value of "$" using the defManager classes and store the character in a variable and use that instead of typing $.
	 */
	void AddMessage(const kStr&in message, const int visibleTime = 120);
};
