public static void ResolveAllReferences(bool onlyExactlyMyType = true) { DefDatabase <T> .SetIndices(); for (int i = 0; i < DefDatabase <T> .defsList.Count; i++) { try { if (onlyExactlyMyType) { T t = DefDatabase <T> .defsList[i]; if (t.GetType() != typeof(T)) { goto IL_9B; } } T t2 = DefDatabase <T> .defsList[i]; t2.ResolveReferences(); } catch (Exception ex) { Log.Error(string.Concat(new object[] { "Error while resolving references for def ", DefDatabase <T> .defsList[i], ": ", ex }), false); } IL_9B :; } DefDatabase <T> .SetIndices(); }
public static void ResolveAllReferences(bool onlyExactlyMyType = true) { DefDatabase <T> .SetIndices(); for (int i = 0; i < DefDatabase <T> .defsList.Count; i++) { try { if (onlyExactlyMyType) { T val = DefDatabase <T> .defsList[i]; if (val.GetType() == typeof(T)) { goto IL_003f; } goto end_IL_000c; } goto IL_003f; IL_003f: T val2 = DefDatabase <T> .defsList[i]; val2.ResolveReferences(); end_IL_000c :; } catch (Exception ex) { Log.Error("Error while resolving references for def " + DefDatabase <T> .defsList[i] + ": " + ex); } } DefDatabase <T> .SetIndices(); }
private static void Remove(T def) { DefDatabase <T> .defsByName.Remove(def.defName); DefDatabase <T> .defsList.Remove(def); DefDatabase <T> .SetIndices(); }