HKI Core
Language.cs
Go to the documentation of this file.
1 using UnityEngine;
2 using System.Xml;
3 using HKI.Core.Settings;
4 using HKI.Core.Variables;
5 
6 namespace HKI.Core.Loc
7 {
11  [System.Serializable]
12  [HKIVarSettings]
13  public class Language : HKIVarGeneric<SystemLanguage>
14  {
15  // Interface functions
16  public override void Save(XmlNode parentNode)
17  {
18  XmlNode node = parentNode.OwnerDocument.CreateElement(name.Replace(" ", ""));
19  parentNode.AppendChild(node);
20 
21  XmlAttribute valueAttribute = parentNode.OwnerDocument.CreateAttribute("Value");
22  valueAttribute.Value = Value.ToString();
23  node.Attributes.Append(valueAttribute);
24  }
25 
26  public override void Load(XmlNode node)
27  {
28  if (node.Attributes == null)
29  {
30  Debug.LogError("(Language) >" + name + "< Loading failed because this XmlNode has not attributes!");
31  return;
32  }
33 
34  XmlAttribute valueAttribute = node.Attributes["Value"];
35  if (valueAttribute == null)
36  {
37  Debug.LogError("(Language) >" + name + "< Loading failed because this XmlNode has not an attribute with the name >Value<!");
38  return;
39  }
40 
41  SystemLanguage parsedValue;
42  if(System.Enum.TryParse(valueAttribute.Value, out parsedValue))
43  SetValue = parsedValue;
44  else
45  Debug.LogError("(Language) >" + name + "< Loading failed because parsing of >" + valueAttribute.Value + "< failed!");
46  }
47  }
48 
49 }
override void Load(XmlNode node)
Definition: Language.cs:26
Special Variable enables the use of the SystemLanguage data type as a variable of the settings system...
Definition: Language.cs:13
override void Save(XmlNode parentNode)
Definition: Language.cs:16
This class adds a generic implementation to HKIVar. This reduces the repetitive implementation of thi...