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();
        }
Exemplo n.º 2
0
        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();
        }