/********* ** Public methods *********/ /// <summary>The mod entry point, called after the mod is first loaded.</summary> /// <param name="helper">Provides simplified APIs for writing mods.</param> public override void Entry(IModHelper helper) { Config = helper.ReadConfig <ModConfig>(); ModHelper = helper; Reflection = helper.Reflection; Logger = Monitor; Enum.TryParse(Config.IntroSkipTo, true, out SkipIntro.SkipTo); Enum.TryParse(Config.SaveAnytimeKey, true, out SaveAnytimeKey); if (SkipIntro.SkipTo != SkipIntro.Screen.Intro && Config.ForgetLastOnTitle) { helper.Events.GameLoop.ReturnedToTitle += (s, e) => { SkipIntro.SetLastFile(""); } } ; BackupSaves(); helper.Events.GameLoop.Saved += OnSaved; if (!Config.DisableSaveAnyTime) { SaveManager = new SaveManager(); helper.Events.GameLoop.SaveLoaded += OnSaveLoaded; helper.Events.GameLoop.UpdateTicked += OnUpdateTicked; helper.Events.GameLoop.DayStarted += OnDayStarted; helper.Events.Input.ButtonPressed += OnButtonPressed; customMenuOpen = false; } }
/// <summary>Raised after the player loads a save slot and the world is initialised.</summary> private static void OnSaveLoaded(object sender, SaveLoadedEventArgs e) { // reset state IsCustomSaving = false; ShouldResetSchedules = false; // load positions SaveManager.LoadData(); SkipIntro.SetLastFile(Constants.SaveFolderName); if (Config.ShareOptions) { StartupPreferences options = new StartupPreferences(); options.loadPreferences(false, false); Game1.options = options.clientOptions; } }