public override bool TryResolve(FailMode failReportMode) { failReportMode = FailMode.LogErrors; bool flag = typeof(Def).IsAssignableFrom(typeof(K)); bool flag2 = typeof(Def).IsAssignableFrom(typeof(V)); List <Pair <K, V> > list = new List <Pair <K, V> >(); foreach (XmlNode xmlNode in this.wantedDictRefs) { XmlNode xmlNode2 = xmlNode["key"]; XmlNode xmlNode3 = xmlNode["value"]; K first; if (flag) { first = DirectXmlCrossRefLoader.TryResolveDef <K>(xmlNode2.InnerText, failReportMode, this.debugWanterInfo); } else { first = DirectXmlToObject.ObjectFromXml <K>(xmlNode2, true); } V second; if (flag2) { second = DirectXmlCrossRefLoader.TryResolveDef <V>(xmlNode3.InnerText, failReportMode, this.debugWanterInfo); } else { second = DirectXmlToObject.ObjectFromXml <V>(xmlNode3, true); } list.Add(new Pair <K, V>(first, second)); } Dictionary <K, V> dictionary = (Dictionary <K, V>) this.wanter; dictionary.Clear(); foreach (Pair <K, V> pair in list) { try { dictionary.Add(pair.First, pair.Second); } catch { Log.Error(string.Concat(new object[] { "Failed to load key/value pair: ", pair.First, ", ", pair.Second }), false); } } return(true); }
public override bool TryResolve(FailMode failReportMode) { bool flag = false; for (int i = 0; i < this.defNames.Count; i++) { T t = DirectXmlCrossRefLoader.TryResolveDef <T>(this.defNames[i], failReportMode, this.debugWanterInfo); if (t != null) { ((List <T>) this.wanter).Add(t); this.defNames.RemoveAt(i); i--; } else { flag = true; } } return(!flag); }
public override bool TryResolve(FailMode failReportMode) { failReportMode = FailMode.LogErrors; bool flag = typeof(Def).IsAssignableFrom(typeof(K)); bool flag2 = typeof(Def).IsAssignableFrom(typeof(V)); List <Pair <K, V> > list = new List <Pair <K, V> >(); foreach (XmlNode wantedDictRef in this.wantedDictRefs) { XmlNode xmlNode = wantedDictRef["key"]; XmlNode xmlNode2 = wantedDictRef["value"]; K first = (!flag) ? DirectXmlToObject.ObjectFromXml <K>(xmlNode, true) : DirectXmlCrossRefLoader.TryResolveDef <K>(xmlNode.InnerText, failReportMode); V second = (!flag2) ? DirectXmlToObject.ObjectFromXml <V>(xmlNode2, true) : DirectXmlCrossRefLoader.TryResolveDef <V>(xmlNode2.InnerText, failReportMode); list.Add(new Pair <K, V>(first, second)); } Dictionary <K, V> dictionary = (Dictionary <K, V>)base.wanter; dictionary.Clear(); foreach (Pair <K, V> item in list) { try { dictionary.Add(item.First, item.Second); } catch { Log.Error("Failed to load key/value pair: " + item.First + ", " + item.Second); } } return(true); }