diff options
| author | chai <215380520@qq.com> | 2024-05-19 16:05:58 +0800 |
|---|---|---|
| committer | chai <215380520@qq.com> | 2024-05-19 16:05:58 +0800 |
| commit | 8e13e7e2874adc8982e16d1d2ed2e28d7480b45f (patch) | |
| tree | 63ef85c460288891f5a593d69afeca16cba050b3 /Thronefall_1_57/Decompile/I2.Loc.SimpleJSON/JSONArray.cs | |
| parent | c5f145786f4c6d2fe4bea831dfc16e52228920a5 (diff) | |
+1.57
Diffstat (limited to 'Thronefall_1_57/Decompile/I2.Loc.SimpleJSON/JSONArray.cs')
| -rw-r--r-- | Thronefall_1_57/Decompile/I2.Loc.SimpleJSON/JSONArray.cs | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/Thronefall_1_57/Decompile/I2.Loc.SimpleJSON/JSONArray.cs b/Thronefall_1_57/Decompile/I2.Loc.SimpleJSON/JSONArray.cs new file mode 100644 index 0000000..e2cbcef --- /dev/null +++ b/Thronefall_1_57/Decompile/I2.Loc.SimpleJSON/JSONArray.cs @@ -0,0 +1,127 @@ +using System.Collections; +using System.Collections.Generic; +using System.IO; + +namespace I2.Loc.SimpleJSON; + +public class JSONArray : JSONNode, IEnumerable +{ + private List<JSONNode> m_List = new List<JSONNode>(); + + public override JSONNode this[int aIndex] + { + get + { + if (aIndex < 0 || aIndex >= m_List.Count) + { + return new JSONLazyCreator(this); + } + return m_List[aIndex]; + } + set + { + if (aIndex < 0 || aIndex >= m_List.Count) + { + m_List.Add(value); + } + else + { + m_List[aIndex] = value; + } + } + } + + public override JSONNode this[string aKey] + { + get + { + return new JSONLazyCreator(this); + } + set + { + m_List.Add(value); + } + } + + public override int Count => m_List.Count; + + public override IEnumerable<JSONNode> Childs + { + get + { + foreach (JSONNode item in m_List) + { + yield return item; + } + } + } + + public override void Add(string aKey, JSONNode aItem) + { + m_List.Add(aItem); + } + + public override JSONNode Remove(int aIndex) + { + if (aIndex < 0 || aIndex >= m_List.Count) + { + return null; + } + JSONNode result = m_List[aIndex]; + m_List.RemoveAt(aIndex); + return result; + } + + public override JSONNode Remove(JSONNode aNode) + { + m_List.Remove(aNode); + return aNode; + } + + public IEnumerator GetEnumerator() + { + foreach (JSONNode item in m_List) + { + yield return item; + } + } + + public override string ToString() + { + string text = "[ "; + foreach (JSONNode item in m_List) + { + if (text.Length > 2) + { + text += ", "; + } + text += item.ToString(); + } + return text + " ]"; + } + + public override string ToString(string aPrefix) + { + string text = "[ "; + foreach (JSONNode item in m_List) + { + if (text.Length > 3) + { + text += ", "; + } + text = text + "\n" + aPrefix + " "; + text += item.ToString(aPrefix + " "); + } + return text + "\n" + aPrefix + "]"; + } + + public override void Serialize(BinaryWriter aWriter) + { + aWriter.Write((byte)1); + aWriter.Write(m_List.Count); + for (int i = 0; i < m_List.Count; i++) + { + m_List[i].Serialize(aWriter); + } + } +} |
