private void OnReturnedToTitle(object sender, ReturnedToTitleEventArgs e) { // Unload if the main player quits. if (Context.ScreenId != 0) { return; } _modOptionsPageHandler?.Dispose(); _modOptionsPageHandler = null; }
/// <summary>Raised after the player loads a save slot and the world is initialised.</summary> /// <param name="sender">The event sender.</param> /// <param name="e">The event arguments.</param> private void OnSaveLoaded(object sender, SaveLoadedEventArgs e) { // Only load once for split screen. if (Context.ScreenId != 0) { return; } try { try { _modDataFileName = Path.Combine(Helper.DirectoryPath, Game1.player.Name + "_modData.xml"); } catch { Monitor.Log("Error: Player name contains character that cannot be used in file name. Using generic file name." + Environment.NewLine + "Options may not be able to be different between characters.", LogLevel.Warn); _modDataFileName = Path.Combine(Helper.DirectoryPath, "default_modData.xml"); } if (File.Exists(_modDataFileName)) { var document = new XmlDocument(); document.Load(_modDataFileName); var nodes = document.GetElementsByTagName("option"); foreach (XmlNode node in nodes) { if (node.Attributes == null) { continue; } var key = node.Attributes["name"]?.Value; var value = node.InnerText; if (key != null) { _options[key] = value; } } } } catch (Exception ex) { Monitor.Log("Error loading mod config. " + ex.Message + Environment.NewLine + ex.StackTrace, LogLevel.Error); } _modOptionsPageHandler = new ModOptionsPageHandler(Helper, _options); }
private void OnSaveLoaded(object sender, SaveLoadedEventArgs e) { // Only load once for split screen. if (Context.ScreenId != 0) { return; } _modOptions = Helper.Data.ReadJsonFile <ModOptions>($"data/{Constants.SaveFolderName}.json") ?? Helper.Data.ReadJsonFile <ModOptions>($"data/{_modConfig.ApplyDefaultSettingsFromThisSave}.json") ?? new ModOptions(); _modOptionsPageHandler = new ModOptionsPageHandler(Helper, _modOptions, _modConfig.ShowOptionsTabInMenu); }
/// <summary> /// Loads mod specific data /// </summary> internal void loadModData(object sender, EventArgs e) { string playerName = Game1.player.name; // File: \Mods\Demiacle_SVM\playerName_modData.xml // load file if (File.Exists(modDirectory + playerName + saveFilePostfix)) { this.Monitor.Log($"Mod data already exists for player {playerName}.... loading"); var loadedData = new ModData(); Serializer.ReadFromXmlFile(out loadedData, playerName); // Only load options valid for this build foreach (var data in loadedData.boolSettings) { modData.boolSettings[data.Key] = loadedData.boolSettings[data.Key]; } // Only load options valid for this build foreach (var data in loadedData.intSettings) { modData.intSettings[data.Key] = loadedData.intSettings[data.Key]; } // Only load options valid for this build foreach (var data in loadedData.stringSettings) { modData.stringSettings[data.Key] = loadedData.stringSettings[data.Key]; } // Always load character location data // Beware this may need a check later modData.locationOfTownsfolkOptions = loadedData.locationOfTownsfolkOptions; // create file and ModData } else { this.Monitor.Log($"Mod data does not exist for player {playerName}... creating file"); updateModData(); } // Initialize mods var optionPageHandler = new ModOptionsPageHandler(); }
private void LoadModData(object sender, EventArgs e) { String playerName = Game1.player.Name; try { try { _modDataFileName = Path.Combine(Helper.DirectoryPath, Game1.player.Name + "_modData.xml"); } catch { Monitor.Log("Error: Player name contains character that cannot be used in file name. Using generic file name." + Environment.NewLine + "Options may not be able to be different between characters.", LogLevel.Warn); _modDataFileName = Path.Combine(Helper.DirectoryPath, "default_modData.xml"); } if (File.Exists(_modDataFileName)) { XmlDocument document = new XmlDocument(); document.Load(_modDataFileName); XmlNodeList nodes = document.GetElementsByTagName("option"); foreach (XmlNode node in nodes) { String key = node.Attributes["name"]?.Value; String value = node.InnerText; if (key != null) { _options[key] = value; } } } } catch (Exception ex) { Monitor.Log("Error loading mod config. " + ex.Message + Environment.NewLine + ex.StackTrace, LogLevel.Error); } _modOptionsPageHandler = new ModOptionsPageHandler(Helper, _options); }
private void OnReturnedToTitle(object sender, ReturnedToTitleEventArgs e) { _modOptionsPageHandler?.Dispose(); _modOptionsPageHandler = null; }
private void ReturnToTitle(object sender, EventArgs e) { _modOptionsPageHandler.Dispose(); _modOptionsPageHandler = null; }