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;
}
}
}
}