コード例 #1
0
 internal static void DisableQueuedGadgets()
 {
     Logger.Log("Unloading Gadgets...");
     foreach (GadgetInfo gadget in QueuedGadgets)
     {
         gadget.Gadget.Unload();
         LootTables.RemoveModEntries(gadget.Gadget.ModID);
         GadgetCoreAPI.RemoveModResources(gadget.Gadget.ModID);
         GadgetCoreAPI.UnregisterStatModifiers(gadget.Gadget.ModID);
         GadgetNetwork.UnregisterSyncVars(gadget.Gadget.ModID);
         PlanetRegistry.UnregisterGadget(gadget.Gadget.ModID);
         foreach (Registry reg in GameRegistry.ListAllRegistries())
         {
             reg.UnregisterGadget(gadget);
         }
     }
     Logger.Log("Done unloading Gadgets.");
     Logger.Log("Unpatching Gadgets...");
     foreach (GadgetInfo gadget in QueuedGadgets.ToList())
     {
         try
         {
             gadget.Gadget.HarmonyInstance.UnpatchAll(gadget.Mod.Name + "." + gadget.Attribute.Name + ".gadget");
         }
         catch (Exception e)
         {
             Logger.LogError("Exception Unpatching Gadget '" + gadget.Attribute.Name + "':" + Environment.NewLine + e.ToString());
         }
     }
     Logger.Log("Done patching Gadgets.");
     Logger.Log("Sorting Gadgets...");
     Gadgets.SortGadgets();
     Logger.Log("Done sorting Gadgets.");
     QueuedGadgets.Clear();
 }
コード例 #2
0
 internal static void LoadRegistries()
 {
     try
     {
         foreach (Registry reg in GameRegistry.ListAllRegistries())
         {
             try
             {
                 reg.reservedIDs = PlayerPrefs.GetString("Reserved" + reg.GetRegistryName() + "IDs", "").Split(',').Select(x => x.Split('=')).ToDictionary(x => x[0], x => int.Parse(x[1]));
             }
             catch (IndexOutOfRangeException)
             {
                 reg.reservedIDs = new Dictionary <string, int>();
             }
         }
     }
     catch (Exception e)
     {
         GadgetCore.Log("Error loading registry settings: " + e.ToString());
     }
 }
コード例 #3
0
 internal static void Update()
 {
     try
     {
         PlayerPrefs.SetString("EnabledGadgets", enabledGadgets.Select(x => x.Key + ":" + x.Value).Aggregate(new StringBuilder(), (a, b) => { if (a.Length > 0)
                                                                                                                                              {
                                                                                                                                                  a.Append(",");
                                                                                                                                              }
                                                                                                                                              a.Append(b); return(a); }).ToString());
         foreach (Registry reg in GameRegistry.ListAllRegistries())
         {
             PlayerPrefs.SetString("Reserved" + reg.GetRegistryName() + "IDs", reg.reservedIDs.Select(x => x.Key + "=" + x.Value).Aggregate(new StringBuilder(), (a, b) => { if (a.Length > 0)
                                                                                                                                                                             {
                                                                                                                                                                                 a.Append(",");
                                                                                                                                                                             }
                                                                                                                                                                             a.Append(b); return(a); }).ToString());
         }
         PlayerPrefs.Flush();
     }
     catch (Exception e)
     {
         GadgetCore.CoreLogger.LogError("Error updating config: " + e.Message + "(" + e.InnerException?.Message + ")");
     }
 }