using System; namespace EasyTalk.Controller { /// /// The EasyTalkGameState is used to keep track of global settings used by the EasyTalk system during runtime. /// public class EasyTalkGameState { /// /// The active EasyTalkGameState instance. /// private static EasyTalkGameState instance; /// /// The session ID used for the current game/playthrough. /// private string sessionId = Guid.NewGuid().ToString(); /// /// The language currently being used by EasyTalk. /// private string language = "en"; /// /// Defines a delegate method to be called when the language is changed. /// /// The old language being used. /// The new language to use. public delegate void OnLanguageChanged(string oldLanguage, string newLanguage); /// /// The callback which is triggered when the language changes. /// public event OnLanguageChanged onLanguageChanged; /// /// Gets or sets the language used by EasyTalk. If set, the onLanguageChanged callback will also be triggered. /// public string Language { get { return language; } set { string oldLanguage = language; this.language = value; if(onLanguageChanged != null) { onLanguageChanged(oldLanguage, language); } } } /// /// Gets or sets the session ID. /// public string SessionID { get { return sessionId; } set { this.sessionId = value; } } /// /// Gets the instance of the EasyTalk game state. /// public static EasyTalkGameState Instance { get { if (instance == null) { instance = new EasyTalkGameState(); } return instance; } } } }