Пример #1
0
 // executed both at startup and after a def reload
 private void LoadReloadInitialize()
 {
     try {
         EnumerateModAssemblies();
         AttributeDetector.ProcessNewTypes();                 // do detours and other attribute work for (newly) loaded mods
         EnumerateChildMods();
         var initializationsThisRun = new List <string>();
         for (int i = 0; i < childMods.Count; i++)
         {
             var childMod = childMods[i];
             childMod.ModIsActive = assemblyContentPacks.ContainsKey(childMod.GetType().Assembly);
             if (initializedMods.Contains(childMod))
             {
                 continue;                                                        // no need to reinitialize already loaded mods
             }
             initializedMods.Add(childMod);
             var modId = childMod.ModIdentifier;
             try {
                 childMod.Initialize();
             } catch (Exception e) {
                 Logger.ReportException(e, modId);
             }
             initializationsThisRun.Add(modId);
         }
         if (initializationsThisRun.Count > 0)
         {
             Logger.Message("v{0} initialized {1}", LibraryVersion, initializationsThisRun.ListElements());
         }
         OnDefsLoaded();
     } catch (Exception e) {
         Logger.ReportException(e);
     }
 }
Пример #2
0
 private void ProcessAttributes()
 {
     AttributeDetector.ProcessNewTypes();
 }