summaryrefslogtreecommitdiff
path: root/Client/Assembly-CSharp/TranslationController.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Client/Assembly-CSharp/TranslationController.cs')
-rw-r--r--Client/Assembly-CSharp/TranslationController.cs70
1 files changed, 70 insertions, 0 deletions
diff --git a/Client/Assembly-CSharp/TranslationController.cs b/Client/Assembly-CSharp/TranslationController.cs
new file mode 100644
index 0000000..66686f7
--- /dev/null
+++ b/Client/Assembly-CSharp/TranslationController.cs
@@ -0,0 +1,70 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+
+public class TranslationController : DestroyableSingleton<TranslationController>
+{
+ private static readonly StringNames[] SystemTypesToStringNames = SystemTypeHelpers.AllTypes.Select(delegate(SystemTypes t)
+ {
+ StringNames result;
+ Enum.TryParse<StringNames>(t.ToString(), out result);
+ return result;
+ }).ToArray<StringNames>();
+
+ private static readonly StringNames[] TaskTypesToStringNames = TaskTypesHelpers.AllTypes.Select(delegate(TaskTypes t)
+ {
+ StringNames result;
+ Enum.TryParse<StringNames>(t.ToString(), out result);
+ return result;
+ }).ToArray<StringNames>();
+
+ public TextAsset[] Languages;
+
+ public TranslatedImageSet[] Images;
+
+ public LanguageUnit CurrentLanguage;
+
+ public List<ITranslatedText> ActiveTexts = new List<ITranslatedText>();
+
+ public override void Awake()
+ {
+ base.Awake();
+ if (DestroyableSingleton<TranslationController>.Instance == this)
+ {
+ this.CurrentLanguage = new LanguageUnit(this.Languages[(int)SaveManager.LastLanguage], this.Images[(int)SaveManager.LastLanguage].Images);
+ }
+ }
+
+ public void SetLanguage(TextAsset lang)
+ {
+ int num = this.Languages.IndexOf(lang);
+ Debug.Log("Set language to " + num);
+ SaveManager.LastLanguage = (uint)num;
+ this.CurrentLanguage = new LanguageUnit(this.Languages[num], this.Images[num].Images);
+ for (int i = 0; i < this.ActiveTexts.Count; i++)
+ {
+ this.ActiveTexts[i].ResetText();
+ }
+ }
+
+ public Sprite GetImage(ImageNames id)
+ {
+ return this.CurrentLanguage.GetImage(id);
+ }
+
+ public string GetString(StringNames id, params object[] parts)
+ {
+ return this.CurrentLanguage.GetString(id, parts);
+ }
+
+ public string GetString(SystemTypes room)
+ {
+ return this.GetString(TranslationController.SystemTypesToStringNames[(int)room], Array.Empty<object>());
+ }
+
+ public string GetString(TaskTypes task)
+ {
+ return this.GetString(TranslationController.TaskTypesToStringNames[(int)((byte)task)], Array.Empty<object>());
+ }
+}