示例#1
0
        public static void DeactivateMod()
        {
            _isDeactivating = true;

            ModsConfig.SetActive(Mod.ContentPack.Identifier, false);

            var runningMods = PrivateAccess.Verse_LoadedModManager_RunningMods();

            runningMods.Remove(Mod.ContentPack);

            var addonMods = new StringBuilder();

            foreach (var mod in AddonManager.Mods)
            {
                addonMods.AppendLine(mod.Name);
                ModsConfig.SetActive(mod.Identifier, false);
                runningMods.Remove(mod);
            }

            ModsConfig.Save();

            if (Find.WorldObjects.Contains(Instance))
            {
                Find.WorldObjects.Remove(Instance);
            }

            const string saveName = "PawnRules_Removed";

            GameDataSaveLoader.SaveGame(saveName);

            var message = addonMods.Length > 0 ? Lang.Get("Button.RemoveModAndAddonsComplete", saveName.Bold(), addonMods.ToString()) : Lang.Get("Button.RemoveModComplete", saveName.Bold());

            Find.WindowStack.Add(new Dialog_Alert(message, Dialog_Alert.Buttons.Ok, GenCommandLine.Restart));
        }
 private static void ResetPlayer(PlayerTopDown.AccelMode accelMode)
 {
     sprite.Rotation         = 0;
     player.Position         = origPos;
     player.AccelerationMode = accelMode;
     player.Speed            = 400;
     player.Acceleration     = 800;
     player.Friction         = 1600;
     player.Drag             = 0.01F;
     V0 = Vector2.Zero;
     PrivateAccess.Call("UpdateInfo", player);
 }