Пример #1
0
        //! Patch: SavedProfile.LoadSettings
        internal static void LoadSettings(SettingsV01 original)
        {
            string realPath = Path.Combine(SavePath, SETTINGS_FILENAME);

            if (!File.Exists(realPath))
            {
                return;
            }
            GuuCore.LOGGER.Log($"Attempting to load modded settings file {SETTINGS_FILENAME}");

            using (FileStream fileStream = File.Open(realPath, FileMode.Open))
            {
                using (MemoryStream dataStream = new MemoryStream())
                {
                    CopyStream(fileStream, dataStream);
                    dataStream.Seek(0, SeekOrigin.Begin);
                    SettingsV01 settings = new SettingsV01();
                    try
                    {
                        settings.Load(dataStream);
                        original.options.bindings.bindings.AddRange(settings.options.bindings.bindings);
                    }
                    catch (Exception e)
                    {
                        GuuCore.LOGGER.LogError("Failed to load modded settings file.");
                        GuuCore.LOGGER.LogError(e.ParseTrace());
                    }
                }
            }

            GuuCore.LOGGER.Log($"Loaded modded settings file {PROFILE_FILENAME}");
        }
Пример #2
0
        //! Patch: SavedProfile.SaveSettings
        internal static void SaveSettings(SettingsV01 original)
        {
            string realPath = Path.Combine(SavePath, SETTINGS_FILENAME);

            GuuCore.LOGGER.Log($"Saving modded settings file {SETTINGS_FILENAME}");

            SettingsV01 settings = new SettingsV01();

            // TODO: Strip content from the original

            using (MemoryStream dataStream = new MemoryStream())
            {
                settings.Write(dataStream);
                dataStream.Seek(0, SeekOrigin.Begin);
                using (FileStream fileStream = File.Create(realPath))
                {
                    try
                    {
                        CopyStream(dataStream, fileStream);
                    }
                    catch (Exception e)
                    {
                        GuuCore.LOGGER.LogError("Failed to save modded settings file.");
                        GuuCore.LOGGER.LogError(e.ParseTrace());
                    }
                }
            }

            GuuCore.LOGGER.Log($"Saved modded settings file {SETTINGS_FILENAME}");
        }